The codebase to run the *spark d-fuser controller www.sparkav.co.uk/dvimixer

Dependencies:   SPK-TVOne DMX DmxArtNet NetServicesMin OSC PinDetect mRotaryEncoder iniparser mbed spk_oled_ssd1305 filter

Revision:
43:328d851c429a
Parent:
36:8b5c75c8bc23
--- a/spk_settings.h	Sun Dec 02 01:08:34 2012 +0000
+++ b/spk_settings.h	Sun Dec 02 16:13:31 2012 +0000
@@ -151,7 +151,7 @@
     {
         bool success = false;
 
-        local = new LocalFileSystem("local");
+        LocalFileSystem local("local");
         string filePath("/local/");
         filePath += filename;
 
@@ -287,9 +287,69 @@
 
         iniparser_freedict(settings);
         
-        delete local;
+        return success;
+    }
+    
+    
+    bool        saveEditingKeyerSet(string filename)
+    {
+        int success = 0;
+
+        LocalFileSystem local("local");
+        string filePath("/local/");
+        filePath += filename;
+
+        dictionary* settings = iniparser_load(filePath.c_str());
+                    
+        const int keyLength = 11;
+        const int valueLength = 3;
+        
+        char keyMinY[keyLength];
+        char valueMinY[valueLength];
+        snprintf(keyMinY, keyLength, "Key%i:MinY", editingKeyerSetIndex);
+        snprintf(valueMinY, valueLength, "%i", keyerParamSets[editingKeyerSetIndex][minY]);
+        success += iniparser_set(settings, keyMinY, valueMinY);
+        
+        char keyMaxY[keyLength];
+        char valueMaxY[valueLength];
+        snprintf(keyMaxY, keyLength, "Key%i:MaxY", editingKeyerSetIndex);
+        snprintf(valueMaxY, valueLength, "%i", keyerParamSets[editingKeyerSetIndex][maxY]);
+        success += iniparser_set(settings, keyMaxY, valueMaxY);
         
-        return success;
+        char keyMinU[keyLength];
+        char valueMinU[valueLength];
+        snprintf(keyMinU, keyLength, "Key%i:MinU", editingKeyerSetIndex);
+        snprintf(valueMinU, valueLength, "%i", keyerParamSets[editingKeyerSetIndex][minU]);
+        success += iniparser_set(settings, keyMinU, valueMinU);
+        
+        char keyMaxU[keyLength];
+        char valueMaxU[valueLength];
+        snprintf(keyMaxU, keyLength, "Key%i:MaxU", editingKeyerSetIndex);
+        snprintf(valueMaxU, valueLength, "%i", keyerParamSets[editingKeyerSetIndex][maxU]);
+        success += iniparser_set(settings, keyMaxU, valueMaxU);
+        
+        char keyMinV[keyLength];
+        char valueMinV[valueLength];
+        snprintf(keyMinV, keyLength, "Key%i:MinV", editingKeyerSetIndex);
+        snprintf(valueMinV, valueLength, "%i", keyerParamSets[editingKeyerSetIndex][minV]);
+        success += iniparser_set(settings, keyMinV, valueMinV);
+        
+        char keyMaxV[keyLength];
+        char valueMaxV[valueLength];
+        snprintf(keyMaxV, keyLength, "Key%i:MaxV", editingKeyerSetIndex);
+        snprintf(valueMaxV, valueLength, "%i", keyerParamSets[editingKeyerSetIndex][maxV]);
+        success += iniparser_set(settings, keyMaxV, valueMaxV);
+        
+        FILE* file = fopen(filePath.c_str(), "w");
+        if (file)
+        {    
+            iniparser_dump_ini(settings, file);
+            fclose(file);
+        }
+        
+        iniparser_freedict(settings);
+        
+        return (success == 0);
     }
     
 protected: