Merge lp:~cjcurran/indicator-sound/playlist-changed-signal into lp:~indicator-applet-developers/indicator-sound/trunk_3
- playlist-changed-signal
- Merge into trunk_3
Proposed by
Conor Curran
Status: | Merged | ||||||||
---|---|---|---|---|---|---|---|---|---|
Merged at revision: | 126 | ||||||||
Proposed branch: | lp:~cjcurran/indicator-sound/playlist-changed-signal | ||||||||
Merge into: | lp:~indicator-applet-developers/indicator-sound/trunk_3 | ||||||||
Diff against target: |
307 lines (+65/-30) 7 files modified
src/common-defs.h (+2/-0) src/mpris2-controller.vala (+19/-10) src/mpris2-interfaces.vala (+3/-0) src/player-item.vala (+8/-8) src/playlists-menu-item.vala (+26/-9) src/transport-menu-item.vala (+3/-3) vapi/common-defs.vapi (+4/-0) |
||||||||
To merge this branch: | bzr merge lp:~cjcurran/indicator-sound/playlist-changed-signal | ||||||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Neil J. Patel (community) | Approve | ||
Review via email:
|
Commit message
Description of the change
Fixes both bugs attached
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'src/common-defs.h' | |||
2 | --- src/common-defs.h 2011-01-24 22:26:21 +0000 | |||
3 | +++ src/common-defs.h 2011-02-09 11:18:30 +0000 | |||
4 | @@ -64,4 +64,6 @@ | |||
5 | 64 | #define DBUSMENU_PLAYLISTS_MENUITEM_TITLE "x-canonical-sound-menu-player-playlists-title" | 64 | #define DBUSMENU_PLAYLISTS_MENUITEM_TITLE "x-canonical-sound-menu-player-playlists-title" |
6 | 65 | #define DBUSMENU_PLAYLISTS_MENUITEM_PLAYLISTS "x-canonical-sound-menu-player-playlists-playlists" | 65 | #define DBUSMENU_PLAYLISTS_MENUITEM_PLAYLISTS "x-canonical-sound-menu-player-playlists-playlists" |
7 | 66 | 66 | ||
8 | 67 | #define DBUSMENU_PLAYLIST_MENUITEM_PATH "x-canonical-sound-menu-player-playlist-path" | ||
9 | 68 | |||
10 | 67 | #endif | 69 | #endif |
11 | 68 | 70 | ||
12 | === modified file 'src/mpris2-controller.vala' | |||
13 | --- src/mpris2-controller.vala 2011-02-01 19:31:32 +0000 | |||
14 | +++ src/mpris2-controller.vala 2011-02-09 11:18:30 +0000 | |||
15 | @@ -48,6 +48,7 @@ | |||
16 | 48 | this.playlists = Bus.get_proxy_sync ( BusType.SESSION, | 48 | this.playlists = Bus.get_proxy_sync ( BusType.SESSION, |
17 | 49 | this.owner.dbus_name, | 49 | this.owner.dbus_name, |
18 | 50 | "/org/mpris/MediaPlayer2" ); | 50 | "/org/mpris/MediaPlayer2" ); |
19 | 51 | this.playlists.PlaylistChanged.connect (on_playlistdetails_changed); | ||
20 | 51 | } | 52 | } |
21 | 52 | this.properties_interface = Bus.get_proxy_sync ( BusType.SESSION, | 53 | this.properties_interface = Bus.get_proxy_sync ( BusType.SESSION, |
22 | 53 | "org.freedesktop.Properties.PropertiesChanged", | 54 | "org.freedesktop.Properties.PropertiesChanged", |
23 | @@ -63,7 +64,7 @@ | |||
24 | 63 | HashTable<string, Variant?> changed_properties, | 64 | HashTable<string, Variant?> changed_properties, |
25 | 64 | string[] invalid ) | 65 | string[] invalid ) |
26 | 65 | { | 66 | { |
28 | 66 | debug("properties-changed for interface %s and owner %s", interface_source, this.owner.dbus_name); | 67 | //debug("properties-changed for interface %s and owner %s", interface_source, this.owner.dbus_name); |
29 | 67 | if ( changed_properties == null || | 68 | if ( changed_properties == null || |
30 | 68 | interface_source.has_prefix ( MPRIS_PREFIX ) == false ){ | 69 | interface_source.has_prefix ( MPRIS_PREFIX ) == false ){ |
31 | 69 | warning("Property-changed hash is null or this is an interface that doesn't concerns us"); | 70 | warning("Property-changed hash is null or this is an interface that doesn't concerns us"); |
32 | @@ -91,7 +92,9 @@ | |||
33 | 91 | } | 92 | } |
34 | 92 | Variant? playlist_v = changed_properties.lookup("ActivePlaylist"); | 93 | Variant? playlist_v = changed_properties.lookup("ActivePlaylist"); |
35 | 93 | if ( playlist_v != null && this.owner.use_playlists == true ){ | 94 | if ( playlist_v != null && this.owner.use_playlists == true ){ |
37 | 94 | this.fetch_active_playlist(); | 95 | // Once again A GDBus race condition, the property_changed signal is sent |
38 | 96 | // before the value is set on the respective property. | ||
39 | 97 | Timeout.add (300, this.fetch_active_playlist); | ||
40 | 95 | } | 98 | } |
41 | 96 | Variant? playlist_count_v = changed_properties.lookup("PlaylistCount"); | 99 | Variant? playlist_count_v = changed_properties.lookup("PlaylistCount"); |
42 | 97 | if ( playlist_count_v != null && this.owner.use_playlists == true ){ | 100 | if ( playlist_count_v != null && this.owner.use_playlists == true ){ |
43 | @@ -109,9 +112,9 @@ | |||
44 | 109 | title.alter_label (this.mpris2_root.Identity); | 112 | title.alter_label (this.mpris2_root.Identity); |
45 | 110 | } | 113 | } |
46 | 111 | } | 114 | } |
48 | 112 | 115 | ||
49 | 113 | private bool ensure_correct_playback_status(){ | 116 | private bool ensure_correct_playback_status(){ |
51 | 114 | debug("TEST playback status = %s", this.player.PlaybackStatus); | 117 | //debug("TEST playback status = %s", this.player.PlaybackStatus); |
52 | 115 | TransportMenuitem.state p = (TransportMenuitem.state)this.determine_play_state(this.player.PlaybackStatus); | 118 | TransportMenuitem.state p = (TransportMenuitem.state)this.determine_play_state(this.player.PlaybackStatus); |
53 | 116 | (this.owner.custom_items[PlayerController.widget_order.TRANSPORT] as TransportMenuitem).change_play_state(p); | 119 | (this.owner.custom_items[PlayerController.widget_order.TRANSPORT] as TransportMenuitem).change_play_state(p); |
54 | 117 | return false; | 120 | return false; |
55 | @@ -173,7 +176,7 @@ | |||
56 | 173 | 176 | ||
57 | 174 | public void transport_update(TransportMenuitem.action command) | 177 | public void transport_update(TransportMenuitem.action command) |
58 | 175 | { | 178 | { |
60 | 176 | debug("transport_event input = %i", (int)command); | 179 | //debug("transport_event input = %i", (int)command); |
61 | 177 | if(command == TransportMenuitem.action.PLAY_PAUSE){ | 180 | if(command == TransportMenuitem.action.PLAY_PAUSE){ |
62 | 178 | this.player.PlayPause.begin(); | 181 | this.player.PlayPause.begin(); |
63 | 179 | } | 182 | } |
64 | @@ -185,7 +188,6 @@ | |||
65 | 185 | } | 188 | } |
66 | 186 | } | 189 | } |
67 | 187 | 190 | ||
68 | 188 | |||
69 | 189 | public bool connected() | 191 | public bool connected() |
70 | 190 | { | 192 | { |
71 | 191 | return (this.player != null && this.mpris2_root != null); | 193 | return (this.player != null && this.mpris2_root != null); |
72 | @@ -198,6 +200,12 @@ | |||
73 | 198 | } | 200 | } |
74 | 199 | } | 201 | } |
75 | 200 | 202 | ||
76 | 203 | private void on_playlistdetails_changed (PlaylistDetails details) | ||
77 | 204 | { | ||
78 | 205 | PlaylistsMenuitem playlists_item = this.owner.custom_items[PlayerController.widget_order.PLAYLISTS] as PlaylistsMenuitem; | ||
79 | 206 | playlists_item.update_individual_playlist (details); | ||
80 | 207 | } | ||
81 | 208 | |||
82 | 201 | public async void fetch_playlists() | 209 | public async void fetch_playlists() |
83 | 202 | { | 210 | { |
84 | 203 | PlaylistDetails[] current_playlists = null; | 211 | PlaylistDetails[] current_playlists = null; |
85 | @@ -214,7 +222,7 @@ | |||
86 | 214 | } | 222 | } |
87 | 215 | 223 | ||
88 | 216 | if( current_playlists != null ){ | 224 | if( current_playlists != null ){ |
90 | 217 | debug( "Size of the playlist array = %i", current_playlists.length ); | 225 | //debug( "Size of the playlist array = %i", current_playlists.length ); |
91 | 218 | PlaylistsMenuitem playlists_item = this.owner.custom_items[PlayerController.widget_order.PLAYLISTS] as PlaylistsMenuitem; | 226 | PlaylistsMenuitem playlists_item = this.owner.custom_items[PlayerController.widget_order.PLAYLISTS] as PlaylistsMenuitem; |
92 | 219 | playlists_item.update(current_playlists); | 227 | playlists_item.update(current_playlists); |
93 | 220 | } | 228 | } |
94 | @@ -224,13 +232,14 @@ | |||
95 | 224 | } | 232 | } |
96 | 225 | } | 233 | } |
97 | 226 | 234 | ||
99 | 227 | private void fetch_active_playlist() | 235 | private bool fetch_active_playlist() |
100 | 228 | { | 236 | { |
101 | 229 | if (this.playlists.ActivePlaylist.valid == false){ | 237 | if (this.playlists.ActivePlaylist.valid == false){ |
104 | 230 | debug("We don't have an active playlist"); | 238 | debug(" We don't have an active playlist"); |
105 | 231 | } | 239 | } |
106 | 232 | PlaylistsMenuitem playlists_item = this.owner.custom_items[PlayerController.widget_order.PLAYLISTS] as PlaylistsMenuitem; | 240 | PlaylistsMenuitem playlists_item = this.owner.custom_items[PlayerController.widget_order.PLAYLISTS] as PlaylistsMenuitem; |
107 | 233 | playlists_item.update_active_playlist ( this.playlists.ActivePlaylist.details ); | 241 | playlists_item.update_active_playlist ( this.playlists.ActivePlaylist.details ); |
108 | 242 | return false; | ||
109 | 234 | } | 243 | } |
110 | 235 | 244 | ||
111 | 236 | public void activate_playlist (ObjectPath path) | 245 | public void activate_playlist (ObjectPath path) |
112 | 237 | 246 | ||
113 | === modified file 'src/mpris2-interfaces.vala' | |||
114 | --- src/mpris2-interfaces.vala 2011-01-27 23:08:08 +0000 | |||
115 | +++ src/mpris2-interfaces.vala 2011-02-09 11:18:30 +0000 | |||
116 | @@ -72,4 +72,7 @@ | |||
117 | 72 | uint32 max_count, | 72 | uint32 max_count, |
118 | 73 | string order, | 73 | string order, |
119 | 74 | bool reverse_order ) throws IOError; | 74 | bool reverse_order ) throws IOError; |
120 | 75 | //signals | ||
121 | 76 | public signal void PlaylistChanged (PlaylistDetails details); | ||
122 | 77 | |||
123 | 75 | } | 78 | } |
124 | 76 | \ No newline at end of file | 79 | \ No newline at end of file |
125 | 77 | 80 | ||
126 | === modified file 'src/player-item.vala' | |||
127 | --- src/player-item.vala 2010-12-20 16:55:31 +0000 | |||
128 | +++ src/player-item.vala 2011-02-09 11:18:30 +0000 | |||
129 | @@ -52,19 +52,19 @@ | |||
130 | 52 | { | 52 | { |
131 | 53 | debug("PlayerItem::update()"); | 53 | debug("PlayerItem::update()"); |
132 | 54 | if(data == null){ | 54 | if(data == null){ |
134 | 55 | debug("PlayerItem::Update -> The hashtable was null - just leave it!"); | 55 | warning("PlayerItem::Update -> The hashtable was null - just leave it!"); |
135 | 56 | return; | 56 | return; |
136 | 57 | } | 57 | } |
137 | 58 | 58 | ||
138 | 59 | foreach(string property in attributes){ | 59 | foreach(string property in attributes){ |
139 | 60 | string[] input_keys = property.split("-"); | 60 | string[] input_keys = property.split("-"); |
140 | 61 | string search_key = input_keys[input_keys.length-1 : input_keys.length][0]; | 61 | string search_key = input_keys[input_keys.length-1 : input_keys.length][0]; |
142 | 62 | debug("search key = %s", search_key); | 62 | //debug("search key = %s", search_key); |
143 | 63 | Variant? v = data.lookup(search_key); | 63 | Variant? v = data.lookup(search_key); |
144 | 64 | 64 | ||
145 | 65 | if (v.is_of_type ( VariantType.STRING )){ | 65 | if (v.is_of_type ( VariantType.STRING )){ |
146 | 66 | string update = v.get_string().strip(); | 66 | string update = v.get_string().strip(); |
148 | 67 | debug("with value : %s", update); | 67 | //debug("with value : %s", update); |
149 | 68 | if(property.contains("mpris:artUrl")){ | 68 | if(property.contains("mpris:artUrl")){ |
150 | 69 | // We know its a metadata instance because thats the only | 69 | // We know its a metadata instance because thats the only |
151 | 70 | // object with the arturl prop | 70 | // object with the arturl prop |
152 | @@ -75,15 +75,15 @@ | |||
153 | 75 | this.property_set(property, update); | 75 | this.property_set(property, update); |
154 | 76 | } | 76 | } |
155 | 77 | else if (v.is_of_type (VariantType.INT32 )){ | 77 | else if (v.is_of_type (VariantType.INT32 )){ |
157 | 78 | debug("with value : %i", v.get_int32()); | 78 | //debug("with value : %i", v.get_int32()); |
158 | 79 | this.property_set_int(property, v.get_int32()); | 79 | this.property_set_int(property, v.get_int32()); |
159 | 80 | } | 80 | } |
160 | 81 | else if (v.is_of_type (VariantType.INT64 )){ | 81 | else if (v.is_of_type (VariantType.INT64 )){ |
162 | 82 | debug("with value : %i", (int)v.get_int64()); | 82 | //debug("with value : %i", (int)v.get_int64()); |
163 | 83 | this.property_set_int(property, (int)v.get_int64()); | 83 | this.property_set_int(property, (int)v.get_int64()); |
164 | 84 | } | 84 | } |
165 | 85 | else if(v.is_of_type ( VariantType.BOOLEAN )){ | 85 | else if(v.is_of_type ( VariantType.BOOLEAN )){ |
167 | 86 | debug("with value : %s", v.get_boolean().to_string()); | 86 | //debug("with value : %s", v.get_boolean().to_string()); |
168 | 87 | this.property_set_bool(property, v.get_boolean()); | 87 | this.property_set_bool(property, v.get_boolean()); |
169 | 88 | } | 88 | } |
170 | 89 | } | 89 | } |
171 | @@ -93,10 +93,10 @@ | |||
172 | 93 | public bool populated(HashSet<string> attrs) | 93 | public bool populated(HashSet<string> attrs) |
173 | 94 | { | 94 | { |
174 | 95 | foreach(string prop in attrs){ | 95 | foreach(string prop in attrs){ |
176 | 96 | debug("populated ? - prop: %s", prop); | 96 | //debug("populated ? - prop: %s", prop); |
177 | 97 | int value_int = property_get_int(prop); | 97 | int value_int = property_get_int(prop); |
178 | 98 | if(property_get_int(prop) != EMPTY){ | 98 | if(property_get_int(prop) != EMPTY){ |
180 | 99 | debug("populated - prop %s and value %i", prop, value_int); | 99 | //debug("populated - prop %s and value %i", prop, value_int); |
181 | 100 | return true; | 100 | return true; |
182 | 101 | } | 101 | } |
183 | 102 | } | 102 | } |
184 | 103 | 103 | ||
185 | === modified file 'src/playlists-menu-item.vala' | |||
186 | --- src/playlists-menu-item.vala 2011-02-01 01:33:46 +0000 | |||
187 | +++ src/playlists-menu-item.vala 2011-02-09 11:18:30 +0000 | |||
188 | @@ -19,18 +19,20 @@ | |||
189 | 19 | 19 | ||
190 | 20 | using Dbusmenu; | 20 | using Dbusmenu; |
191 | 21 | using DbusmenuPlaylists; | 21 | using DbusmenuPlaylists; |
192 | 22 | using DbusmenuPlaylist; | ||
193 | 22 | using Gee; | 23 | using Gee; |
194 | 23 | 24 | ||
195 | 24 | public class PlaylistsMenuitem : PlayerItem | 25 | public class PlaylistsMenuitem : PlayerItem |
196 | 25 | { | 26 | { |
198 | 26 | private HashMap<int, PlaylistDetails?> current_playlists; | 27 | private HashMap<int, Dbusmenu.Menuitem> current_playlists; |
199 | 27 | public Menuitem root_item; | 28 | public Menuitem root_item; |
200 | 29 | |||
201 | 28 | public PlaylistsMenuitem ( PlayerController parent ) | 30 | public PlaylistsMenuitem ( PlayerController parent ) |
202 | 29 | { | 31 | { |
203 | 30 | Object ( item_type: MENUITEM_TYPE, owner: parent ); | 32 | Object ( item_type: MENUITEM_TYPE, owner: parent ); |
204 | 31 | } | 33 | } |
205 | 32 | construct{ | 34 | construct{ |
207 | 33 | this.current_playlists = new HashMap<int, PlaylistDetails?>(); | 35 | this.current_playlists = new HashMap<int, Dbusmenu.Menuitem>(); |
208 | 34 | this.root_item = new Menuitem(); | 36 | this.root_item = new Menuitem(); |
209 | 35 | this.root_item.property_set ( MENUITEM_PROP_LABEL, "Choose Playlist" ); | 37 | this.root_item.property_set ( MENUITEM_PROP_LABEL, "Choose Playlist" ); |
210 | 36 | } | 38 | } |
211 | @@ -38,23 +40,38 @@ | |||
212 | 38 | public new void update (PlaylistDetails[] playlists) | 40 | public new void update (PlaylistDetails[] playlists) |
213 | 39 | { | 41 | { |
214 | 40 | foreach ( PlaylistDetails detail in playlists ){ | 42 | foreach ( PlaylistDetails detail in playlists ){ |
215 | 43 | |||
216 | 41 | if (this.already_observed(detail)) continue; | 44 | if (this.already_observed(detail)) continue; |
217 | 45 | |||
218 | 42 | Dbusmenu.Menuitem menuitem = new Menuitem(); | 46 | Dbusmenu.Menuitem menuitem = new Menuitem(); |
219 | 43 | menuitem.property_set (MENUITEM_PROP_LABEL, detail.name); | 47 | menuitem.property_set (MENUITEM_PROP_LABEL, detail.name); |
221 | 44 | menuitem.property_set (MENUITEM_PROP_ICON_NAME, "source-smart-playlist"); | 48 | menuitem.property_set (MENUITEM_PROP_ICON_NAME, detail.icon_path); |
222 | 49 | menuitem.property_set (MENUITEM_PATH, (string)detail.path); | ||
223 | 45 | menuitem.property_set_bool (MENUITEM_PROP_VISIBLE, true); | 50 | menuitem.property_set_bool (MENUITEM_PROP_VISIBLE, true); |
224 | 46 | menuitem.property_set_bool (MENUITEM_PROP_ENABLED, true); | 51 | menuitem.property_set_bool (MENUITEM_PROP_ENABLED, true); |
226 | 47 | this.current_playlists.set( menuitem.id, detail ); | 52 | |
227 | 48 | menuitem.item_activated.connect(() => { | 53 | menuitem.item_activated.connect(() => { |
228 | 49 | submenu_item_activated (menuitem.id );}); | 54 | submenu_item_activated (menuitem.id );}); |
229 | 55 | this.current_playlists.set( menuitem.id, menuitem ); | ||
230 | 50 | this.root_item.child_append( menuitem ); | 56 | this.root_item.child_append( menuitem ); |
231 | 51 | } | 57 | } |
232 | 52 | } | 58 | } |
234 | 53 | 59 | ||
235 | 60 | public void update_individual_playlist (PlaylistDetails new_detail) | ||
236 | 61 | { | ||
237 | 62 | foreach ( Dbusmenu.Menuitem item in this.current_playlists.values ){ | ||
238 | 63 | if (new_detail.path == item.property_get (MENUITEM_PATH)){ | ||
239 | 64 | item.property_set (MENUITEM_PROP_LABEL, new_detail.name); | ||
240 | 65 | item.property_set (MENUITEM_PROP_ICON_NAME, new_detail.icon_path); | ||
241 | 66 | } | ||
242 | 67 | } | ||
243 | 68 | } | ||
244 | 69 | |||
245 | 54 | private bool already_observed (PlaylistDetails new_detail) | 70 | private bool already_observed (PlaylistDetails new_detail) |
246 | 55 | { | 71 | { |
249 | 56 | foreach ( PlaylistDetails detail in this.current_playlists.values ){ | 72 | foreach ( Dbusmenu.Menuitem item in this.current_playlists.values ){ |
250 | 57 | if (new_detail.path == detail.path) return true; | 73 | var path = item.property_get (MENUITEM_PATH); |
251 | 74 | if (new_detail.path == path) return true; | ||
252 | 58 | } | 75 | } |
253 | 59 | return false; | 76 | return false; |
254 | 60 | } | 77 | } |
255 | @@ -68,12 +85,12 @@ | |||
256 | 68 | 85 | ||
257 | 69 | private void submenu_item_activated (int menu_item_id) | 86 | private void submenu_item_activated (int menu_item_id) |
258 | 70 | { | 87 | { |
260 | 71 | if(!this.current_playlists.has_key(menu_item_id)){ | 88 | if (!this.current_playlists.has_key(menu_item_id)) { |
261 | 72 | warning( "item %i was activated but we don't have a corresponding playlist", | 89 | warning( "item %i was activated but we don't have a corresponding playlist", |
262 | 73 | menu_item_id ); | 90 | menu_item_id ); |
263 | 74 | return; | 91 | return; |
264 | 75 | } | 92 | } |
266 | 76 | this.owner.mpris_bridge.activate_playlist ( this.current_playlists[menu_item_id].path ); | 93 | this.owner.mpris_bridge.activate_playlist ( (GLib.ObjectPath)this.current_playlists[menu_item_id].property_get (MENUITEM_PATH) ); |
267 | 77 | } | 94 | } |
268 | 78 | 95 | ||
269 | 79 | public static HashSet<string> attributes_format() | 96 | public static HashSet<string> attributes_format() |
270 | 80 | 97 | ||
271 | === modified file 'src/transport-menu-item.vala' | |||
272 | --- src/transport-menu-item.vala 2011-01-25 20:55:25 +0000 | |||
273 | +++ src/transport-menu-item.vala 2011-02-09 11:18:30 +0000 | |||
274 | @@ -42,8 +42,8 @@ | |||
275 | 42 | 42 | ||
276 | 43 | public void change_play_state(state update) | 43 | public void change_play_state(state update) |
277 | 44 | { | 44 | { |
280 | 45 | debug("UPDATING THE TRANSPORT DBUSMENUITEM PLAY STATE WITH VALUE %i", | 45 | //debug("UPDATING THE TRANSPORT DBUSMENUITEM PLAY STATE WITH VALUE %i", |
281 | 46 | (int)update); | 46 | // (int)update); |
282 | 47 | int temp = (int)update; | 47 | int temp = (int)update; |
283 | 48 | this.property_set_int(MENUITEM_PLAY_STATE, temp); | 48 | this.property_set_int(MENUITEM_PLAY_STATE, temp); |
284 | 49 | } | 49 | } |
285 | @@ -60,7 +60,7 @@ | |||
286 | 60 | } | 60 | } |
287 | 61 | 61 | ||
288 | 62 | int32 input = v.get_int32(); | 62 | int32 input = v.get_int32(); |
290 | 63 | debug("transport menu item -> handle_event with value %s", input.to_string()); | 63 | //debug("transport menu item -> handle_event with value %s", input.to_string()); |
291 | 64 | //debug("transport owner name = %s", this.owner.app_info.get_name()); | 64 | //debug("transport owner name = %s", this.owner.app_info.get_name()); |
292 | 65 | this.owner.mpris_bridge.transport_update((action)input); | 65 | this.owner.mpris_bridge.transport_update((action)input); |
293 | 66 | } | 66 | } |
294 | 67 | 67 | ||
295 | === modified file 'vapi/common-defs.vapi' | |||
296 | --- vapi/common-defs.vapi 2010-12-09 11:36:33 +0000 | |||
297 | +++ vapi/common-defs.vapi 2011-02-09 11:18:30 +0000 | |||
298 | @@ -53,4 +53,8 @@ | |||
299 | 53 | public const string MENUITEM_TYPE; | 53 | public const string MENUITEM_TYPE; |
300 | 54 | public const string MENUITEM_TITLE; | 54 | public const string MENUITEM_TITLE; |
301 | 55 | public const string MENUITEM_PLAYLISTS; | 55 | public const string MENUITEM_PLAYLISTS; |
302 | 56 | } | ||
303 | 57 | [CCode (cheader_filename = "common-defs.h")] | ||
304 | 58 | namespace DbusmenuPlaylist{ | ||
305 | 59 | public const string MENUITEM_PATH; | ||
306 | 56 | } | 60 | } |
307 | 57 | \ No newline at end of file | 61 | \ No newline at end of file |
Worried about the timeout, but that's an issue bigger than this merge (something we need to figure out with GDBus), so approving.