allow player 2 touchscreen controls
authorJavier S. Pedro <maemo@javispedro.com>
Mon, 8 Feb 2010 19:13:41 +0000 (20:13 +0100)
committerJavier S. Pedro <maemo@javispedro.com>
Mon, 8 Feb 2010 19:13:41 +0000 (20:13 +0100)
12 files changed:
gui/controls.c
gui/drnoksnes.schemas.m4
gui/gconf.h
gui/i18n/de.po
gui/i18n/drnoksnes_plugin.pot
gui/i18n/es.po
gui/i18n/pl.po
gui/i18n/sv.po
platform/config.cpp
platform/osso.cpp
platform/platform.h
platform/sdli.cpp

index 7bfa6de..ce70094 100644 (file)
@@ -64,10 +64,24 @@ static void load_settings()
        strcpy(key, kGConfPlayerKeyboardEnable);
        hildon_check_button_set_active(keys_chk,
                gconf_client_get_bool(gcc, key_base, NULL));
+
+       strcpy(key, kGConfPlayerTouchscreenEnable);
+       hildon_check_button_set_active(touch_chk,
+               gconf_client_get_bool(gcc, key_base, NULL));
+       strcpy(key, kGConfPlayerTouchscreenShow);
+       hildon_check_button_set_active(touch_show_chk,
+               gconf_client_get_bool(gcc, key_base, NULL));
 #else
        strcpy(key, kGConfPlayerKeyboardEnable);
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(keys_chk),
                gconf_client_get_bool(gcc, key_base, NULL));
+
+       strcpy(key, kGConfPlayerTouchscreenEnable);
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(touch_chk),
+               gconf_client_get_bool(gcc, key_base, NULL));
+       strcpy(key, kGConfPlayerTouchscreenShow);
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(touch_show_chk),
+               gconf_client_get_bool(gcc, key_base, NULL));
 #endif
 }
 
@@ -81,10 +95,24 @@ static void save_settings()
        strcpy(key, kGConfPlayerKeyboardEnable);
        gconf_client_set_bool(gcc, key_base,
                hildon_check_button_get_active(keys_chk), NULL);
+
+       strcpy(key, kGConfPlayerTouchscreenEnable);
+       gconf_client_set_bool(gcc, key_base,
+               hildon_check_button_get_active(touch_chk), NULL);
+       strcpy(key, kGConfPlayerTouchscreenShow);
+       gconf_client_set_bool(gcc, key_base,
+               hildon_check_button_get_active(touch_show_chk), NULL);
 #else
        strcpy(key, kGConfPlayerKeyboardEnable);
        gconf_client_set_bool(gcc, key_base,
                gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(keys_chk)), NULL);
+
+       strcpy(key, kGConfPlayerTouchscreenEnable);
+       gconf_client_set_bool(gcc, key_base,
+               gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(touch_chk)), NULL);
+       strcpy(key, kGConfPlayerTouchscreenShow);
+       gconf_client_set_bool(gcc, key_base,
+               gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(touch_show_chk)), NULL);
 #endif
 }
 
index 9a2b0b1..08acac5 100644 (file)
@@ -171,6 +171,32 @@ undefine(`BUTTON')dnl
 undefine(`ACTION')dnl
 undefine(`LAST')dnl
     <schema>
+     <key>/schemas/apps/maemo/drnoksnes/player1/touchscreen/enable</key>
+      <applyto>/apps/maemo/drnoksnes/player1/touchscreen/enable</applyto>
+      <owner>drnoksnes</owner>
+      <type>bool</type>
+      <default>true</default>
+      <locale name="C">
+        <short>Player 1 touchscreen</short>
+        <long>
+          Enable touchscreen buttons for player 1.
+        </long>
+      </locale>
+    </schema>
+    <schema>
+     <key>/schemas/apps/maemo/drnoksnes/player1/touchscreen/show_buttons</key>
+      <applyto>/apps/maemo/drnoksnes/player1/touchscreen/show_buttons</applyto>
+      <owner>drnoksnes</owner>
+      <type>bool</type>
+      <default>false</default>
+      <locale name="C">
+        <short>Player 1 touchscreen show</short>
+        <long>
+          Show touchscreen buttons for player 1.
+        </long>
+      </locale>
+    </schema>
+    <schema>
      <key>/schemas/apps/maemo/drnoksnes/player2/keyboard/enable</key>
       <applyto>/apps/maemo/drnoksnes/player2/keyboard/enable</applyto>
       <owner>drnoksnes</owner>
@@ -204,5 +230,31 @@ undefine(`HELP')dnl
 undefine(`BUTTON')dnl
 undefine(`ACTION')dnl
 undefine(`LAST')dnl
+    <schema>
+     <key>/schemas/apps/maemo/drnoksnes/player2/touchscreen/enable</key>
+      <applyto>/apps/maemo/drnoksnes/player2/touchscreen/enable</applyto>
+      <owner>drnoksnes</owner>
+      <type>bool</type>
+      <default>false</default>
+      <locale name="C">
+        <short>Player 2 touchscreen</short>
+        <long>
+          Enable touchscreen buttons for player 2.
+        </long>
+      </locale>
+    </schema>
+    <schema>
+     <key>/schemas/apps/maemo/drnoksnes/player2/touchscreen/show_buttons</key>
+      <applyto>/apps/maemo/drnoksnes/player2/touchscreen/show_buttons</applyto>
+      <owner>drnoksnes</owner>
+      <type>bool</type>
+      <default>false</default>
+      <locale name="C">
+        <short>Player 2 touchscreen show</short>
+        <long>
+          Show touchscreen buttons for player 2.
+        </long>
+      </locale>
+    </schema>
   </schemalist>
 </gconfschemafile>
index bb4d9a4..e851dde 100644 (file)
@@ -18,5 +18,9 @@
 #define kGConfPlayerKeyboardPath "/" "keyboard"
 #define kGConfPlayerKeyboardEnable kGConfPlayerKeyboardPath "/" "enable"
 
+#define kGConfPlayerTouchscreenPath "/" "touchscreen"
+#define kGConfPlayerTouchscreenEnable kGConfPlayerTouchscreenPath "/" "enable"
+#define kGConfPlayerTouchscreenShow kGConfPlayerTouchscreenPath "/" "show_buttons"
+
 #endif
 
index 767a544..9243888 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: drnoksnes\n"
 "Report-Msgid-Bugs-To: maemo@javispedro.com\n"
-"POT-Creation-Date: 2010-02-08 18:56+0100\n"
+"POT-Creation-Date: 2010-02-08 20:11+0100\n"
 "PO-Revision-Date: 2010-01-28 09:50+0100\n"
 "Last-Translator: Philipp Zabel <philipp.zabel@gmail.com>\n"
 "Language-Team: German\n"
@@ -112,53 +112,53 @@ msgstr "Kein ROM ausgewählt"
 msgid "ROM file does not exist"
 msgstr "ROM-Datei existiert nicht"
 
-#: controls.c:128
+#: controls.c:156
 msgid "Keyboard"
 msgstr "Tastatur"
 
-#: controls.c:132
+#: controls.c:160
 msgid "Disabled"
 msgstr "Deaktiviert"
 
-#: controls.c:140
+#: controls.c:168
 #, c-format
 msgid "Player %d controls"
 msgstr "Spieler %d Steuerung"
 
-#: controls.c:163
+#: controls.c:191
 msgid "Keys"
 msgstr "Tasten"
 
-#: controls.c:169 controls.c:241
+#: controls.c:197 controls.c:269
 msgid "Enable keyboard"
 msgstr "Tastatur aktivieren"
 
-#: controls.c:176 controls.c:242
+#: controls.c:204 controls.c:270
 #, fuzzy
 msgid "Configure keys…"
 msgstr "Tasten konfigurieren..."
 
-#: controls.c:182
+#: controls.c:210
 msgid "Touchscreen"
 msgstr "Touchscreen"
 
-#: controls.c:189 controls.c:254
+#: controls.c:217 controls.c:282
 msgid "Enable touchscreen buttons"
 msgstr "Touchscreen-Knöpfe aktivieren"
 
-#: controls.c:196 controls.c:256
+#: controls.c:224 controls.c:284
 msgid "Show on-screen button grid"
 msgstr "Wyświetlaj siatkę ekranową"
 
-#: controls.c:200
+#: controls.c:228
 msgid "Accelerometer"
 msgstr "Beschleunigungssensor"
 
-#: controls.c:204
+#: controls.c:232
 msgid "Wiimote"
 msgstr "Wiimote"
 
-#: controls.c:208
+#: controls.c:236
 msgid "Zeemote"
 msgstr "Zeemote"
 
index de54805..57eb613 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: maemo@javispedro.com\n"
-"POT-Creation-Date: 2010-02-08 18:56+0100\n"
+"POT-Creation-Date: 2010-02-08 20:11+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -108,52 +108,52 @@ msgstr ""
 msgid "ROM file does not exist"
 msgstr ""
 
-#: controls.c:128
+#: controls.c:156
 msgid "Keyboard"
 msgstr ""
 
-#: controls.c:132
+#: controls.c:160
 msgid "Disabled"
 msgstr ""
 
-#: controls.c:140
+#: controls.c:168
 #, c-format
 msgid "Player %d controls"
 msgstr ""
 
-#: controls.c:163
+#: controls.c:191
 msgid "Keys"
 msgstr ""
 
-#: controls.c:169 controls.c:241
+#: controls.c:197 controls.c:269
 msgid "Enable keyboard"
 msgstr ""
 
-#: controls.c:176 controls.c:242
+#: controls.c:204 controls.c:270
 msgid "Configure keys…"
 msgstr ""
 
-#: controls.c:182
+#: controls.c:210
 msgid "Touchscreen"
 msgstr ""
 
-#: controls.c:189 controls.c:254
+#: controls.c:217 controls.c:282
 msgid "Enable touchscreen buttons"
 msgstr ""
 
-#: controls.c:196 controls.c:256
+#: controls.c:224 controls.c:284
 msgid "Show on-screen button grid"
 msgstr ""
 
-#: controls.c:200
+#: controls.c:228
 msgid "Accelerometer"
 msgstr ""
 
-#: controls.c:204
+#: controls.c:232
 msgid "Wiimote"
 msgstr ""
 
-#: controls.c:208
+#: controls.c:236
 msgid "Zeemote"
 msgstr ""
 
index 3582491..e577c2e 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: DrNokSnes 1.2.6\n"
 "Report-Msgid-Bugs-To: maemo@javispedro.com\n"
-"POT-Creation-Date: 2010-02-08 18:56+0100\n"
+"POT-Creation-Date: 2010-02-08 20:11+0100\n"
 "PO-Revision-Date: 2010-01-07 03:11+0100\n"
 "Last-Translator: Javier <javier@javispedro.com>\n"
 "Language-Team: Spanish <maemo@javispedro.com>\n"
@@ -113,53 +113,53 @@ msgstr "Sin ROM seleccionada"
 msgid "ROM file does not exist"
 msgstr "El archivo ROM no existe"
 
-#: controls.c:128
+#: controls.c:156
 msgid "Keyboard"
 msgstr "Teclado"
 
-#: controls.c:132
+#: controls.c:160
 msgid "Disabled"
 msgstr "Desactivado"
 
-#: controls.c:140
+#: controls.c:168
 #, c-format
 msgid "Player %d controls"
 msgstr "Controles del jugador %d"
 
-#: controls.c:163
+#: controls.c:191
 msgid "Keys"
 msgstr "Teclas"
 
-#: controls.c:169 controls.c:241
+#: controls.c:197 controls.c:269
 msgid "Enable keyboard"
 msgstr "Activar teclado"
 
-#: controls.c:176 controls.c:242
+#: controls.c:204 controls.c:270
 #, fuzzy
 msgid "Configure keys…"
 msgstr "Configurar teclas…"
 
-#: controls.c:182
+#: controls.c:210
 msgid "Touchscreen"
 msgstr "Pantalla táctil"
 
-#: controls.c:189 controls.c:254
+#: controls.c:217 controls.c:282
 msgid "Enable touchscreen buttons"
 msgstr "Activar controles en pantalla"
 
-#: controls.c:196 controls.c:256
+#: controls.c:224 controls.c:284
 msgid "Show on-screen button grid"
 msgstr "Mostrar controles en pantalla"
 
-#: controls.c:200
+#: controls.c:228
 msgid "Accelerometer"
 msgstr "Accelerómetro"
 
-#: controls.c:204
+#: controls.c:232
 msgid "Wiimote"
 msgstr "Wiimote"
 
-#: controls.c:208
+#: controls.c:236
 msgid "Zeemote"
 msgstr "Zeemote"
 
index 6ff0e25..6d85421 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: drnoksnes\n"
 "Report-Msgid-Bugs-To: maemo@javispedro.com\n"
-"POT-Creation-Date: 2010-02-08 18:56+0100\n"
+"POT-Creation-Date: 2010-02-08 20:11+0100\n"
 "PO-Revision-Date: 2010-01-28 00:42+0100\n"
 "Last-Translator: Tomasz Dominikowski <dominikowski@gmail.com>\n"
 "Language-Team: Polish <dominikowski@gmail.com>\n"
@@ -112,53 +112,53 @@ msgstr "Nie wybrano pliku ROM"
 msgid "ROM file does not exist"
 msgstr "Plik ROM nie istnieje"
 
-#: controls.c:128
+#: controls.c:156
 msgid "Keyboard"
 msgstr "Klawiatura"
 
-#: controls.c:132
+#: controls.c:160
 msgid "Disabled"
 msgstr "Wyłączone"
 
-#: controls.c:140
+#: controls.c:168
 #, c-format
 msgid "Player %d controls"
 msgstr "Gracz %d steruje"
 
-#: controls.c:163
+#: controls.c:191
 msgid "Keys"
 msgstr "Klawisze"
 
-#: controls.c:169 controls.c:241
+#: controls.c:197 controls.c:269
 msgid "Enable keyboard"
 msgstr "Włącz klawiaturę"
 
-#: controls.c:176 controls.c:242
+#: controls.c:204 controls.c:270
 #, fuzzy
 msgid "Configure keys…"
 msgstr "Skonfiguruj klawisze..."
 
-#: controls.c:182
+#: controls.c:210
 msgid "Touchscreen"
 msgstr "Ekran dotykowy"
 
-#: controls.c:189 controls.c:254
+#: controls.c:217 controls.c:282
 msgid "Enable touchscreen buttons"
 msgstr "Włącz przyciski ekranu dotyk."
 
-#: controls.c:196 controls.c:256
+#: controls.c:224 controls.c:284
 msgid "Show on-screen button grid"
 msgstr "Wyświetlaj siatkę ekranową"
 
-#: controls.c:200
+#: controls.c:228
 msgid "Accelerometer"
 msgstr "Akcelerometr"
 
-#: controls.c:204
+#: controls.c:232
 msgid "Wiimote"
 msgstr "Wiimote"
 
-#: controls.c:208
+#: controls.c:236
 msgid "Zeemote"
 msgstr "Zeemote"
 
index 9792f7a..29ac2e1 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: DrNokSnes 1.2.5\n"
 "Report-Msgid-Bugs-To: maemo@javispedro.com\n"
-"POT-Creation-Date: 2010-02-08 18:56+0100\n"
+"POT-Creation-Date: 2010-02-08 20:11+0100\n"
 "PO-Revision-Date: 2010-01-28 05:00+0100\n"
 "Last-Translator: Robert Hägerström <rofo1000@gmail.com>\n"
 "Language-Team: Swedish\n"
@@ -110,53 +110,53 @@ msgstr "Ingen ROM vald"
 msgid "ROM file does not exist"
 msgstr "ROM-filen existerar inte"
 
-#: controls.c:128
+#: controls.c:156
 msgid "Keyboard"
 msgstr "Tangentbord"
 
-#: controls.c:132
+#: controls.c:160
 msgid "Disabled"
 msgstr "Inaktiverad"
 
-#: controls.c:140
+#: controls.c:168
 #, c-format
 msgid "Player %d controls"
 msgstr "Spelare %d kontroller"
 
-#: controls.c:163
+#: controls.c:191
 msgid "Keys"
 msgstr "tangenter"
 
-#: controls.c:169 controls.c:241
+#: controls.c:197 controls.c:269
 msgid "Enable keyboard"
 msgstr "Aktivera tangentbordet"
 
-#: controls.c:176 controls.c:242
+#: controls.c:204 controls.c:270
 #, fuzzy
 msgid "Configure keys…"
 msgstr "Anpassa tangenter..."
 
-#: controls.c:182
+#: controls.c:210
 msgid "Touchscreen"
 msgstr "Pekskärm"
 
-#: controls.c:189 controls.c:254
+#: controls.c:217 controls.c:282
 msgid "Enable touchscreen buttons"
 msgstr "Aktivera pekskärmsknappar"
 
-#: controls.c:196 controls.c:256
+#: controls.c:224 controls.c:284
 msgid "Show on-screen button grid"
 msgstr "Visa skärmknapparnas rutnät"
 
-#: controls.c:200
+#: controls.c:228
 msgid "Accelerometer"
 msgstr "Accelerometer"
 
-#: controls.c:204
+#: controls.c:232
 msgid "Wiimote"
 msgstr "Wiimote"
 
-#: controls.c:208
+#: controls.c:236
 msgid "Zeemote"
 msgstr "Zeemote"
 
index 869dc7d..2bb57f1 100644 (file)
@@ -199,7 +199,7 @@ static void loadDefaults()
        Config.hacksFile = 0;
        Config.joypad1Enabled = false;
        Config.joypad2Enabled = false;
-       Config.touchscreenInput = false;
+       Config.touchscreenInput = 0;
        Config.touchscreenShow = false;
 
        Settings.JoystickEnabled = FALSE;
@@ -368,10 +368,10 @@ static void parseArgs(poptContext optCon)
                                Settings.SoundBufferSize = atoi(poptGetOptArg(optCon));
                                break;
                        case 16:
-                               Config.touchscreenInput = true;
+                               Config.touchscreenInput = 1;
                                break;
                        case 17:
-                               Config.touchscreenInput = true;
+                               Config.touchscreenInput = 1;
                                Config.touchscreenShow = true;
                                break;
                        case 18:
index bc4c6cf..a6c9da1 100644 (file)
@@ -240,6 +240,7 @@ void OssoConfig()
        gchar key[kGConfPlayerPathBufferLen];
        gchar *relKey = key + sprintf(key, kGConfPlayerPath, 1);
 
+       //  keyboard
        strcpy(relKey, kGConfPlayerKeyboardEnable);
        if (gconf_client_get_bool(gcc, key, NULL)) {
                Config.joypad1Enabled = true;
@@ -249,15 +250,38 @@ void OssoConfig()
                loadSafeKeymap();
        }
 
+       //  touchscreen
+       strcpy(relKey, kGConfPlayerTouchscreenEnable);
+       if (gconf_client_get_bool(gcc, key, NULL)) {
+               Config.touchscreenInput = 1;
+
+               strcpy(relKey, kGConfPlayerTouchscreenShow);
+               if (gconf_client_get_bool(gcc, key, NULL)) {
+                       Config.touchscreenShow = true;
+               }
+       }
+
        // Read player 2 controls
        relKey = key + sprintf(key, kGConfPlayerPath, 2);
 
+       //  keyboard
        strcpy(relKey, kGConfPlayerKeyboardEnable);
        if (gconf_client_get_bool(gcc, key, NULL)) {
                Config.joypad2Enabled = true;
                loadPlayer2Keymap(gcc);
        }
 
+       //  touchscreen
+       strcpy(relKey, kGConfPlayerTouchscreenEnable);
+       if (gconf_client_get_bool(gcc, key, NULL)) {
+               Config.touchscreenInput = 2;
+
+               strcpy(relKey, kGConfPlayerTouchscreenShow);
+               if (gconf_client_get_bool(gcc, key, NULL)) {
+                       Config.touchscreenShow = true;
+               }
+       }
+
        // Time to read the startup command from D-Bus
 
        // Timeout after 3 seconds, and assume we didn't receive any.
index 6598183..9093b7e 100644 (file)
@@ -26,8 +26,8 @@ extern struct config {
        bool joypad1Enabled;
        /** Enable player 2 joypad */
        bool joypad2Enabled;
-       /** Enable touchscreen controls */
-       bool touchscreenInput;
+       /** Enable touchscreen controls (0 = no, 1 = for player 1, 2 = for player 2) */
+       char touchscreenInput;
        /** Display touchscreen controls grid */
        bool touchscreenShow;
        /** If true, next time the main loop is entered application will close */
index 82fefe1..7553c8a 100644 (file)
@@ -61,10 +61,10 @@ static TouchButton* getButtonFor(unsigned int x, unsigned int y) {
 }
 
 static inline void unpress(TouchButton* b) {
-       joypads[0] &= ~b->mask;
+       joypads[Config.touchscreenInput - 1] &= ~b->mask;
 }
 static inline void press(TouchButton* b) {
-       joypads[0] |= b->mask;
+       joypads[Config.touchscreenInput - 1] |= b->mask;
 }
 
 static void processMouse(unsigned int x, unsigned int y, int pressed = 0)