Skip to content

Commit

Permalink
Merge pull request #4 from saukko/key-value
Browse files Browse the repository at this point in the history
Make it possible to query any key value pair from device data section.
  • Loading branch information
bwachter committed Mar 19, 2013
2 parents 48836ac + dca2aa2 commit 1b138e8
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 3 deletions.
11 changes: 10 additions & 1 deletion libssu/ssu.cpp
Expand Up @@ -180,11 +180,20 @@ QString Ssu::repoUrl(QString repoName, bool rndRepo, QHash<QString, QString> rep

if (!repoParameters.contains("arch"))
repoParameters.insert("arch", settings->value("arch").toString());

repoParameters.insert("adaptation", settings->value("adaptation").toString());
repoParameters.insert("deviceFamily", deviceInfo.deviceFamily());
repoParameters.insert("deviceModel", deviceInfo.deviceModel());

QStringList keys;
keys << "chip" << "adaptation" << "vendor";

foreach(QString key, keys){
QString value;
if (deviceInfo.getValue(key,value))
repoParameters.insert(key, value);
}

// Domain variables
// first read all variables from default-domain
var.resolveSection(repoSettings, "default-domain", &repoParameters);
Expand Down
29 changes: 28 additions & 1 deletion libssu/ssudeviceinfo.cpp
Expand Up @@ -27,15 +27,30 @@ QString SsuDeviceInfo::deviceFamily(){

cachedFamily = "UNKNOWN";

if (boardMappings->contains("variants/" + model))
if (boardMappings->contains("variants/" + model)) {
model = boardMappings->value("variants/" + model).toString();
cachedVariant = model;
}

if (boardMappings->contains(model + "/family"))
cachedFamily = boardMappings->value(model + "/family").toString();

return cachedFamily;
}

QString SsuDeviceInfo::deviceVariant(){
if (!cachedVariant.isEmpty())
return cachedVariant;

cachedVariant = "";

if (boardMappings->contains("variants/" + deviceModel())) {
cachedVariant = boardMappings->value("variants/" + deviceModel()).toString();
}

return cachedVariant;
}

QString SsuDeviceInfo::deviceModel(){
QDir dir;
QFile procCpuinfo;
Expand Down Expand Up @@ -126,3 +141,15 @@ QString SsuDeviceInfo::deviceUid(){

return IMEI;
}

bool SsuDeviceInfo::getValue(const QString& key, QString& value){
if (boardMappings->contains(deviceVariant()+"/"+key)){
value = boardMappings->value(deviceVariant()+"/"+key).toString();
return true;
}
else if (boardMappings->contains(deviceModel()+"/"+key)){
value = boardMappings->value(deviceModel()+"/"+key).toString();
return true;
}
return false;
}
8 changes: 7 additions & 1 deletion libssu/ssudeviceinfo.h
Expand Up @@ -20,6 +20,10 @@ class SsuDeviceInfo: public QObject {
* Try to find the device family for the system this is running on
*/
Q_INVOKABLE QString deviceFamily();
/**
* Try to find the device variant for the system this is running on.
*/
Q_INVOKABLE QString deviceVariant();
/**
* Try to find out ond what kind of system this is running
*/
Expand All @@ -30,8 +34,10 @@ class SsuDeviceInfo: public QObject {
*/
Q_INVOKABLE QString deviceUid();

bool getValue(const QString& key, QString& value);

private:
QSettings *boardMappings;
QString cachedFamily, cachedModel;
QString cachedFamily, cachedModel, cachedVariant;
};
#endif

0 comments on commit 1b138e8

Please sign in to comment.