Adapt MCE INI parser for RX44
authorPhilipp Zabel <philipp.zabel@gmail.com>
Thu, 27 May 2010 17:13:38 +0000 (19:13 +0200)
committerPhilipp Zabel <philipp.zabel@gmail.com>
Thu, 27 May 2010 18:55:23 +0000 (20:55 +0200)
src/mce-ini-parse.vala

index d7a4438..3198ed5 100644 (file)
  * along with LED Pattern Editor. If not, see <http://www.gnu.org/licenses/>.
  */
 
-List<LedPatternRX51> mce_ini_parse () {
-       var list = new List<LedPatternRX51> ();
+enum DeviceType {
+       RX44,
+       RX51
+}
+
+static const DeviceType device = DeviceType.RX51;
+
+List<LedPattern> mce_ini_parse () {
+       var list = new List<LedPattern> ();
        var f = FileStream.open ("/etc/mce/mce.ini", "r");
+       string pattern_section = null;
+
+       switch (device) {
+       case DeviceType.RX44:
+               pattern_section = "[LEDPatternNJoyRX44]";
+               break;
+       case DeviceType.RX51:
+               pattern_section = "[LEDPatternLystiRX51]";
+               break;
+       }
 
        var line = f.read_line ();
        while (line != null) {
-               if (line == "[LEDPatternLystiRX51]") {
+               if (line == pattern_section) {
                        line = f.read_line ();
                        while ((line != null) && (line[0] != '[')) {
                                if (line.has_prefix ("Pattern")) {
-                                       var pattern = new LedPatternRX51 ();
+                                       LedPattern pattern = null;
+                                       switch (device) {
+                                       case DeviceType.RX44:
+                                               pattern = new LedPatternRX44 ();
+                                               break;
+                                       case DeviceType.RX51:
+                                               pattern = new LedPatternRX51 ();
+                                               break;
+                                       }
                                        pattern.parse (line);
                                        list.append (pattern);
                                }
@@ -39,18 +64,28 @@ List<LedPatternRX51> mce_ini_parse () {
        return list;
 }
 
-void mce_ini_store (List<LedPatternRX51> list) {
+void mce_ini_store (List<LedPattern> list) {
        var f = FileStream.open ("/etc/mce/mce.ini", "r");
        var g = FileStream.open ("/tmp/mce.ini", "w");
+       string pattern_section = null;
+
+       switch (device) {
+       case DeviceType.RX44:
+               pattern_section = "[LEDPatternNJoyRX44]";
+               break;
+       case DeviceType.RX51:
+               pattern_section = "[LEDPatternLystiRX51]";
+               break;
+       }
 
        var line = f.read_line ();
        while (line != null) {
-               if (line == "[LEDPatternLystiRX51]") {
+               if (line == pattern_section) {
                        g.printf ("%s\n", line);
                        line = f.read_line ();
                        while ((line != null) && (line[0] != '[')) {
                                if (line.has_prefix ("Pattern")) {
-                                       unowned List<LedPatternRX51> node;
+                                       unowned List<LedPattern> node;
                                        for (node = list.first (); node != null; node = node.next) {
                                                if (line.has_prefix (node.data.name + "=")) {
                                                        g.printf ("%s\n", node.data.dump ());