annotate src/evdev-plug/ed_ui.c @ 972:cf7021ca4e7b trunk

[svn] Add lastfm:// transport, an abstract VFS class which derives from curl to provide lastfm radio support. Written by majeru with some cleanups by me. Most last.fm metadata support isn't yet implemented, however, and will need to be done by majeru. ;)
author nenolod
date Sun, 22 Apr 2007 04:16:08 -0700
parents d124034ebea3
children 0cc6b35fbeb4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
422
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1 /*
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
2 *
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
3 * Author: Giacomo Lozito <james@develia.org>, (C) 2005-2007
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
4 *
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
5 * This program is free software; you can redistribute it and/or modify it
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
6 * under the terms of the GNU General Public License as published by the
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
7 * Free Software Foundation; either version 2 of the License, or (at your
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
8 * option) any later version.
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
9 *
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
10 * This program is distributed in the hope that it will be useful, but
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
13 * General Public License for more details.
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
14 *
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License along
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
16 * with this program; if not, write to the Free Software Foundation, Inc.,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
18 *
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
19 */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
20
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
21 #include "ed_ui.h"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
22 #include "ed_types.h"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
23 #include "ed_internals.h"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
24 #include "ed_actions.h"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
25 #include "ed_bindings_store.h"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
26 #include "ed_common.h"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
27 #include <stdlib.h>
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
28 #include <linux/input.h>
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
29
527
d124034ebea3 [svn] - glib/gi18n.h -> audacious/i18n.h for automatic dgettext support
nenolod
parents: 457
diff changeset
30 #include <audacious/i18n.h>
422
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
31 #include <gtk/gtk.h>
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
32
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
33
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
34 static void cfg_ui_bindings_show ( ed_device_t * , GtkTreeRowReference * );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
35
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
36 extern ed_action_t player_actions[];
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
37 extern gboolean plugin_is_active;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
38
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
39 static GtkWidget *cfg_win = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
40
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
41 enum
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
42 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
43 DEVLIST_COL_ISACTIVE = 0,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
44 DEVLIST_COL_NAME,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
45 DEVLIST_COL_FILENAME,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
46 DEVLIST_COL_PHYS,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
47 DEVLIST_COL_ISAVAILABLE,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
48 DEVLIST_COL_BINDINGS,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
49 DEVLIST_NUMCOLS
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
50 };
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
51
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
52 enum
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
53 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
54 DEVLIST_ISAVAILABLE_NOTDET = 0,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
55 DEVLIST_ISAVAILABLE_DET,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
56 DEVLIST_ISAVAILABLE_CUSTOM
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
57 };
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
58
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
59
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
60
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
61 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
62 cfg_device_lv_populate( GtkListStore * store )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
63 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
64 /* store is logically divided in three families of devices,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
65 depending on the ISAVAILABLE value;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
66 DEVLIST_ISAVAILABLE_NOTDET -> not detected devices: these are not-custom
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
67 devices that are present in configuration file but they do not seem
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
68 to be plugged at the moment, cause they're not in system_devices_list;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
69 DEVLIST_ISAVAILABLE_DET -> detected devices: these are not-custom devices that
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
70 are currently plugged, no matter whether they are in configuration or not;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
71 DEVLIST_ISAVAILABLE_CUSTOM -> custom devices: defined by user in configuration
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
72 file, these are not checked against system_devices_list;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
73 */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
74
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
75 GList *system_devices_list = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
76 GList *config_devices_list = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
77 GList *list_iter = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
78
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
79 system_devices_list = ed_device_get_list_from_system();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
80 config_devices_list = ed_device_get_list_from_config();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
81
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
82 /* first, for each not-custom device in config_devices_list,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
83 perform a search in system_devices_list */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
84 list_iter = config_devices_list;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
85 while ( list_iter != NULL )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
86 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
87 ed_device_info_t *info_from_cfg = list_iter->data;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
88 if ( info_from_cfg->is_custom == 0 ) /* only try to detect not-custom devices */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
89 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
90 /* note: if device is found, filename and phys in info_from_cfg could be updated by the
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
91 check; the found device will be marked as "found" in system_devices_list too */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
92 if ( ed_device_check( system_devices_list ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
93 info_from_cfg->name , &(info_from_cfg->filename) , &(info_from_cfg->phys) ) == ED_DEVCHECK_OK )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
94 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
95 info_from_cfg->reg = 1; /* mark our device from config as "found" */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
96 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
97 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
98 list_iter = g_list_next( list_iter );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
99 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
100
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
101 /* at this point, we have three logical groups:
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
102 #1 - not-custom devices in config_devices_list, marked as "found" -> DEVLIST_ISAVAILABLE_DET
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
103 #2 - not-custom devices in config_devices_list, not-marked -> DEVLIST_ISAVAILABLE_NOTDET
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
104 #3 - custom devices in config_devices_list -> DEVLIST_ISAVAILABLE_CUSTOM
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
105 #1bis - plus, we pick not-marked devices from system_devices_list, which
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
106 are plugged devices that are not present in config_devices_list -> DEVLIST_ISAVAILABLE_DET
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
107 */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
108
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
109 /* let's start to fill the store with items from group #1 (DEVLIST_ISAVAILABLE_DET) */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
110 list_iter = config_devices_list;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
111 while ( list_iter != NULL )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
112 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
113 ed_device_info_t *info_from_cfg = list_iter->data;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
114 if (( info_from_cfg->reg == 1 ) && ( info_from_cfg->is_custom == 0 ))
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
115 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
116 GtkTreeIter iter;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
117 gtk_list_store_append( store , &iter );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
118 gtk_list_store_set( store , &iter ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
119 DEVLIST_COL_ISACTIVE , info_from_cfg->is_active ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
120 DEVLIST_COL_NAME , info_from_cfg->name ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
121 DEVLIST_COL_FILENAME , info_from_cfg->filename ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
122 DEVLIST_COL_PHYS , info_from_cfg->phys ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
123 DEVLIST_COL_ISAVAILABLE , DEVLIST_ISAVAILABLE_DET ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
124 DEVLIST_COL_BINDINGS , info_from_cfg->bindings ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
125 -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
126 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
127 list_iter = g_list_next( list_iter );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
128 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
129
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
130 /* add items from group #1bis (DEVLIST_ISAVAILABLE_DET) */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
131 list_iter = system_devices_list;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
132 while ( list_iter != NULL )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
133 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
134 ed_device_info_t *info_from_sys = list_iter->data;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
135 if ( info_from_sys->reg == 0 )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
136 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
137 GtkTreeIter iter;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
138 gtk_list_store_append( store , &iter );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
139 gtk_list_store_set( store , &iter ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
140 DEVLIST_COL_ISACTIVE , info_from_sys->is_active ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
141 DEVLIST_COL_NAME , info_from_sys->name ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
142 DEVLIST_COL_FILENAME , info_from_sys->filename ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
143 DEVLIST_COL_PHYS , info_from_sys->phys ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
144 DEVLIST_COL_ISAVAILABLE , DEVLIST_ISAVAILABLE_DET ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
145 DEVLIST_COL_BINDINGS , info_from_sys->bindings ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
146 -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
147 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
148 list_iter = g_list_next( list_iter );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
149 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
150
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
151 /* add items from group #2 (DEVLIST_ISAVAILABLE_NOTDET) */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
152 list_iter = config_devices_list;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
153 while ( list_iter != NULL )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
154 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
155 ed_device_info_t *info_from_cfg = list_iter->data;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
156 if (( info_from_cfg->reg == 0 ) && ( info_from_cfg->is_custom == 0 ))
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
157 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
158 GtkTreeIter iter;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
159 gtk_list_store_append( store , &iter );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
160 gtk_list_store_set( store , &iter ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
161 DEVLIST_COL_ISACTIVE , info_from_cfg->is_active ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
162 DEVLIST_COL_NAME , info_from_cfg->name ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
163 DEVLIST_COL_FILENAME , info_from_cfg->filename ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
164 DEVLIST_COL_PHYS , info_from_cfg->phys ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
165 DEVLIST_COL_ISAVAILABLE , DEVLIST_ISAVAILABLE_NOTDET ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
166 DEVLIST_COL_BINDINGS , info_from_cfg->bindings ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
167 -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
168 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
169 list_iter = g_list_next( list_iter );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
170 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
171
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
172 /* add items from group #3 (DEVLIST_ISAVAILABLE_CUSTOM) */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
173 list_iter = config_devices_list;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
174 while ( list_iter != NULL )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
175 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
176 ed_device_info_t *info_from_cfg = list_iter->data;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
177 if ( info_from_cfg->is_custom == 1 )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
178 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
179 GtkTreeIter iter;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
180 gtk_list_store_append( store , &iter );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
181 gtk_list_store_set( store , &iter ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
182 DEVLIST_COL_ISACTIVE , info_from_cfg->is_active ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
183 DEVLIST_COL_NAME , info_from_cfg->name ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
184 DEVLIST_COL_FILENAME , info_from_cfg->filename ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
185 DEVLIST_COL_PHYS , info_from_cfg->phys ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
186 DEVLIST_COL_ISAVAILABLE , DEVLIST_ISAVAILABLE_CUSTOM ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
187 DEVLIST_COL_BINDINGS , info_from_cfg->bindings ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
188 -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
189 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
190 list_iter = g_list_next( list_iter );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
191 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
192
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
193 /* delete lists; bindings objects are not deleted,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
194 they must be accessible from liststore for customization
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
195 and they'll be deleted when the config win is destroyed */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
196 ed_device_free_list( config_devices_list );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
197 ed_device_free_list( system_devices_list );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
198 return;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
199 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
200
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
201
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
202 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
203 cfg_device_lv_celldatafunc_isavailable( GtkTreeViewColumn * col , GtkCellRenderer * renderer ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
204 GtkTreeModel * model , GtkTreeIter * iter , gpointer data )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
205 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
206 guint is_available = 0;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
207 gtk_tree_model_get( model , iter , DEVLIST_COL_ISAVAILABLE , &is_available , -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
208 switch (is_available)
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
209 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
210 case DEVLIST_ISAVAILABLE_DET:
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
211 g_object_set( renderer , "text" , "Detected" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
212 "foreground" , "Green" , "foreground-set" , TRUE ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
213 "background" , "Black" , "background-set" , TRUE , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
214 break;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
215 case DEVLIST_ISAVAILABLE_CUSTOM:
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
216 g_object_set( renderer , "text" , "Custom" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
217 "foreground" , "Yellow" , "foreground-set" , TRUE ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
218 "background" , "Black" , "background-set" , TRUE , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
219 break;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
220 case DEVLIST_ISAVAILABLE_NOTDET:
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
221 default:
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
222 g_object_set( renderer , "text" , "Not Detected" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
223 "foreground" , "Orange" , "foreground-set" , TRUE ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
224 "background" , "Black" , "background-set" , TRUE , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
225 break;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
226 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
227 return;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
228 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
229
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
230
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
231 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
232 cfg_device_lv_changetoggle ( GtkCellRendererToggle * toggle ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
233 gchar * path_str , gpointer cfg_device_lv )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
234 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
235 GtkTreeModel *model = gtk_tree_view_get_model( GTK_TREE_VIEW(cfg_device_lv) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
236 GtkTreeIter iter;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
237 GtkTreePath *path = gtk_tree_path_new_from_string( path_str );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
238 gboolean toggled;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
239
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
240 gtk_tree_model_get_iter( model , &iter , path );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
241 gtk_tree_model_get( model , &iter , DEVLIST_COL_ISACTIVE , &toggled , -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
242
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
243 toggled ^= 1;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
244 gtk_list_store_set( GTK_LIST_STORE(model), &iter , DEVLIST_COL_ISACTIVE , toggled , -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
245
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
246 gtk_tree_path_free( path );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
247 return;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
248 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
249
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
250
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
251 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
252 cfg_config_cb_bindings_show ( gpointer cfg_device_lv )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
253 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
254 GtkTreeSelection *sel;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
255 GtkTreeModel *model;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
256 GtkTreeIter iter;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
257
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
258 /* check if a row is selected */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
259 sel = gtk_tree_view_get_selection( GTK_TREE_VIEW(cfg_device_lv) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
260 if ( gtk_tree_selection_get_selected( sel , &model , &iter ) == TRUE )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
261 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
262 /* check availability and active status */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
263 guint is_available = 0;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
264 gboolean is_active = FALSE;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
265
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
266 gtk_tree_model_get( model , &iter ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
267 DEVLIST_COL_ISACTIVE , &is_active ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
268 DEVLIST_COL_ISAVAILABLE , &is_available ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
269 -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
270
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
271 if ( is_available == DEVLIST_ISAVAILABLE_NOTDET )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
272 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
273 /* do not open bindings window for a not-detected device */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
274 ed_ui_message_show( _("Information") ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
275 _("Cannot open bindings window for a not-detected device.\n"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
276 "Ensure that the device has been correctly plugged in.") ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
277 cfg_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
278 return;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
279 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
280 else
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
281 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
282 /* ok, create a ed_device_t item from selected row information */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
283 ed_device_t *dev;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
284 gchar *device_name = NULL, *device_file = NULL, *device_phys = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
285 gpointer bindings = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
286
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
287 gtk_tree_model_get( model , &iter ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
288 DEVLIST_COL_NAME , &device_name ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
289 DEVLIST_COL_FILENAME , &device_file ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
290 DEVLIST_COL_PHYS , &device_phys ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
291 DEVLIST_COL_BINDINGS , &bindings ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
292 -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
293
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
294 dev = ed_device_new(
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
295 device_name , device_file , device_phys ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
296 ( is_available == DEVLIST_ISAVAILABLE_CUSTOM ? 1 : 0 ) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
297 g_free( device_name ); g_free( device_file ); g_free( device_phys );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
298
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
299 if ( dev != NULL )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
300 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
301 GtkTreePath *path;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
302 GtkTreeRowReference *rowref;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
303
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
304 dev->info->bindings = bindings;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
305
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
306 path = gtk_tree_model_get_path( model , &iter );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
307 rowref = gtk_tree_row_reference_new( model , path );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
308 gtk_tree_path_free( path );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
309 /* show bindings window for device "dev"; also pass to the bindings window
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
310 the GtkTreeRowReference (it keeps track of the model too) for selected row;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
311 if changes are committed in the bindings window, the row reference will be
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
312 needed to update the treemodel with the new bindings information */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
313 cfg_ui_bindings_show( dev , rowref );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
314 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
315 else
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
316 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
317 /* something went wrong */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
318 ed_ui_message_show( _("Error") ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
319 _("Unable to open selected device.\n"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
320 "Please check read permissions on device file.") ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
321 cfg_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
322 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
323 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
324 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
325 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
326
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
327
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
328 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
329 cfg_config_cb_addcustom_show ( gpointer cfg_device_lv )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
330 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
331 GtkWidget *addc_dlg;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
332 GtkWidget *addc_data_frame, *addc_data_vbox;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
333 GtkWidget *addc_data_label;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
334 GtkWidget *addc_data_table;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
335 GtkWidget *addc_data_name_label, *addc_data_name_entry;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
336 GtkWidget *addc_data_file_label, *addc_data_file_entry;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
337 gint result;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
338 gboolean task_done = FALSE;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
339
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
340 addc_dlg = gtk_dialog_new_with_buttons( _("EvDev-Plug - Add custom device") ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
341 GTK_WINDOW(cfg_win) , GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
342 GTK_STOCK_CANCEL , GTK_RESPONSE_REJECT , GTK_STOCK_OK , GTK_RESPONSE_ACCEPT , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
343
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
344 addc_data_frame = gtk_frame_new( NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
345 gtk_container_add( GTK_CONTAINER(GTK_DIALOG(addc_dlg)->vbox) , addc_data_frame );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
346 addc_data_vbox = gtk_vbox_new( FALSE , 5 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
347 gtk_container_set_border_width( GTK_CONTAINER(addc_data_vbox) , 5 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
348 gtk_container_add( GTK_CONTAINER(addc_data_frame) , addc_data_vbox );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
349
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
350 addc_data_label = gtk_label_new( "" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
351 gtk_label_set_text( GTK_LABEL(addc_data_label) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
352 _("EvDev-Plug tries to automatically detect and update information about\n"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
353 "event devices available on the system.\n"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
354 "However, if auto-detect doesn't work for your system, or you have event\n"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
355 "devices in a non-standard location (currently they're only searched in\n"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
356 "/dev/input/ ), you may want to add a custom device, explicitly specifying\n"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
357 "name and device file.") );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
358 gtk_box_pack_start( GTK_BOX(addc_data_vbox) , addc_data_label , FALSE , FALSE , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
359
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
360 addc_data_name_label = gtk_label_new( _("Device name:") );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
361 gtk_misc_set_alignment( GTK_MISC(addc_data_name_label) , 0 , 0.5 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
362 addc_data_name_entry = gtk_entry_new();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
363
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
364 addc_data_file_label = gtk_label_new( _("Device file:") );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
365 gtk_misc_set_alignment( GTK_MISC(addc_data_file_label) , 0 , 0.5 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
366 addc_data_file_entry = gtk_entry_new();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
367
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
368 addc_data_table = gtk_table_new( 2 , 2 , FALSE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
369 gtk_table_set_col_spacings( GTK_TABLE(addc_data_table) , 2 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
370 gtk_table_set_row_spacings( GTK_TABLE(addc_data_table) , 2 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
371 gtk_table_attach( GTK_TABLE(addc_data_table) , addc_data_name_label , 0 , 1 , 0 , 1 ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
372 GTK_FILL , GTK_EXPAND | GTK_FILL , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
373 gtk_table_attach( GTK_TABLE(addc_data_table) , addc_data_name_entry , 1 , 2 , 0 , 1 ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
374 GTK_EXPAND | GTK_FILL , GTK_EXPAND | GTK_FILL , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
375 gtk_table_attach( GTK_TABLE(addc_data_table) , addc_data_file_label , 0 , 1 , 1 , 2 ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
376 GTK_FILL , GTK_EXPAND | GTK_FILL , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
377 gtk_table_attach( GTK_TABLE(addc_data_table) , addc_data_file_entry , 1 , 2 , 1 , 2 ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
378 GTK_EXPAND | GTK_FILL , GTK_EXPAND | GTK_FILL , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
379 gtk_box_pack_start( GTK_BOX(addc_data_vbox) , addc_data_table , TRUE , TRUE , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
380
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
381 gtk_widget_show_all( addc_dlg );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
382
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
383 while ( task_done == FALSE )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
384 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
385 result = gtk_dialog_run( GTK_DIALOG(addc_dlg) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
386 if ( result == GTK_RESPONSE_ACCEPT )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
387 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
388 const gchar *name = gtk_entry_get_text( GTK_ENTRY(addc_data_name_entry) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
389 const gchar *file = gtk_entry_get_text( GTK_ENTRY(addc_data_file_entry) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
390 if ( ( strcmp( name , "" ) != 0 ) &&
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
391 ( strcmp( name , "___plugin___" ) != 0 ) &&
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
392 ( strcmp( file , "" ) != 0 ) &&
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
393 ( file[0] == '/' ) )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
394 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
395 GtkTreeModel *model = gtk_tree_view_get_model( GTK_TREE_VIEW(cfg_device_lv) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
396 GtkTreeIter iter;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
397
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
398 gtk_list_store_append( GTK_LIST_STORE(model) , &iter );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
399 gtk_list_store_set( GTK_LIST_STORE(model) , &iter ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
400 DEVLIST_COL_ISACTIVE , FALSE ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
401 DEVLIST_COL_NAME , name ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
402 DEVLIST_COL_FILENAME , file ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
403 DEVLIST_COL_PHYS , "(custom)" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
404 DEVLIST_COL_ISAVAILABLE , DEVLIST_ISAVAILABLE_CUSTOM ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
405 DEVLIST_COL_BINDINGS , NULL , -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
406 task_done = TRUE;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
407 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
408 else
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
409 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
410 ed_ui_message_show( _("Information") ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
411 _("Please specify both name and filename.\n"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
412 "Filename must be specified with absolute path.") ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
413 addc_dlg );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
414 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
415 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
416 else
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
417 task_done = TRUE;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
418 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
419
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
420 gtk_widget_destroy( addc_dlg );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
421 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
422
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
423
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
424 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
425 cfg_config_cb_remove ( gpointer cfg_device_lv )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
426 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
427 GtkTreeSelection *sel;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
428 GtkTreeModel *model;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
429 GtkTreeIter iter;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
430
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
431 /* check if a row is selected */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
432 sel = gtk_tree_view_get_selection( GTK_TREE_VIEW(cfg_device_lv) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
433 if ( gtk_tree_selection_get_selected( sel , &model , &iter ) == TRUE )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
434 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
435 guint is_available = 0;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
436 gtk_tree_model_get( model , &iter , DEVLIST_COL_ISAVAILABLE , &is_available , -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
437 switch ( is_available )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
438 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
439 case DEVLIST_ISAVAILABLE_NOTDET:
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
440 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
441 /* if remove is called on a not-detected device,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
442 it allows to remove existing configuration for it */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
443 GtkWidget *yesno_dlg = gtk_message_dialog_new( GTK_WINDOW(cfg_win) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
444 GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT , GTK_MESSAGE_QUESTION ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
445 GTK_BUTTONS_YES_NO ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
446 _("Do you want to remove the existing configuration for selected device?\n") );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
447 if ( gtk_dialog_run( GTK_DIALOG(yesno_dlg) ) == GTK_RESPONSE_YES )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
448 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
449 gpointer bindings = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
450 gtk_tree_model_get( model , &iter , DEVLIST_COL_BINDINGS , &bindings , -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
451 if ( bindings != NULL ) ed_bindings_store_delete( bindings );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
452 gtk_list_store_remove( GTK_LIST_STORE(model) , &iter );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
453 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
454 gtk_widget_destroy( yesno_dlg );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
455 break;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
456 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
457
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
458 case DEVLIST_ISAVAILABLE_CUSTOM:
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
459 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
460 /* if remove is called on a custom device,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
461 it allows to remove it along with its configuration */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
462 GtkWidget *yesno_dlg = gtk_message_dialog_new( GTK_WINDOW(cfg_win) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
463 GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT , GTK_MESSAGE_QUESTION ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
464 GTK_BUTTONS_YES_NO ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
465 _("Do you want to remove the selected custom device?\n") );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
466 if ( gtk_dialog_run( GTK_DIALOG(yesno_dlg) ) == GTK_RESPONSE_YES )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
467 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
468 gpointer bindings = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
469 gtk_tree_model_get( model , &iter , DEVLIST_COL_BINDINGS , &bindings , -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
470 if ( bindings != NULL ) ed_bindings_store_delete( bindings );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
471 gtk_list_store_remove( GTK_LIST_STORE(model) , &iter );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
472 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
473 gtk_widget_destroy( yesno_dlg );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
474 break;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
475 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
476
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
477 case DEVLIST_ISAVAILABLE_DET:
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
478 default:
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
479 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
480 /* do nothing for detected devices */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
481 break;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
482 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
483 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
484 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
485 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
486
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
487
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
488 static gboolean
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
489 cfg_config_cb_bindings_commit_foreach ( GtkTreeModel * model ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
490 GtkTreePath * path ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
491 GtkTreeIter * iter ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
492 gpointer config_device_list_p )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
493 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
494 gchar *device_name = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
495 gchar *device_file = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
496 gchar *device_phys = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
497 gboolean is_active = FALSE;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
498 guint is_available = 0;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
499 gpointer bindings = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
500 ed_device_info_t *info;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
501 GList **config_device_list = config_device_list_p;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
502
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
503 gtk_tree_model_get( model , iter ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
504 DEVLIST_COL_ISACTIVE , &is_active ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
505 DEVLIST_COL_NAME , &device_name ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
506 DEVLIST_COL_FILENAME , &device_file ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
507 DEVLIST_COL_PHYS , &device_phys ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
508 DEVLIST_COL_ISAVAILABLE , &is_available ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
509 DEVLIST_COL_BINDINGS , &bindings , -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
510
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
511 info = ed_device_info_new( device_name , device_file , device_phys ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
512 ( is_available == DEVLIST_ISAVAILABLE_CUSTOM ? 1 : 0 ) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
513 info->bindings = bindings;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
514 info->is_active = is_active;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
515
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
516 *config_device_list = g_list_append( *config_device_list , info );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
517 return FALSE;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
518 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
519
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
520
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
521 static gboolean
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
522 cfg_config_cb_bindings_delbindings_foreach ( GtkTreeModel * model ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
523 GtkTreePath * path ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
524 GtkTreeIter * iter ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
525 gpointer data )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
526 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
527 gpointer bindings = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
528 gtk_tree_model_get( model , iter , DEVLIST_COL_BINDINGS , &bindings , -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
529 if ( bindings != NULL )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
530 ed_bindings_store_delete( bindings );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
531 return FALSE;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
532 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
533
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
534
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
535 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
536 cfg_config_cb_commit ( gpointer cfg_device_lv )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
537 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
538 GList *config_device_list = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
539 GList *list_iter;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
540 GtkTreeModel *model;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
541
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
542 model = gtk_tree_view_get_model( GTK_TREE_VIEW(cfg_device_lv) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
543 /* fill config_device_list with information from the treeview */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
544 gtk_tree_model_foreach( model , cfg_config_cb_bindings_commit_foreach , &config_device_list );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
545 /* ok, now we have a list of ed_device_info_t objects */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
546
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
547 /* commit changes in configuration file */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
548 ed_config_save_from_list( config_device_list );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
549
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
550 /* not needed anymore */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
551 ed_device_free_list( config_device_list );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
552
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
553 /* free bindings stored in the liststore */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
554 gtk_tree_model_foreach( model , cfg_config_cb_bindings_delbindings_foreach , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
555
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
556 if ( plugin_is_active == TRUE )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
557 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
558 /* restart device listening according to the (possibly changed) config file */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
559 ed_device_start_listening_from_config();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
560 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
561
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
562 gtk_widget_destroy( cfg_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
563 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
564
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
565
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
566 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
567 cfg_config_cb_cancel ( gpointer cfg_device_lv )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
568 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
569 GtkTreeModel *model;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
570 model = gtk_tree_view_get_model( GTK_TREE_VIEW(cfg_device_lv) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
571
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
572 /* free bindings stored in the liststore */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
573 gtk_tree_model_foreach( model , cfg_config_cb_bindings_delbindings_foreach , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
574
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
575 if ( plugin_is_active == TRUE )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
576 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
577 /* restart device listening according to the (unchanged) config file */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
578 ed_device_start_listening_from_config();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
579 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
580
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
581 gtk_widget_destroy( cfg_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
582 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
583
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
584
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
585 void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
586 ed_ui_config_show( void )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
587 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
588 GtkWidget *cfg_vbox;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
589 GtkWidget *cfg_device_lv, *cfg_device_lv_frame, *cfg_device_lv_sw;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
590 GtkTreeViewColumn *cfg_device_lv_col_name, *cfg_device_lv_col_filename, *cfg_device_lv_col_phys;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
591 GtkTreeViewColumn *cfg_device_lv_col_isactive, *cfg_device_lv_col_isavailable;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
592 GtkCellRenderer *cfg_device_lv_rndr_text, *cfg_device_lv_rndr_toggle;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
593 GtkCellRenderer *cfg_device_lv_rndr_textphys, *cfg_device_lv_rndr_isavailable;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
594 GtkListStore *device_store;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
595 GtkWidget *cfg_bbar_hbbox;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
596 GtkWidget *cfg_bbar_bt_bind, *cfg_bbar_bt_addc, *cfg_bbar_bt_remc;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
597 GtkWidget *cfg_bbar_bt_cancel, *cfg_bbar_bt_ok;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
598 GdkGeometry cfg_win_hints;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
599
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
600 if ( cfg_win != NULL )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
601 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
602 gtk_window_present( GTK_WINDOW(cfg_win) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
603 return;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
604 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
605
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
606 /* IMPORTANT: stop listening for all devices when config window is opened */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
607 ed_device_stop_listening_all( TRUE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
608
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
609 cfg_win = gtk_window_new( GTK_WINDOW_TOPLEVEL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
610 gtk_window_set_type_hint( GTK_WINDOW(cfg_win), GDK_WINDOW_TYPE_HINT_DIALOG );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
611 gtk_window_set_position( GTK_WINDOW(cfg_win), GTK_WIN_POS_CENTER );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
612 gtk_window_set_title( GTK_WINDOW(cfg_win), _("EvDev-Plug - Configuration") );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
613 gtk_container_set_border_width( GTK_CONTAINER(cfg_win), 10 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
614 g_signal_connect( G_OBJECT(cfg_win) , "destroy" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
615 G_CALLBACK(gtk_widget_destroyed) , &cfg_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
616 cfg_win_hints.min_width = -1;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
617 cfg_win_hints.min_height = 300;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
618 gtk_window_set_geometry_hints( GTK_WINDOW(cfg_win) , GTK_WIDGET(cfg_win) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
619 &cfg_win_hints , GDK_HINT_MIN_SIZE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
620
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
621 cfg_vbox = gtk_vbox_new( FALSE , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
622 gtk_container_add( GTK_CONTAINER(cfg_win) , cfg_vbox );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
623
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
624 /* current liststore model
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
625 ----------------------------------------------
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
626 G_TYPE_BOOLEAN -> device listening on/off
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
627 G_TYPE_STRING -> device name
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
628 G_TYPE_STRING -> device filename
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
629 G_TYPE_STRING -> device physical port
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
630 G_TYPE_UINT -> device is available
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
631 G_TYPE_POINTER -> device bindings
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
632 ----------------------------------------------
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
633 */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
634 device_store = gtk_list_store_new(
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
635 DEVLIST_NUMCOLS , G_TYPE_BOOLEAN , G_TYPE_STRING ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
636 G_TYPE_STRING , G_TYPE_STRING , G_TYPE_UINT , G_TYPE_POINTER );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
637 cfg_device_lv_populate( device_store );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
638
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
639 cfg_device_lv_frame = gtk_frame_new( NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
640 cfg_device_lv = gtk_tree_view_new_with_model( GTK_TREE_MODEL(device_store) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
641 g_object_unref( device_store );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
642
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
643 cfg_device_lv_rndr_text = gtk_cell_renderer_text_new();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
644 cfg_device_lv_rndr_toggle = gtk_cell_renderer_toggle_new();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
645 cfg_device_lv_rndr_isavailable = gtk_cell_renderer_text_new();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
646 cfg_device_lv_rndr_textphys = gtk_cell_renderer_text_new();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
647 g_object_set( G_OBJECT(cfg_device_lv_rndr_textphys) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
648 "ellipsize-set" , TRUE , "ellipsize" , PANGO_ELLIPSIZE_END , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
649
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
650 cfg_device_lv_col_isactive = gtk_tree_view_column_new_with_attributes(
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
651 _("Active") , cfg_device_lv_rndr_toggle , "active" , DEVLIST_COL_ISACTIVE , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
652 gtk_tree_view_column_set_expand( GTK_TREE_VIEW_COLUMN(cfg_device_lv_col_isactive) , FALSE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
653 gtk_tree_view_append_column( GTK_TREE_VIEW(cfg_device_lv), cfg_device_lv_col_isactive );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
654 cfg_device_lv_col_isavailable = gtk_tree_view_column_new();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
655 gtk_tree_view_column_set_title( cfg_device_lv_col_isavailable , _("Status") );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
656 gtk_tree_view_column_pack_start( cfg_device_lv_col_isavailable , cfg_device_lv_rndr_isavailable , TRUE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
657 gtk_tree_view_column_set_cell_data_func(
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
658 cfg_device_lv_col_isavailable , cfg_device_lv_rndr_isavailable ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
659 (GtkTreeCellDataFunc)cfg_device_lv_celldatafunc_isavailable ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
660 NULL , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
661 gtk_tree_view_column_set_expand( GTK_TREE_VIEW_COLUMN(cfg_device_lv_col_isavailable) , FALSE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
662 gtk_tree_view_append_column( GTK_TREE_VIEW(cfg_device_lv), cfg_device_lv_col_isavailable );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
663 cfg_device_lv_col_name = gtk_tree_view_column_new_with_attributes(
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
664 _("Device Name") , cfg_device_lv_rndr_text , "text" , DEVLIST_COL_NAME , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
665 gtk_tree_view_column_set_expand( GTK_TREE_VIEW_COLUMN(cfg_device_lv_col_name) , FALSE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
666 gtk_tree_view_append_column( GTK_TREE_VIEW(cfg_device_lv), cfg_device_lv_col_name );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
667 cfg_device_lv_col_filename = gtk_tree_view_column_new_with_attributes(
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
668 _("Device File") , cfg_device_lv_rndr_text , "text" , DEVLIST_COL_FILENAME , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
669 gtk_tree_view_column_set_expand( GTK_TREE_VIEW_COLUMN(cfg_device_lv_col_filename) , FALSE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
670 gtk_tree_view_append_column( GTK_TREE_VIEW(cfg_device_lv), cfg_device_lv_col_filename );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
671 cfg_device_lv_col_phys = gtk_tree_view_column_new_with_attributes(
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
672 _("Device Address") , cfg_device_lv_rndr_textphys , "text" , DEVLIST_COL_PHYS , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
673 gtk_tree_view_column_set_expand( GTK_TREE_VIEW_COLUMN(cfg_device_lv_col_phys) , TRUE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
674 gtk_tree_view_column_set_resizable( GTK_TREE_VIEW_COLUMN(cfg_device_lv_col_phys) , TRUE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
675 gtk_tree_view_append_column( GTK_TREE_VIEW(cfg_device_lv), cfg_device_lv_col_phys );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
676 cfg_device_lv_sw = gtk_scrolled_window_new( NULL , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
677 gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(cfg_device_lv_sw) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
678 GTK_POLICY_NEVER , GTK_POLICY_ALWAYS );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
679
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
680 gtk_container_add( GTK_CONTAINER(cfg_device_lv_sw) , cfg_device_lv );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
681 gtk_container_add( GTK_CONTAINER(cfg_device_lv_frame) , cfg_device_lv_sw );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
682 gtk_box_pack_start( GTK_BOX(cfg_vbox) , cfg_device_lv_frame , TRUE , TRUE , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
683
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
684 gtk_box_pack_start( GTK_BOX(cfg_vbox) , gtk_hseparator_new() , FALSE , FALSE , 4 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
685
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
686 /* button bar */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
687 cfg_bbar_hbbox = gtk_hbutton_box_new();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
688 gtk_button_box_set_layout( GTK_BUTTON_BOX(cfg_bbar_hbbox) , GTK_BUTTONBOX_START );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
689 cfg_bbar_bt_bind = gtk_button_new_with_mnemonic( _("_Bindings") );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
690 gtk_button_set_image( GTK_BUTTON(cfg_bbar_bt_bind) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
691 gtk_image_new_from_stock( GTK_STOCK_PREFERENCES , GTK_ICON_SIZE_BUTTON ) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
692 cfg_bbar_bt_addc = gtk_button_new_from_stock( GTK_STOCK_ADD );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
693 cfg_bbar_bt_remc = gtk_button_new_from_stock( GTK_STOCK_REMOVE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
694 /*cfg_bbar_bt_refresh = gtk_button_new_from_stock( GTK_STOCK_REFRESH );*/
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
695 cfg_bbar_bt_cancel = gtk_button_new_from_stock( GTK_STOCK_CANCEL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
696 cfg_bbar_bt_ok = gtk_button_new_from_stock( GTK_STOCK_OK );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
697 gtk_container_add( GTK_CONTAINER(cfg_bbar_hbbox) , cfg_bbar_bt_bind );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
698 gtk_container_add( GTK_CONTAINER(cfg_bbar_hbbox) , cfg_bbar_bt_addc );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
699 gtk_container_add( GTK_CONTAINER(cfg_bbar_hbbox) , cfg_bbar_bt_remc );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
700 /*gtk_container_add( GTK_CONTAINER(cfg_bbar_hbbox) , cfg_bbar_bt_refresh );*/
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
701 gtk_container_add( GTK_CONTAINER(cfg_bbar_hbbox) , cfg_bbar_bt_cancel );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
702 gtk_container_add( GTK_CONTAINER(cfg_bbar_hbbox) , cfg_bbar_bt_ok );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
703 gtk_button_box_set_child_secondary( GTK_BUTTON_BOX(cfg_bbar_hbbox) , cfg_bbar_bt_cancel , TRUE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
704 gtk_button_box_set_child_secondary( GTK_BUTTON_BOX(cfg_bbar_hbbox) , cfg_bbar_bt_ok , TRUE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
705 gtk_box_pack_start( GTK_BOX(cfg_vbox) , cfg_bbar_hbbox , FALSE , FALSE , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
706
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
707 g_signal_connect( cfg_device_lv_rndr_toggle , "toggled" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
708 G_CALLBACK(cfg_device_lv_changetoggle) , cfg_device_lv );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
709 g_signal_connect_swapped( G_OBJECT(cfg_bbar_bt_bind) , "clicked" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
710 G_CALLBACK(cfg_config_cb_bindings_show) , cfg_device_lv );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
711 g_signal_connect_swapped( G_OBJECT(cfg_bbar_bt_addc) , "clicked" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
712 G_CALLBACK(cfg_config_cb_addcustom_show) , cfg_device_lv );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
713 g_signal_connect_swapped( G_OBJECT(cfg_bbar_bt_remc) , "clicked" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
714 G_CALLBACK(cfg_config_cb_remove) , cfg_device_lv );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
715 g_signal_connect_swapped( G_OBJECT(cfg_bbar_bt_cancel) , "clicked" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
716 G_CALLBACK(cfg_config_cb_cancel) , cfg_device_lv );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
717 g_signal_connect_swapped( G_OBJECT(cfg_bbar_bt_ok) , "clicked" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
718 G_CALLBACK(cfg_config_cb_commit) , cfg_device_lv );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
719
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
720 gtk_widget_show_all( cfg_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
721 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
722
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
723
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
724
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
725 /* bindings window */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
726
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
727 static void cfg_bindbox_new_empty_row( GtkTable * , GtkWidget * , gboolean );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
728
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
729 enum
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
730 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
731 BINDLIST_COL_COMBO_ACTION = 0,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
732 BINDLIST_COL_BT_ASSIGN,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
733 BINDLIST_COL_LABEL_EVCODE,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
734 BINDLIST_COL_BT_DELETE,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
735 BINDLIST_NUMCOLS
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
736 };
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
737
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
738
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
739 static gboolean
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
740 cfg_bindbox_assign_binding_timeout_func ( gpointer bindings_win )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
741 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
742 GtkWidget *trigger_dlg = g_object_get_data( G_OBJECT(bindings_win) , "trigger-win" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
743 if ( trigger_dlg != NULL )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
744 gtk_dialog_response( GTK_DIALOG(trigger_dlg) , GTK_RESPONSE_CANCEL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
745
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
746 return FALSE;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
747 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
748
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
749
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
750 static gboolean
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
751 cfg_bindbox_assign_binding_input_func ( GIOChannel * iochan ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
752 GIOCondition cond ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
753 gpointer bindings_win )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
754 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
755 switch ( cond )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
756 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
757 case G_IO_IN:
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
758 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
759 gsize rb = 0;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
760 GError *gerr = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
761 struct input_event inputev;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
762 g_io_channel_read_chars( iochan , (gchar*)&inputev ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
763 sizeof(struct input_event) , &rb , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
764 if ( rb == sizeof(struct input_event) )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
765 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
766 GtkWidget *trigger_dlg = g_object_get_data( G_OBJECT(bindings_win) , "trigger-win" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
767 if ( trigger_dlg == NULL )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
768 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
769 /* the trigger-dialog window is not open; ignore input */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
770 return TRUE;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
771 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
772 else
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
773 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
774 /* the trigger-dialog window is open; record input and
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
775 store it in a container managed by the trigger-dialog itself */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
776 ed_inputevent_t *dinputev = g_malloc(sizeof(ed_inputevent_t*));
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
777 dinputev->type = inputev.type;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
778 dinputev->code = inputev.code;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
779 dinputev->value = inputev.value;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
780 g_object_set_data( G_OBJECT(trigger_dlg) , "trigger-data" , dinputev );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
781 gtk_dialog_response( GTK_DIALOG(trigger_dlg) , GTK_RESPONSE_OK );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
782 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
783 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
784 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
785 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
786 return TRUE;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
787 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
788
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
789
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
790 static gboolean
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
791 cfg_bindbox_assign_binding_checkdups( GtkWidget * table , ed_inputevent_t * inputev )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
792 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
793 /* check if inputev is already assigned in table */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
794 GList *children = GTK_TABLE(table)->children;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
795 for ( children ; children != NULL ; children = g_list_next(children) )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
796 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
797 GtkTableChild *child = children->data;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
798
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
799 if ( child->top_attach + 1 == GTK_TABLE(table)->nrows )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
800 continue; /* skip last empty row */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
801
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
802 if ( child->left_attach == BINDLIST_COL_LABEL_EVCODE )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
803 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
804 /* it's a label, pick its inputevent */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
805 ed_inputevent_t * iev = g_object_get_data( G_OBJECT(child->widget) , "inputevent" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
806 if ( ( iev != NULL ) && ( ed_inputevent_check_equality( inputev , iev ) == TRUE ) )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
807 return TRUE; /* a duplicate was found */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
808 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
809 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
810 return FALSE;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
811 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
812
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
813
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
814 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
815 cfg_bindbox_assign_binding ( GtkButton * assign_button , gpointer bindings_win )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
816 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
817 GtkWidget *trigger_dlg;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
818 GtkWidget *trigger_dlg_frame;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
819 GtkWidget *trigger_dlg_label;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
820 guint timeout_sid = 0;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
821 gint res = 0;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
822
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
823 /* create a not-decorated window to inform the user about what's going on */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
824 trigger_dlg = gtk_dialog_new();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
825 gtk_widget_set_name( trigger_dlg , "trigger_dlg" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
826 trigger_dlg_label = gtk_label_new( _("Press a key of your device to bind it;\n"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
827 "if no key is pressed in five seconds, this window\n"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
828 "will close without binding changes.") );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
829 gtk_widget_hide( GTK_WIDGET(GTK_DIALOG(trigger_dlg)->action_area) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
830 gtk_misc_set_padding( GTK_MISC(trigger_dlg_label) , 10 , 10 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
831 trigger_dlg_frame = gtk_frame_new( NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
832 gtk_container_add( GTK_CONTAINER(trigger_dlg_frame) , trigger_dlg_label );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
833 gtk_container_add( GTK_CONTAINER(GTK_DIALOG(trigger_dlg)->vbox) , trigger_dlg_frame );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
834 gtk_window_set_position( GTK_WINDOW(trigger_dlg) , GTK_WIN_POS_CENTER );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
835 gtk_window_set_decorated( GTK_WINDOW(trigger_dlg) , FALSE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
836 gtk_window_set_transient_for( GTK_WINDOW(trigger_dlg) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
837 GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(assign_button))) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
838 gtk_dialog_set_has_separator( GTK_DIALOG(trigger_dlg) , FALSE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
839 gtk_widget_show_all( trigger_dlg );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
840
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
841 /* close the trigger-window if no input is received in 5 seconds */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
842 timeout_sid = g_timeout_add( 5000 , cfg_bindbox_assign_binding_timeout_func , bindings_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
843
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
844 g_object_set_data( G_OBJECT(bindings_win) , "trigger-win" , trigger_dlg ); /* enable trigger-listening */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
845 res = gtk_dialog_run( GTK_DIALOG(trigger_dlg) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
846 g_object_set_data( G_OBJECT(bindings_win) , "trigger-win" , NULL ); /* stop trigger-listening */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
847 switch ( res )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
848 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
849 case GTK_RESPONSE_OK:
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
850 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
851 ed_inputevent_t *dinputev = g_object_get_data( G_OBJECT(trigger_dlg) , "trigger-data" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
852 GtkWidget *label = g_object_get_data( G_OBJECT(assign_button) , "label" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
853 GtkWidget *table = g_object_get_data( G_OBJECT(bindings_win) , "table" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
854 gchar *input_str;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
855
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
856 /* we got a new input event; ensure that this has not been assigned to an action already */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
857 if ( cfg_bindbox_assign_binding_checkdups( table , dinputev ) == TRUE )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
858 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
859 /* this input event has been already used */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
860 g_free( dinputev );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
861 g_source_remove( timeout_sid );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
862 ed_ui_message_show( _("Information") ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
863 _("This input event has been already assigned.\n\n"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
864 "It's not possible to assign multiple actions to the same input event "
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
865 "(although it's possible to assign the same action to multiple events).") ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
866 bindings_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
867 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
868 else
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
869 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
870 /* if this is the last row ("Assign" button) , create a new empty row */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
871 if ( GPOINTER_TO_INT(g_object_get_data(G_OBJECT(assign_button),"last")) == 1 )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
872 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
873 cfg_bindbox_new_empty_row( GTK_TABLE(table) , bindings_win , TRUE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
874 /* so, the current row is not the last one anymore;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
875 remove its "last" mark and enable its delete button */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
876 g_object_set_data( G_OBJECT(assign_button) , "last" , GINT_TO_POINTER(0) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
877 gtk_widget_set_sensitive( GTK_WIDGET(g_object_get_data(G_OBJECT(assign_button),"delbt")) , TRUE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
878 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
879
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
880 g_object_set_data_full( G_OBJECT(label) , "inputevent" , dinputev , g_free );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
881 input_str = g_strdup_printf( "%i:%i:%i" , dinputev->type , dinputev->code , dinputev->value );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
882 gtk_label_set_text( GTK_LABEL(label) , input_str );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
883 g_free( input_str );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
884 g_source_remove( timeout_sid );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
885 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
886
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
887 break;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
888 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
889
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
890 default:
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
891 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
892 break; /* nothing should be changed */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
893 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
894 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
895
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
896 gtk_widget_destroy( trigger_dlg );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
897 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
898
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
899
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
900 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
901 cfg_bindbox_delete_row( GtkButton * delete_button , gpointer bindings_win )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
902 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
903 GtkTable *oldtable, *newtable;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
904 GtkWidget *table_sw, *table_vp;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
905 GList *children = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
906 gint drow = 0;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
907
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
908 /* here comes the drawback of using GtkTable to display
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
909 a list-like set of widgets :) deletion can be a complex task */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
910
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
911 /* first, get the row number of the row that should be deleted
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
912 (this can't be the last one cause it has the delete button disabled) */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
913 oldtable = g_object_get_data( G_OBJECT(bindings_win) , "table" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
914 children = oldtable->children;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
915 while ( children != NULL )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
916 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
917 GtkTableChild *child = children->data;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
918 if ( child->widget == (GtkWidget*)delete_button )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
919 drow = child->top_attach;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
920 children = g_list_next( children );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
921 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
922
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
923 /* now, a simple trick: create a new GtkTable and move all
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
924 of the widgets there, excepting those positioned in row "drow" */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
925 newtable = (GtkTable*)gtk_table_new( oldtable->nrows - 1 , oldtable->ncols , FALSE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
926
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
927 children = oldtable->children;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
928 while ( children != NULL )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
929 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
930 GtkTableChild *child = children->data;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
931 if ( child->top_attach < drow )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
932 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
933 GtkWidget *widget = child->widget;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
934 guint widget_row = child->top_attach;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
935 guint widget_col = child->left_attach;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
936 g_object_ref( widget );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
937 gtk_container_remove( GTK_CONTAINER(oldtable) , widget );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
938 gtk_table_attach( GTK_TABLE(newtable) , widget ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
939 widget_col , widget_col + 1 , widget_row , widget_row + 1 ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
940 (widget_col == BINDLIST_COL_LABEL_EVCODE ? GTK_EXPAND | GTK_FILL : GTK_FILL ) , GTK_FILL , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
941 /* gtk_container_remove() changed the structure used to iterate; restart */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
942 children = oldtable->children;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
943 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
944 else if ( child->top_attach > drow )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
945 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
946 GtkWidget *widget = child->widget;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
947 guint widget_row = child->top_attach;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
948 guint widget_col = child->left_attach;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
949 g_object_ref( widget );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
950 gtk_container_remove( GTK_CONTAINER(oldtable) , widget );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
951 gtk_table_attach( GTK_TABLE(newtable) , widget ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
952 widget_col , widget_col + 1 , widget_row - 1 , widget_row ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
953 (widget_col == BINDLIST_COL_LABEL_EVCODE ? GTK_EXPAND | GTK_FILL : GTK_FILL ) , GTK_FILL , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
954 /* gtk_container_remove() changed the structure used to iterate; restart */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
955 children = oldtable->children;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
956 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
957 else
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
958 children = g_list_next(children);
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
959 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
960
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
961 /* now, replace the old GtkTable with the new one */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
962 table_sw = g_object_get_data( G_OBJECT(bindings_win) , "tablesw" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
963 table_vp = gtk_bin_get_child( GTK_BIN(table_sw) ); /* get the viewport */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
964 gtk_widget_destroy( GTK_WIDGET(oldtable) ); /* destroy old GtkTable */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
965 gtk_container_add( GTK_CONTAINER(table_vp) , GTK_WIDGET(newtable) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
966 g_object_set_data( G_OBJECT(bindings_win) , "table" , newtable ); /* update table in bindings_win */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
967 gtk_widget_show_all( GTK_WIDGET(newtable) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
968 return;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
969 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
970
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
971
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
972 /* the three structure types defined below
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
973 are only used in cfg_bindbox_populate process */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
974 typedef struct
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
975 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
976 GtkWidget *combobox;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
977 gint action_code;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
978 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
979 combosas_helper_t;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
980
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
981 typedef struct
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
982 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
983 gint action_code;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
984 ed_inputevent_t * inputev;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
985 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
986 popul_binding_t;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
987
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
988 typedef struct
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
989 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
990 gint id;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
991 popul_binding_t *bindings;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
992 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
993 popul_container_binding_t;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
994
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
995 static gboolean
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
996 cfg_bindbox_populate_foreach_combosas ( GtkTreeModel * model ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
997 GtkTreePath * path ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
998 GtkTreeIter * iter ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
999 gpointer combosas_helper_gp )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1000 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1001 gint action_code = 0;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1002 combosas_helper_t *combosas_helper = combosas_helper_gp;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1003 gtk_tree_model_get( model , iter , 1 , &action_code , -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1004 if ( action_code == combosas_helper->action_code )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1005 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1006 gtk_combo_box_set_active_iter( GTK_COMBO_BOX(combosas_helper->combobox) , iter );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1007 return TRUE;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1008 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1009 return FALSE;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1010 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1011
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1012 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1013 cfg_bindbox_populate_foreach ( ed_inputevent_t * sinputev ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1014 gint action_code ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1015 gpointer popul_container_gp ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1016 gpointer none )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1017 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1018 ed_inputevent_t *inputev;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1019 popul_container_binding_t *popul_container = popul_container_gp;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1020
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1021 /* make a copy of the ed_inputevent_t object "sinputev" */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1022 inputev = g_malloc(sizeof(ed_inputevent_t));
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1023 inputev->type = sinputev->type;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1024 inputev->code = sinputev->code;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1025 inputev->value = sinputev->value;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1026
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1027 popul_container->bindings[popul_container->id].inputev = inputev;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1028 popul_container->bindings[popul_container->id].action_code = action_code;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1029
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1030 popul_container->id++;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1031 return;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1032 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1033
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1034 static int
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1035 cfg_bindbox_populate_qsortfunc( const void * p_binding_a , const void * p_binding_b )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1036 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1037 return ((popul_binding_t*)p_binding_a)->action_code - ((popul_binding_t*)p_binding_b)->action_code;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1038 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1039
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1040 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1041 cfg_bindbox_populate( GtkWidget * bind_table , GtkWidget * bindings_win , gpointer bindings )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1042 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1043 if ( bindings != NULL )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1044 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1045 guint bindings_num = ed_bindings_store_size( bindings );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1046 popul_binding_t *popul_binding = (popul_binding_t*)calloc( bindings_num , sizeof(popul_binding_t) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1047 popul_container_binding_t *popul_container = g_malloc(sizeof(popul_container_binding_t));
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1048 gint i = 0;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1049
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1050 popul_container->bindings = popul_binding;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1051 popul_container->id = 0;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1052
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1053 ed_bindings_store_foreach( bindings ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1054 (ed_bindings_store_foreach_func)cfg_bindbox_populate_foreach , popul_container , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1055
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1056 /* ok, now we have a popul_binding array, reorder it using action_codes */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1057 qsort( popul_binding , bindings_num , sizeof(popul_binding_t) , cfg_bindbox_populate_qsortfunc );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1058
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1059 /* attach to table each popul_binding */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1060 for ( i = 0 ; i < bindings_num ; i++ )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1061 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1062 GList *children = GTK_TABLE(bind_table)->children;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1063 for ( children ; children != NULL ; children = g_list_next(children) )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1064 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1065 GtkTableChild *child = children->data;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1066 if ( ( (child->top_attach + 1) == GTK_TABLE(bind_table)->nrows ) &&
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1067 ( child->left_attach == BINDLIST_COL_BT_ASSIGN ) &&
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1068 ( GPOINTER_TO_INT(g_object_get_data(G_OBJECT(child->widget),"last")) == 1 ) )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1069 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1070 /* ok, this child->widget is the last assign button */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1071 GtkWidget *combobox = g_object_get_data(G_OBJECT(child->widget),"combobox");
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1072 GtkWidget *label = g_object_get_data(G_OBJECT(child->widget),"label");
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1073 GtkWidget *delbt = g_object_get_data(G_OBJECT(child->widget),"delbt");
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1074 GtkTreeModel *combomodel;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1075 GtkTreeIter comboiter;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1076 combosas_helper_t *combosas_helper;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1077 gchar *input_str;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1078
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1079 combomodel = gtk_combo_box_get_model( GTK_COMBO_BOX(combobox) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1080 combosas_helper = g_malloc(sizeof(combosas_helper_t));
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1081 combosas_helper->combobox = combobox;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1082 combosas_helper->action_code = popul_binding[i].action_code;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1083 gtk_tree_model_foreach( combomodel , cfg_bindbox_populate_foreach_combosas , combosas_helper );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1084 g_free( combosas_helper );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1085
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1086 g_object_set_data_full( G_OBJECT(label) , "inputevent" , popul_binding[i].inputev , g_free );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1087 input_str = g_strdup_printf( "%i:%i:%i" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1088 popul_binding[i].inputev->type ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1089 popul_binding[i].inputev->code ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1090 popul_binding[i].inputev->value );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1091 gtk_label_set_text( GTK_LABEL(label) , input_str );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1092 g_free( input_str );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1093
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1094 /* so, the current row wont' be the last one anymore;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1095 remove its "last" mark and enable its delete button */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1096 g_object_set_data( G_OBJECT(child->widget) , "last" , GINT_TO_POINTER(0) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1097 gtk_widget_set_sensitive( delbt , TRUE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1098 cfg_bindbox_new_empty_row( GTK_TABLE(bind_table) , bindings_win , TRUE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1099
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1100 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1101 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1102 DEBUGMSG( "populating bindings window: code %i -> event %d:%d:%d\n" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1103 popul_binding[i].action_code , popul_binding[i].inputev->type,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1104 popul_binding[i].inputev->code, popul_binding[i].inputev->value );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1105 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1106 g_free( popul_binding );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1107 g_free( popul_container );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1108 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1109 return;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1110 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1111
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1112
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1113 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1114 cfg_bindbox_new_empty_row( GtkTable * bind_table , GtkWidget * bindings_win , gboolean resize_table )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1115 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1116 GtkWidget *action_combobox;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1117 GtkCellRenderer *action_combobox_rndr;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1118 GtkWidget *assign_button;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1119 GtkWidget *assign_label;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1120 GtkWidget *delete_button;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1121
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1122 /* add one row to the table */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1123 if ( resize_table == TRUE )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1124 gtk_table_resize( bind_table , bind_table->nrows + 1 , bind_table->ncols );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1125
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1126 /* action combobox */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1127 action_combobox = gtk_combo_box_new_with_model(
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1128 GTK_TREE_MODEL(g_object_get_data(G_OBJECT(bindings_win),"action_store")) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1129 action_combobox_rndr = gtk_cell_renderer_text_new();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1130 gtk_cell_layout_pack_start( GTK_CELL_LAYOUT(action_combobox) , action_combobox_rndr , TRUE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1131 gtk_cell_layout_set_attributes( GTK_CELL_LAYOUT(action_combobox) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1132 action_combobox_rndr , "text" , 0 , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1133 gtk_combo_box_set_active( GTK_COMBO_BOX(action_combobox) , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1134
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1135 gtk_table_attach( bind_table , action_combobox ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1136 BINDLIST_COL_COMBO_ACTION , BINDLIST_COL_COMBO_ACTION + 1 ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1137 bind_table->nrows - 1 , bind_table->nrows ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1138 GTK_FILL , GTK_FILL , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1139
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1140 /* assign button */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1141 assign_button = gtk_button_new();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1142 gtk_button_set_image( GTK_BUTTON(assign_button) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1143 gtk_image_new_from_stock( GTK_STOCK_EXECUTE , GTK_ICON_SIZE_BUTTON ) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1144 g_object_set_data( G_OBJECT(assign_button) , "last" , GINT_TO_POINTER(1) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1145 g_signal_connect( G_OBJECT(assign_button) , "clicked" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1146 G_CALLBACK(cfg_bindbox_assign_binding) , bindings_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1147
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1148 gtk_table_attach( bind_table , assign_button ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1149 BINDLIST_COL_BT_ASSIGN , BINDLIST_COL_BT_ASSIGN + 1 ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1150 bind_table->nrows - 1 , bind_table->nrows ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1151 GTK_FILL , GTK_FILL , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1152
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1153 /* assigned-code label */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1154 assign_label = gtk_label_new( "" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1155 gtk_misc_set_alignment( GTK_MISC(assign_label) , 0 , 0.5 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1156 gtk_misc_set_padding( GTK_MISC(assign_label) , 10 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1157 g_object_set_data_full( G_OBJECT(assign_label) , "inputevent" , NULL , g_free );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1158
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1159 gtk_table_attach( bind_table , assign_label ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1160 BINDLIST_COL_LABEL_EVCODE , BINDLIST_COL_LABEL_EVCODE +1 ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1161 bind_table->nrows - 1 , bind_table->nrows ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1162 GTK_EXPAND | GTK_FILL , GTK_FILL , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1163
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1164 /* delete button */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1165 delete_button = gtk_button_new();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1166 gtk_button_set_image( GTK_BUTTON(delete_button) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1167 gtk_image_new_from_stock( GTK_STOCK_DELETE , GTK_ICON_SIZE_BUTTON ) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1168 g_signal_connect( G_OBJECT(delete_button) , "clicked" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1169 G_CALLBACK(cfg_bindbox_delete_row) , bindings_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1170 gtk_widget_set_sensitive( delete_button , FALSE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1171
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1172 gtk_table_attach( bind_table , delete_button ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1173 BINDLIST_COL_BT_DELETE , BINDLIST_COL_BT_DELETE + 1 ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1174 bind_table->nrows - 1 , bind_table->nrows ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1175 GTK_FILL , GTK_FILL , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1176
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1177 /* data for assign button */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1178 g_object_set_data( G_OBJECT(assign_button) , "combobox" , action_combobox );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1179 g_object_set_data( G_OBJECT(assign_button) , "label" , assign_label );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1180 g_object_set_data( G_OBJECT(assign_button) , "delbt" , delete_button );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1181
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1182 gtk_widget_show_all( GTK_WIDGET(bind_table) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1183 return;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1184 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1185
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1186
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1187 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1188 cfg_bindings_cb_destroy ( GtkObject * bindings_win , gpointer dev_gp )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1189 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1190 ed_device_t *dev = dev_gp;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1191 /* bindings window is going to be destroyed;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1192 deactivate device listening and free the ed_device_t object */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1193 g_source_remove( dev->iochan_sid );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1194 ed_device_delete( dev );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1195
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1196 /* the rowreference is no longer needed as well */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1197 gtk_tree_row_reference_free(
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1198 (GtkTreeRowReference*)g_object_get_data(G_OBJECT(bindings_win),"rowref") );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1199 return;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1200 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1201
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1202
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1203 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1204 cfg_bindings_cb_commit ( gpointer bindings_win )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1205 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1206 GtkTreeRowReference *rowref = g_object_get_data(G_OBJECT(bindings_win),"rowref");
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1207 if ( gtk_tree_row_reference_valid( rowref ) == TRUE )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1208 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1209 GtkTreeModel *model = gtk_tree_row_reference_get_model( rowref );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1210 GtkTreePath *path = gtk_tree_row_reference_get_path( rowref );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1211 GtkTreeIter iter;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1212 GtkTable *table;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1213 gpointer new_bindings = NULL, old_bindings = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1214
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1215 /****************************************************************************/
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1216 table = g_object_get_data( G_OBJECT(bindings_win) , "table" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1217 if ( table->nrows > 1 )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1218 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1219 /* bindings defined */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1220 GList *children = table->children;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1221 gint *array_actioncode;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1222 ed_inputevent_t **array_inputevent;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1223 gint i = 0;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1224
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1225 array_actioncode = calloc( table->nrows - 1 , sizeof(gint) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1226 array_inputevent = calloc( table->nrows - 1 , sizeof(ed_inputevent_t*) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1227
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1228 for ( children ; children != NULL ; children = g_list_next( children ) )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1229 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1230 /* pick information from relevant table cells and put them in arrays */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1231 GtkTableChild *child = children->data;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1232
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1233 if ( ( child->top_attach + 1 ) == table->nrows )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1234 continue; /* skip last empty row */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1235
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1236 if ( child->left_attach == BINDLIST_COL_COMBO_ACTION )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1237 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1238 GtkTreeModel *combomodel = gtk_combo_box_get_model( GTK_COMBO_BOX(child->widget) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1239 GtkTreeIter comboiter;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1240 gint actioncode = 0;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1241
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1242 gtk_combo_box_get_active_iter( GTK_COMBO_BOX(child->widget) , &comboiter );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1243 gtk_tree_model_get( combomodel , &comboiter , 1 , &actioncode , -1 ); /* pick the action code */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1244 array_actioncode[child->top_attach] = actioncode;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1245 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1246 else if ( child->left_attach == BINDLIST_COL_LABEL_EVCODE )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1247 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1248 ed_inputevent_t *inputevent = g_object_get_data( G_OBJECT(child->widget) , "inputevent" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1249 array_inputevent[child->top_attach] = inputevent;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1250 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1251 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1252
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1253 /* ok, now copy data from arrays to the bindings store */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1254 new_bindings = ed_bindings_store_new(); /* new bindings store object */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1255
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1256 for ( i = 0 ; i < ( table->nrows - 1 ) ; i++ )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1257 ed_bindings_store_insert( new_bindings , array_inputevent[i] , array_actioncode[i] );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1258
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1259 g_free( array_actioncode ); g_free( array_inputevent ); /* not needed anymore */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1260 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1261 else
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1262 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1263 /* no bindings defined */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1264 new_bindings = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1265 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1266 /****************************************************************************/
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1267
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1268 /* pick old bindings store and delete it */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1269 gtk_tree_model_get_iter( model , &iter , path );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1270 gtk_tree_model_get( model , &iter, DEVLIST_COL_BINDINGS , &old_bindings , -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1271 if ( old_bindings != NULL )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1272 ed_bindings_store_delete( old_bindings );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1273 /* replace it with new one */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1274 gtk_list_store_set( GTK_LIST_STORE(model) , &iter , DEVLIST_COL_BINDINGS , new_bindings , -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1275 /* everything done! */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1276 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1277 gtk_widget_destroy( GTK_WIDGET(bindings_win) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1278 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1279
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1280
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1281 #define action_store_add(x) { gtk_list_store_append(action_store,&iter); gtk_list_store_set(action_store,&iter,0,player_actions[x].desc,1,x,-1); }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1282
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1283 static void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1284 cfg_ui_bindings_show ( ed_device_t * dev , GtkTreeRowReference * rowref )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1285 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1286 GtkWidget *bindings_win;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1287 GdkGeometry bindings_win_hints;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1288 GtkWidget *bindings_vbox;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1289 GtkWidget *bindings_info_table, *bindings_info_frame;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1290 GtkWidget *bindings_info_label_name_p, *bindings_info_label_name_c;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1291 GtkWidget *bindings_info_label_file_p, *bindings_info_label_file_c;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1292 GtkWidget *bindings_info_label_phys_p, *bindings_info_label_phys_c;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1293 GtkWidget *bindings_bind_frame, *bindings_bind_table, *bindings_bind_table_sw;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1294 GtkWidget *bindings_bbar_hbbox, *bindings_bbar_bt_cancel, *bindings_bbar_bt_ok;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1295 GtkListStore *action_store;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1296 GtkTreeIter iter;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1297 static gboolean style_added = FALSE;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1298
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1299 if ( !style_added )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1300 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1301 /* this is used by trigger dialogs, calling it once is enough */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1302 gtk_rc_parse_string( "style \"noaaborder\" { GtkDialog::action-area-border = 0 }\n"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1303 "widget \"trigger_dlg\" style \"noaaborder\"\n" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1304 style_added = TRUE;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1305 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1306
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1307 bindings_win = gtk_window_new( GTK_WINDOW_TOPLEVEL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1308 gtk_window_set_type_hint( GTK_WINDOW(bindings_win), GDK_WINDOW_TYPE_HINT_DIALOG );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1309 gtk_window_set_position( GTK_WINDOW(bindings_win), GTK_WIN_POS_CENTER );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1310 gtk_window_set_transient_for( GTK_WINDOW(bindings_win), GTK_WINDOW(cfg_win) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1311 gtk_window_set_modal( GTK_WINDOW(bindings_win) , TRUE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1312 gtk_window_set_title( GTK_WINDOW(bindings_win), _("EvDev-Plug - Bindings Configuration") );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1313 gtk_container_set_border_width( GTK_CONTAINER(bindings_win), 10 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1314 bindings_win_hints.min_width = 400;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1315 bindings_win_hints.min_height = 400;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1316 gtk_window_set_geometry_hints( GTK_WINDOW(bindings_win) , GTK_WIDGET(bindings_win) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1317 &bindings_win_hints , GDK_HINT_MIN_SIZE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1318
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1319 g_object_set_data( G_OBJECT(bindings_win) , "rowref" , rowref );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1320 g_object_set_data( G_OBJECT(bindings_win) , "trigger-win" , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1321
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1322 bindings_vbox = gtk_vbox_new( FALSE , 4 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1323 gtk_container_add( GTK_CONTAINER(bindings_win) , bindings_vbox );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1324
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1325 /* action combobox model
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1326 column 0 -> action desc
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1327 column 1 -> action code */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1328 action_store = gtk_list_store_new( 2 , G_TYPE_STRING , G_TYPE_INT );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1329 action_store_add( ED_ACTION_PB_PLAY );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1330 action_store_add( ED_ACTION_PB_STOP );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1331 action_store_add( ED_ACTION_PB_PAUSE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1332 action_store_add( ED_ACTION_PB_PREV );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1333 action_store_add( ED_ACTION_PB_NEXT );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1334 action_store_add( ED_ACTION_PB_EJECT );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1335 action_store_add( ED_ACTION_PL_REPEAT );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1336 action_store_add( ED_ACTION_PL_SHUFFLE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1337 action_store_add( ED_ACTION_VOL_UP5 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1338 action_store_add( ED_ACTION_VOL_DOWN5 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1339 action_store_add( ED_ACTION_VOL_UP10 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1340 action_store_add( ED_ACTION_VOL_DOWN10 );
457
f5ed9a6ad3f1 [svn] - evdev-plug: added volume->mute and win->jumptofile actions
giacomo
parents: 422
diff changeset
1341 action_store_add( ED_ACTION_VOL_MUTE );
422
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1342 action_store_add( ED_ACTION_WIN_MAIN );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1343 action_store_add( ED_ACTION_WIN_PLAYLIST );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1344 action_store_add( ED_ACTION_WIN_EQUALIZER );
457
f5ed9a6ad3f1 [svn] - evdev-plug: added volume->mute and win->jumptofile actions
giacomo
parents: 422
diff changeset
1345 action_store_add( ED_ACTION_WIN_JTF );
422
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1346 g_object_set_data_full( G_OBJECT(bindings_win) , "action_store" , action_store , g_object_unref );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1347
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1348 /* info table */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1349 bindings_info_table = gtk_table_new( 3 , 2 , FALSE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1350 gtk_container_set_border_width( GTK_CONTAINER(bindings_info_table), 4 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1351 bindings_info_label_name_p = gtk_label_new( "" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1352 gtk_label_set_markup( GTK_LABEL(bindings_info_label_name_p) , _("<b>Name: </b>") );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1353 gtk_misc_set_alignment( GTK_MISC(bindings_info_label_name_p) , 0 , 0.5 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1354 bindings_info_label_name_c = gtk_label_new( dev->info->name );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1355 gtk_misc_set_alignment( GTK_MISC(bindings_info_label_name_c) , 0 , 0.5 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1356 gtk_table_attach( GTK_TABLE(bindings_info_table) , bindings_info_label_name_p , 0 , 1 , 0 , 1 ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1357 GTK_FILL , GTK_FILL | GTK_EXPAND , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1358 gtk_table_attach( GTK_TABLE(bindings_info_table) , bindings_info_label_name_c , 1 , 2 , 0 , 1 ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1359 GTK_FILL , GTK_FILL | GTK_EXPAND , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1360 bindings_info_label_file_p = gtk_label_new( "" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1361 gtk_label_set_markup( GTK_LABEL(bindings_info_label_file_p) , _("<b>Filename: </b>") );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1362 gtk_misc_set_alignment( GTK_MISC(bindings_info_label_file_p) , 0 , 0.5 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1363 bindings_info_label_file_c = gtk_label_new( dev->info->filename );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1364 gtk_misc_set_alignment( GTK_MISC(bindings_info_label_file_c) , 0 , 0.5 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1365 gtk_table_attach( GTK_TABLE(bindings_info_table) , bindings_info_label_file_p , 0 , 1 , 1 , 2 ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1366 GTK_FILL , GTK_FILL | GTK_EXPAND , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1367 gtk_table_attach( GTK_TABLE(bindings_info_table) , bindings_info_label_file_c , 1 , 2 , 1 , 2 ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1368 GTK_FILL , GTK_FILL | GTK_EXPAND , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1369 bindings_info_label_phys_p = gtk_label_new( "" );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1370 gtk_label_set_markup( GTK_LABEL(bindings_info_label_phys_p) , _("<b>Phys.Address: </b>") );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1371 gtk_misc_set_alignment( GTK_MISC(bindings_info_label_phys_p) , 0 , 0.5 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1372 bindings_info_label_phys_c = gtk_label_new( dev->info->phys );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1373 gtk_misc_set_alignment( GTK_MISC(bindings_info_label_phys_c) , 0 , 0.5 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1374 gtk_table_attach( GTK_TABLE(bindings_info_table) , bindings_info_label_phys_p , 0 , 1 , 2 , 3 ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1375 GTK_FILL , GTK_FILL | GTK_EXPAND , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1376 gtk_table_attach( GTK_TABLE(bindings_info_table) , bindings_info_label_phys_c , 1 , 2 , 2 , 3 ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1377 GTK_FILL , GTK_FILL | GTK_EXPAND , 0 , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1378 bindings_info_frame = gtk_frame_new( NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1379 gtk_container_add( GTK_CONTAINER(bindings_info_frame) , bindings_info_table );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1380 gtk_box_pack_start( GTK_BOX(bindings_vbox) , bindings_info_frame , FALSE , FALSE , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1381
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1382 /* bindings boxlist */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1383 bindings_bind_table = gtk_table_new( 1 , BINDLIST_NUMCOLS , FALSE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1384 cfg_bindbox_new_empty_row( GTK_TABLE(bindings_bind_table) , bindings_win , FALSE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1385 cfg_bindbox_populate( bindings_bind_table , bindings_win , dev->info->bindings );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1386 bindings_bind_table_sw = gtk_scrolled_window_new( NULL , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1387 gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(bindings_bind_table_sw) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1388 GTK_POLICY_NEVER , GTK_POLICY_ALWAYS );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1389 bindings_bind_frame = gtk_frame_new( NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1390 gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW(bindings_bind_table_sw) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1391 bindings_bind_table );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1392 gtk_container_add( GTK_CONTAINER(bindings_bind_frame) , bindings_bind_table_sw );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1393 gtk_box_pack_start( GTK_BOX(bindings_vbox) , bindings_bind_frame , TRUE , TRUE , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1394 g_object_set_data( G_OBJECT(bindings_win) , "table" , bindings_bind_table );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1395 g_object_set_data( G_OBJECT(bindings_win) , "tablesw" , bindings_bind_table_sw );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1396
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1397 gtk_box_pack_start( GTK_BOX(bindings_vbox) , gtk_hseparator_new() , FALSE , FALSE , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1398
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1399 /* button bar */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1400 bindings_bbar_hbbox = gtk_hbutton_box_new();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1401 gtk_button_box_set_layout( GTK_BUTTON_BOX(bindings_bbar_hbbox) , GTK_BUTTONBOX_START );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1402 bindings_bbar_bt_cancel = gtk_button_new_from_stock( GTK_STOCK_CANCEL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1403 bindings_bbar_bt_ok = gtk_button_new_from_stock( GTK_STOCK_OK );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1404 gtk_container_add( GTK_CONTAINER(bindings_bbar_hbbox) , bindings_bbar_bt_cancel );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1405 gtk_container_add( GTK_CONTAINER(bindings_bbar_hbbox) , bindings_bbar_bt_ok );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1406 gtk_button_box_set_child_secondary( GTK_BUTTON_BOX(bindings_bbar_hbbox) , bindings_bbar_bt_cancel , TRUE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1407 gtk_button_box_set_child_secondary( GTK_BUTTON_BOX(bindings_bbar_hbbox) , bindings_bbar_bt_ok , TRUE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1408 gtk_box_pack_start( GTK_BOX(bindings_vbox) , bindings_bbar_hbbox , FALSE , FALSE , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1409
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1410 /* activate device listening */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1411 dev->iochan_sid = g_io_add_watch( dev->iochan , G_IO_IN ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1412 (GIOFunc)cfg_bindbox_assign_binding_input_func , bindings_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1413
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1414 /* signals */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1415 g_signal_connect( G_OBJECT(bindings_win) , "destroy" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1416 G_CALLBACK(cfg_bindings_cb_destroy) , dev );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1417 g_signal_connect_swapped( G_OBJECT(bindings_bbar_bt_cancel) , "clicked" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1418 G_CALLBACK(gtk_widget_destroy) , bindings_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1419 g_signal_connect_swapped( G_OBJECT(bindings_bbar_bt_ok) , "clicked" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1420 G_CALLBACK(cfg_bindings_cb_commit) , bindings_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1421
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1422 gtk_widget_show_all( bindings_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1423 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1424
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1425
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1426
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1427 /* about box */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1428 void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1429 ed_ui_about_show( void )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1430 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1431 static GtkWidget *about_win = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1432 GtkWidget *about_vbox;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1433 GtkWidget *logoandinfo_vbox;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1434 GtkWidget *info_tv, *info_tv_sw, *info_tv_frame;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1435 GtkWidget *bbar_bbox, *bbar_bt_ok;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1436 GtkTextBuffer *info_tb;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1437 GdkGeometry abount_win_hints;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1438
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1439 if ( about_win != NULL )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1440 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1441 gtk_window_present( GTK_WINDOW(about_win) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1442 return;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1443 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1444
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1445 about_win = gtk_window_new( GTK_WINDOW_TOPLEVEL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1446 gtk_window_set_type_hint( GTK_WINDOW(about_win), GDK_WINDOW_TYPE_HINT_DIALOG );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1447 gtk_window_set_position( GTK_WINDOW(about_win), GTK_WIN_POS_CENTER );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1448 gtk_window_set_title( GTK_WINDOW(about_win), _("EvDev-Plug - about") );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1449 abount_win_hints.min_width = 420;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1450 abount_win_hints.min_height = 200;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1451 gtk_window_set_geometry_hints( GTK_WINDOW(about_win) , GTK_WIDGET(about_win) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1452 &abount_win_hints , GDK_HINT_MIN_SIZE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1453 /* gtk_window_set_resizable( GTK_WINDOW(about_win) , FALSE ); */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1454 gtk_container_set_border_width( GTK_CONTAINER(about_win) , 10 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1455 g_signal_connect( G_OBJECT(about_win) , "destroy" , G_CALLBACK(gtk_widget_destroyed) , &about_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1456
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1457 about_vbox = gtk_vbox_new( FALSE , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1458 gtk_container_add( GTK_CONTAINER(about_win) , about_vbox );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1459
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1460 logoandinfo_vbox = gtk_vbox_new( TRUE , 2 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1461
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1462 /* TODO make a logo or make someone do it! :)
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1463 logo_pixbuf = gdk_pixbuf_new_from_xpm_data( (const gchar **)evdev_plug_logo_xpm );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1464 logo_image = gtk_image_new_from_pixbuf( logo_pixbuf );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1465 g_object_unref( logo_pixbuf );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1466
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1467 logo_frame = gtk_frame_new( NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1468 gtk_container_add( GTK_CONTAINER(logo_frame) , logo_image );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1469 gtk_box_pack_start( GTK_BOX(logoandinfo_vbox) , logo_frame , TRUE , TRUE , 0 ); */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1470
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1471 info_tv = gtk_text_view_new();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1472 info_tb = gtk_text_view_get_buffer( GTK_TEXT_VIEW(info_tv) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1473 gtk_text_view_set_editable( GTK_TEXT_VIEW(info_tv) , FALSE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1474 gtk_text_view_set_cursor_visible( GTK_TEXT_VIEW(info_tv) , FALSE );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1475 gtk_text_view_set_justification( GTK_TEXT_VIEW(info_tv) , GTK_JUSTIFY_LEFT );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1476 gtk_text_view_set_left_margin( GTK_TEXT_VIEW(info_tv) , 10 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1477
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1478 gtk_text_buffer_set_text( info_tb ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1479 _("\nEvDev-Plug " ED_VERSION_PLUGIN
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1480 "\nplayer remote control via event devices\n"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1481 "http://www.develia.org/projects.php?p=evdevplug\n\n"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1482 "written by Giacomo Lozito\n"
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1483 "< james@develia.org >\n\n") , -1 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1484
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1485 info_tv_sw = gtk_scrolled_window_new( NULL , NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1486 gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(info_tv_sw) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1487 GTK_POLICY_NEVER , GTK_POLICY_ALWAYS );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1488 gtk_container_add( GTK_CONTAINER(info_tv_sw) , info_tv );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1489 info_tv_frame = gtk_frame_new( NULL );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1490 gtk_container_add( GTK_CONTAINER(info_tv_frame) , info_tv_sw );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1491 gtk_box_pack_start( GTK_BOX(logoandinfo_vbox) , info_tv_frame , TRUE , TRUE , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1492
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1493 gtk_box_pack_start( GTK_BOX(about_vbox) , logoandinfo_vbox , TRUE , TRUE , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1494
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1495 /* horizontal separator and buttons */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1496 gtk_box_pack_start( GTK_BOX(about_vbox) , gtk_hseparator_new() , FALSE , FALSE , 4 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1497 bbar_bbox = gtk_hbutton_box_new();
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1498 gtk_button_box_set_layout( GTK_BUTTON_BOX(bbar_bbox) , GTK_BUTTONBOX_END );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1499 bbar_bt_ok = gtk_button_new_from_stock( GTK_STOCK_OK );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1500 g_signal_connect_swapped( G_OBJECT(bbar_bt_ok) , "clicked" ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1501 G_CALLBACK(gtk_widget_destroy) , about_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1502 gtk_container_add( GTK_CONTAINER(bbar_bbox) , bbar_bt_ok );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1503 gtk_box_pack_start( GTK_BOX(about_vbox) , bbar_bbox , FALSE , FALSE , 0 );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1504
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1505 gtk_widget_show_all( about_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1506 }
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1507
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1508
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1509
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1510 /* message box */
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1511 void
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1512 ed_ui_message_show ( gchar * title , gchar * message , gpointer parent_win_gp )
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1513 {
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1514 GtkWidget *message_win;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1515 GtkWindow *parent_win = NULL;
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1516
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1517 if (( parent_win_gp != NULL ) && ( GTK_WIDGET_TOPLEVEL(GTK_WIDGET(parent_win_gp)) ))
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1518 parent_win = GTK_WINDOW(parent_win_gp);
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1519
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1520 message_win = gtk_message_dialog_new(
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1521 parent_win ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1522 ( parent_win != NULL ? GTK_DIALOG_DESTROY_WITH_PARENT : 0 ) ,
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1523 GTK_MESSAGE_INFO , GTK_BUTTONS_CLOSE , message );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1524 gtk_window_set_title( GTK_WINDOW(message_win) , title );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1525
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1526 gtk_dialog_run( GTK_DIALOG(message_win) );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1527 gtk_widget_destroy( message_win );
5e46b57d1eda [svn] - added evdev-plug, written-from-scratch plugin that allows to control the player via event devices on linux systems
giacomo
parents:
diff changeset
1528 }