aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKen VanDine <ken.vandine@canonical.com>2010-10-14 10:40:12 -0400
committerKen VanDine <ken.vandine@canonical.com>2010-10-14 10:40:12 -0400
commit7620afcd008217151fc02d6440df9741ed3d7e48 (patch)
tree529ffd73ebd0c0c50d857fa0f849218aeca1aa03 /src
parentaeb17c8f7825a68e367c50421f89695d41fcd5fb (diff)
parent8067376fb719ac5bf577a3e85d080eec765ec465 (diff)
downloadayatana-indicator-sound-7620afcd008217151fc02d6440df9741ed3d7e48.tar.gz
ayatana-indicator-sound-7620afcd008217151fc02d6440df9741ed3d7e48.tar.bz2
ayatana-indicator-sound-7620afcd008217151fc02d6440df9741ed3d7e48.zip
Import upstream version 0.4.9
Diffstat (limited to 'src')
-rw-r--r--src/mpris2-controller.c64
-rw-r--r--src/mpris2-controller.vala6
-rw-r--r--src/music-player-bridge.c63
-rw-r--r--src/music-player-bridge.h6
-rw-r--r--src/music-player-bridge.vala2
-rw-r--r--src/player-controller.c50
-rw-r--r--src/player-controller.vala3
7 files changed, 112 insertions, 82 deletions
diff --git a/src/mpris2-controller.c b/src/mpris2-controller.c
index ced6bdb..1ee4ebf 100644
--- a/src/mpris2-controller.c
+++ b/src/mpris2-controller.c
@@ -406,7 +406,7 @@ Mpris2Controller* mpris2_controller_new (PlayerController* ctrl);
Mpris2Controller* mpris2_controller_construct (GType object_type, PlayerController* ctrl);
void mpris2_controller_property_changed_cb (Mpris2Controller* self, const char* interface_source, GHashTable* changed_properties, char** invalid, int invalid_length1);
PlayerController* mpris2_controller_get_owner (Mpris2Controller* self);
-const char* player_controller_get_name (PlayerController* self);
+const char* player_controller_get_mpris_name (PlayerController* self);
static GValue* _g_value_dup (GValue* self);
MprisPlayer* mpris2_controller_get_player (Mpris2Controller* self);
GType transport_menuitem_state_get_type (void) G_GNUC_CONST;
@@ -4455,22 +4455,20 @@ static void _vala_GValue_free (GValue* self) {
void mpris2_controller_property_changed_cb (Mpris2Controller* self, const char* interface_source, GHashTable* changed_properties, char** invalid, int invalid_length1) {
- char* _tmp0_;
- gboolean _tmp1_ = FALSE;
+ gboolean _tmp0_ = FALSE;
GValue* play_v;
GValue* meta_v;
g_return_if_fail (self != NULL);
g_return_if_fail (interface_source != NULL);
g_return_if_fail (changed_properties != NULL);
g_debug ("mpris2-controller.vala:95: properties-changed for interface %s and own" \
-"er %s", interface_source, _tmp0_ = g_utf8_strdown (player_controller_get_name (self->priv->_owner), -1));
- _g_free0 (_tmp0_);
+"er %s", interface_source, player_controller_get_mpris_name (self->priv->_owner));
if (changed_properties == NULL) {
- _tmp1_ = TRUE;
+ _tmp0_ = TRUE;
} else {
- _tmp1_ = g_str_has_prefix (interface_source, MPRIS2_CONTROLLER_root_interface) == FALSE;
+ _tmp0_ = g_str_has_prefix (interface_source, MPRIS2_CONTROLLER_root_interface) == FALSE;
}
- if (_tmp1_) {
+ if (_tmp0_) {
g_warning ("mpris2-controller.vala:98: Property-changed hash is null or this is an" \
" interface that doesn't concerns us");
return;
@@ -4479,29 +4477,29 @@ void mpris2_controller_property_changed_cb (Mpris2Controller* self, const char*
if (play_v != NULL) {
char* state;
TransportMenuitemstate p;
- PlayerItem* _tmp2_;
- TransportMenuitem* _tmp3_;
+ PlayerItem* _tmp1_;
+ TransportMenuitem* _tmp2_;
state = mpris_player_get_PlaybackStatus (self->priv->_player);
p = (TransportMenuitemstate) mpris2_controller_determine_play_state (self, state);
- transport_menuitem_change_play_state (_tmp3_ = (_tmp2_ = (PlayerItem*) gee_abstract_list_get ((GeeAbstractList*) self->priv->_owner->custom_items, (gint) PLAYER_CONTROLLER_WIDGET_ORDER_TRANSPORT), IS_TRANSPORT_MENUITEM (_tmp2_) ? ((TransportMenuitem*) _tmp2_) : NULL), p);
- _g_object_unref0 (_tmp3_);
+ transport_menuitem_change_play_state (_tmp2_ = (_tmp1_ = (PlayerItem*) gee_abstract_list_get ((GeeAbstractList*) self->priv->_owner->custom_items, (gint) PLAYER_CONTROLLER_WIDGET_ORDER_TRANSPORT), IS_TRANSPORT_MENUITEM (_tmp1_) ? ((TransportMenuitem*) _tmp1_) : NULL), p);
+ _g_object_unref0 (_tmp2_);
_g_free0 (state);
}
meta_v = __g_value_dup0 ((GValue*) g_hash_table_lookup (changed_properties, "Metadata"));
if (meta_v != NULL) {
GHashTable* changed_updates;
PlayerItem* metadata;
+ GeeHashSet* _tmp3_;
GeeHashSet* _tmp4_;
GeeHashSet* _tmp5_;
- GeeHashSet* _tmp6_;
changed_updates = mpris2_controller_clean_metadata (self);
metadata = (PlayerItem*) gee_abstract_list_get ((GeeAbstractList*) self->priv->_owner->custom_items, (gint) PLAYER_CONTROLLER_WIDGET_ORDER_METADATA);
- player_item_reset (metadata, _tmp4_ = metadata_menuitem_attributes_format ());
+ player_item_reset (metadata, _tmp3_ = metadata_menuitem_attributes_format ());
+ _g_object_unref0 (_tmp3_);
+ player_item_update (metadata, changed_updates, _tmp4_ = metadata_menuitem_attributes_format ());
_g_object_unref0 (_tmp4_);
- player_item_update (metadata, changed_updates, _tmp5_ = metadata_menuitem_attributes_format ());
+ dbusmenu_menuitem_property_set_bool ((DbusmenuMenuitem*) metadata, DBUSMENU_MENUITEM_PROP_VISIBLE, player_item_populated (metadata, _tmp5_ = metadata_menuitem_attributes_format ()));
_g_object_unref0 (_tmp5_);
- dbusmenu_menuitem_property_set_bool ((DbusmenuMenuitem*) metadata, DBUSMENU_MENUITEM_PROP_VISIBLE, player_item_populated (metadata, _tmp6_ = metadata_menuitem_attributes_format ()));
- _g_object_unref0 (_tmp6_);
_g_object_unref0 (metadata);
_g_hash_table_unref0 (changed_updates);
}
@@ -4759,18 +4757,14 @@ static GObject * mpris2_controller_constructor (GType type, guint n_construct_pr
char* _tmp1_;
char* _tmp2_;
char* _tmp3_;
- char* _tmp4_;
+ MprisRoot* _tmp4_;
char* _tmp5_;
- MprisRoot* _tmp6_;
+ char* _tmp6_;
char* _tmp7_;
char* _tmp8_;
char* _tmp9_;
- char* _tmp10_;
- char* _tmp11_;
- char* _tmp12_;
- char* _tmp13_;
- MprisPlayer* _tmp14_;
- FreeDesktopProperties* _tmp15_;
+ MprisPlayer* _tmp10_;
+ FreeDesktopProperties* _tmp11_;
connection = dbus_g_bus_get (DBUS_BUS_SESSION, &_inner_error_);
if (_inner_error_ != NULL) {
if (_inner_error_->domain == DBUS_GERROR) {
@@ -4779,25 +4773,21 @@ static GObject * mpris2_controller_constructor (GType type, guint n_construct_pr
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
g_clear_error (&_inner_error_);
}
- mpris2_controller_set_mpris2_root (self, _tmp6_ = mpris_root_dbus_proxy_new (connection, _tmp5_ = g_strconcat (_tmp3_ = g_strconcat (MPRIS2_CONTROLLER_root_interface, ".", NULL), _tmp4_ = g_utf8_strdown (player_controller_get_name (self->priv->_owner), -1), NULL), "/org/mpris/MediaPlayer2"));
- _g_object_unref0 (_tmp6_);
- _g_free0 (_tmp5_);
- _g_free0 (_tmp4_);
+ mpris2_controller_set_mpris2_root (self, _tmp4_ = mpris_root_dbus_proxy_new (connection, _tmp3_ = g_strconcat (_tmp2_ = g_strconcat (MPRIS2_CONTROLLER_root_interface, ".", NULL), player_controller_get_mpris_name (self->priv->_owner), NULL), "/org/mpris/MediaPlayer2"));
+ _g_object_unref0 (_tmp4_);
_g_free0 (_tmp3_);
_g_free0 (_tmp2_);
_g_free0 (_tmp1_);
_g_free0 (_tmp0_);
- mpris2_controller_set_player (self, _tmp14_ = mpris_player_dbus_proxy_new (connection, _tmp13_ = g_strconcat (_tmp11_ = g_strconcat (MPRIS2_CONTROLLER_root_interface, ".", NULL), _tmp12_ = g_utf8_strdown (player_controller_get_name (self->priv->_owner), -1), NULL), "/org/mpris/MediaPlayer2"));
- _g_object_unref0 (_tmp14_);
- _g_free0 (_tmp13_);
- _g_free0 (_tmp12_);
- _g_free0 (_tmp11_);
- _g_free0 (_tmp10_);
+ mpris2_controller_set_player (self, _tmp10_ = mpris_player_dbus_proxy_new (connection, _tmp9_ = g_strconcat (_tmp8_ = g_strconcat (MPRIS2_CONTROLLER_root_interface, ".", NULL), player_controller_get_mpris_name (self->priv->_owner), NULL), "/org/mpris/MediaPlayer2"));
+ _g_object_unref0 (_tmp10_);
_g_free0 (_tmp9_);
_g_free0 (_tmp8_);
_g_free0 (_tmp7_);
- mpris2_controller_set_properties_interface (self, _tmp15_ = free_desktop_properties_dbus_proxy_new (connection, "org.freedesktop.Properties.PropertiesChanged", "/org/mpris/MediaPlayer2"));
- _g_object_unref0 (_tmp15_);
+ _g_free0 (_tmp6_);
+ _g_free0 (_tmp5_);
+ mpris2_controller_set_properties_interface (self, _tmp11_ = free_desktop_properties_dbus_proxy_new (connection, "org.freedesktop.Properties.PropertiesChanged", "/org/mpris/MediaPlayer2"));
+ _g_object_unref0 (_tmp11_);
g_signal_connect_object (self->priv->_properties_interface, "properties-changed", (GCallback) _mpris2_controller_property_changed_cb_free_desktop_properties_properties_changed, self, 0);
_dbus_g_connection_unref0 (connection);
}
diff --git a/src/mpris2-controller.vala b/src/mpris2-controller.vala
index 29dd4cf..f355d28 100644
--- a/src/mpris2-controller.vala
+++ b/src/mpris2-controller.vala
@@ -75,10 +75,10 @@ public class Mpris2Controller : GLib.Object
construct{
try {
var connection = DBus.Bus.get (DBus.BusType.SESSION);
- this.mpris2_root = (MprisRoot) connection.get_object (root_interface.concat(".").concat(this.owner.name.down()),
+ this.mpris2_root = (MprisRoot) connection.get_object (root_interface.concat(".").concat(this.owner.mpris_name),
"/org/mpris/MediaPlayer2",
root_interface);
- this.player = (MprisPlayer) connection.get_object (root_interface.concat(".").concat(this.owner.name.down()),
+ this.player = (MprisPlayer) connection.get_object (root_interface.concat(".").concat(this.owner.mpris_name),
"/org/mpris/MediaPlayer2",
root_interface.concat(".Player"));
this.properties_interface = (FreeDesktopProperties) connection.get_object("org.freedesktop.Properties.PropertiesChanged",
@@ -92,7 +92,7 @@ public class Mpris2Controller : GLib.Object
public void property_changed_cb(string interface_source, HashTable<string, Value?> changed_properties, string[] invalid )
{
- debug("properties-changed for interface %s and owner %s", interface_source, this.owner.name.down());
+ debug("properties-changed for interface %s and owner %s", interface_source, this.owner.mpris_name);
if(changed_properties == null || interface_source.has_prefix(this.root_interface) == false ){
warning("Property-changed hash is null or this is an interface that doesn't concerns us");
diff --git a/src/music-player-bridge.c b/src/music-player-bridge.c
index 3746bf6..dddaa1a 100644
--- a/src/music-player-bridge.c
+++ b/src/music-player-bridge.c
@@ -118,13 +118,13 @@ static void _music_player_bridge_on_server_removed_indicate_listener_server_remo
static void music_player_bridge_try_to_add_inactive_familiar_clients (MusicPlayerBridge* self);
GeeSet* familiar_players_db_records (FamiliarPlayersDB* self);
static char* music_player_bridge_truncate_player_name (char* app_info_name);
+static char* music_player_bridge_determine_key (char* path);
static gint music_player_bridge_calculate_menu_position (MusicPlayerBridge* self);
GType player_controller_state_get_type (void) G_GNUC_CONST;
-PlayerController* player_controller_new (DbusmenuMenuitem* root, const char* client_name, gint offset, PlayerControllerstate initial_state);
-PlayerController* player_controller_construct (GType object_type, DbusmenuMenuitem* root, const char* client_name, gint offset, PlayerControllerstate initial_state);
+PlayerController* player_controller_new (DbusmenuMenuitem* root, const char* client_name, const char* mpris_name, gint offset, PlayerControllerstate initial_state);
+PlayerController* player_controller_construct (GType object_type, DbusmenuMenuitem* root, const char* client_name, const char* mpris_name, gint offset, PlayerControllerstate initial_state);
void player_controller_set_app_info (PlayerController* self, GAppInfo* value);
GAppInfo* player_controller_get_app_info (PlayerController* self);
-static char* music_player_bridge_determine_key (char* path);
#define PLAYER_CONTROLLER_WIDGET_QUANTITY 4
static gboolean music_player_bridge_server_is_not_of_interest (MusicPlayerBridge* self, const char* type);
static void music_player_bridge_desktop_info_callback (MusicPlayerBridge* self, IndicateListenerServer* server, char* path, void* data);
@@ -190,9 +190,10 @@ static void music_player_bridge_try_to_add_inactive_familiar_clients (MusicPlaye
GDesktopAppInfo* _tmp2_;
GAppInfo* app_info;
char* _tmp3_;
- PlayerController* _tmp4_;
+ char* _tmp4_;
+ PlayerController* _tmp5_;
PlayerController* ctrl;
- char* _tmp5_;
+ char* _tmp6_;
if (!gee_iterator_next (_app_it)) {
break;
}
@@ -213,13 +214,13 @@ static void music_player_bridge_try_to_add_inactive_familiar_clients (MusicPlaye
continue;
}
app_info = _g_object_ref0 ((_tmp2_ = info, G_IS_APP_INFO (_tmp2_) ? ((GAppInfo*) _tmp2_) : NULL));
- ctrl = (_tmp4_ = player_controller_new (self->priv->root_menu, _tmp3_ = music_player_bridge_truncate_player_name (g_strdup (g_app_info_get_name (app_info))), music_player_bridge_calculate_menu_position (self), PLAYER_CONTROLLER_STATE_OFFLINE), _g_free0 (_tmp3_), _tmp4_);
+ ctrl = (_tmp5_ = player_controller_new (self->priv->root_menu, _tmp3_ = music_player_bridge_truncate_player_name (g_strdup (g_app_info_get_name (app_info))), _tmp4_ = music_player_bridge_determine_key (g_strdup (app)), music_player_bridge_calculate_menu_position (self), PLAYER_CONTROLLER_STATE_OFFLINE), _g_free0 (_tmp4_), _g_free0 (_tmp3_), _tmp5_);
player_controller_set_app_info (ctrl, app_info);
if (player_controller_get_app_info (ctrl) == NULL) {
- g_warning ("music-player-bridge.vala:65: for some reason the app info is null");
+ g_warning ("music-player-bridge.vala:66: for some reason the app info is null");
}
- gee_abstract_map_set ((GeeAbstractMap*) self->priv->registered_clients, _tmp5_ = music_player_bridge_determine_key (g_strdup (app)), ctrl);
- _g_free0 (_tmp5_);
+ gee_abstract_map_set ((GeeAbstractMap*) self->priv->registered_clients, _tmp6_ = music_player_bridge_determine_key (g_strdup (app)), ctrl);
+ _g_free0 (_tmp6_);
_g_object_unref0 (ctrl);
_g_object_unref0 (app_info);
_g_object_unref0 (info);
@@ -246,7 +247,7 @@ static gint music_player_bridge_calculate_menu_position (MusicPlayerBridge* self
void music_player_bridge_on_server_added (MusicPlayerBridge* self, IndicateListenerServer* object, const char* type) {
g_return_if_fail (self != NULL);
g_return_if_fail (type != NULL);
- g_debug ("music-player-bridge.vala:82: MusicPlayerBridge -> on_server_added with" \
+ g_debug ("music-player-bridge.vala:83: MusicPlayerBridge -> on_server_added with" \
" value %s", type);
if (music_player_bridge_server_is_not_of_interest (self, type)) {
return;
@@ -285,27 +286,29 @@ static void music_player_bridge_desktop_info_callback (MusicPlayerBridge* self,
_tmp1_ = FALSE;
}
if (_tmp1_) {
- PlayerController* ctrl;
char* _tmp2_;
- g_debug ("music-player-bridge.vala:98: About to store desktop file path: %s", path);
+ PlayerController* _tmp3_;
+ PlayerController* ctrl;
+ char* _tmp4_;
+ g_debug ("music-player-bridge.vala:99: About to store desktop file path: %s", path);
familiar_players_db_insert (bridge->priv->playersDB, path);
- ctrl = player_controller_new (bridge->priv->root_menu, name, music_player_bridge_calculate_menu_position (bridge), PLAYER_CONTROLLER_STATE_READY);
+ ctrl = (_tmp3_ = player_controller_new (bridge->priv->root_menu, name, _tmp2_ = music_player_bridge_determine_key (g_strdup (path)), music_player_bridge_calculate_menu_position (bridge), PLAYER_CONTROLLER_STATE_READY), _g_free0 (_tmp2_), _tmp3_);
g_object_set ((GObject*) ctrl, "app_info", app_info, NULL);
- gee_abstract_map_set ((GeeAbstractMap*) bridge->priv->registered_clients, _tmp2_ = music_player_bridge_determine_key (g_strdup (path)), ctrl);
- _g_free0 (_tmp2_);
- g_debug ("music-player-bridge.vala:106: successfully created appinfo and instanc" \
+ gee_abstract_map_set ((GeeAbstractMap*) bridge->priv->registered_clients, _tmp4_ = music_player_bridge_determine_key (g_strdup (path)), ctrl);
+ _g_free0 (_tmp4_);
+ g_debug ("music-player-bridge.vala:108: successfully created appinfo and instanc" \
"e from path and set it on the respective instance");
_g_object_unref0 (ctrl);
} else {
char* key;
- PlayerController* _tmp3_;
- PlayerController* _tmp4_;
+ PlayerController* _tmp5_;
+ PlayerController* _tmp6_;
key = music_player_bridge_determine_key (g_strdup (path));
- player_controller_update_state (_tmp3_ = (PlayerController*) gee_abstract_map_get ((GeeAbstractMap*) bridge->priv->registered_clients, key), PLAYER_CONTROLLER_STATE_READY);
- _g_object_unref0 (_tmp3_);
- player_controller_activate (_tmp4_ = (PlayerController*) gee_abstract_map_get ((GeeAbstractMap*) bridge->priv->registered_clients, key));
- _g_object_unref0 (_tmp4_);
- g_debug ("music-player-bridge.vala:112: Ignoring desktop file path callback beca" \
+ player_controller_update_state (_tmp5_ = (PlayerController*) gee_abstract_map_get ((GeeAbstractMap*) bridge->priv->registered_clients, key), PLAYER_CONTROLLER_STATE_READY);
+ _g_object_unref0 (_tmp5_);
+ player_controller_activate (_tmp6_ = (PlayerController*) gee_abstract_map_get ((GeeAbstractMap*) bridge->priv->registered_clients, key));
+ _g_object_unref0 (_tmp6_);
+ g_debug ("music-player-bridge.vala:114: Ignoring desktop file path callback beca" \
"use the db cache file has it already: %s", path);
_g_free0 (key);
}
@@ -319,7 +322,7 @@ static void music_player_bridge_desktop_info_callback (MusicPlayerBridge* self,
void music_player_bridge_on_server_removed (MusicPlayerBridge* self, IndicateListenerServer* object, const char* type) {
g_return_if_fail (self != NULL);
g_return_if_fail (type != NULL);
- g_debug ("music-player-bridge.vala:118: MusicPlayerBridge -> on_server_removed w" \
+ g_debug ("music-player-bridge.vala:120: MusicPlayerBridge -> on_server_removed w" \
"ith value %s", type);
if (music_player_bridge_server_is_not_of_interest (self, type)) {
return;
@@ -331,12 +334,12 @@ void music_player_bridge_on_server_removed (MusicPlayerBridge* self, IndicateLis
char** _tmp0_;
char** tmp;
tmp = (_tmp1_ = _tmp0_ = g_strsplit (type, ".", 0), tmp_length1 = _vala_array_length (_tmp0_), _tmp_size_ = tmp_length1, _tmp1_);
- g_debug ("music-player-bridge.vala:122: attempt to remove %s", tmp[tmp_length1 - 1]);
+ g_debug ("music-player-bridge.vala:124: attempt to remove %s", tmp[tmp_length1 - 1]);
if (tmp_length1 > 0) {
PlayerController* _tmp2_;
player_controller_hibernate (_tmp2_ = (PlayerController*) gee_abstract_map_get ((GeeAbstractMap*) self->priv->registered_clients, tmp[tmp_length1 - 1]));
_g_object_unref0 (_tmp2_);
- g_debug ("music-player-bridge.vala:125: Successively offlined client %s", tmp[tmp_length1 - 1]);
+ g_debug ("music-player-bridge.vala:127: Successively offlined client %s", tmp[tmp_length1 - 1]);
}
tmp = (_vala_array_free (tmp, tmp_length1, (GDestroyNotify) g_free), NULL);
}
@@ -352,7 +355,7 @@ static gboolean music_player_bridge_server_is_not_of_interest (MusicPlayerBridge
return result;
}
if (string_contains (type, "music") == FALSE) {
- g_debug ("music-player-bridge.vala:133: server is of no interest, it is not an " \
+ g_debug ("music-player-bridge.vala:135: server is of no interest, it is not an " \
"music server");
result = TRUE;
return result;
@@ -379,7 +382,7 @@ GAppInfo* music_player_bridge_create_app_info (const char* path) {
g_return_val_if_fail (path != NULL, NULL);
info = g_desktop_app_info_new_from_filename (path);
if (path == NULL) {
- g_warning ("music-player-bridge.vala:149: Could not create a desktopappinfo instan" \
+ g_warning ("music-player-bridge.vala:151: Could not create a desktopappinfo instan" \
"ce from app: %s", path);
result = NULL;
_g_object_unref0 (info);
@@ -420,7 +423,7 @@ static char* music_player_bridge_truncate_player_name (char* app_info_name) {
char* _tmp4_;
_result_ = (_tmp4_ = g_strdup (tokens[0]), _g_free0 (_result_), _tmp4_);
}
- g_debug ("music-player-bridge.vala:165: truncate player name %s", _result_);
+ g_debug ("music-player-bridge.vala:167: truncate player name %s", _result_);
result = _result_;
tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
_g_free0 (app_info_name);
@@ -461,7 +464,7 @@ static char* music_player_bridge_determine_key (char* path) {
char* _tmp7_;
_result_ = (_tmp7_ = g_strdup (temp[0]), _g_free0 (_result_), _tmp7_);
}
- g_debug ("music-player-bridge.vala:179: determine key result = %s", _result_);
+ g_debug ("music-player-bridge.vala:181: determine key result = %s", _result_);
result = _result_;
temp = (_vala_array_free (temp, temp_length1, (GDestroyNotify) g_free), NULL);
_g_free0 (filename);
diff --git a/src/music-player-bridge.h b/src/music-player-bridge.h
index 111a76d..41ea682 100644
--- a/src/music-player-bridge.h
+++ b/src/music-player-bridge.h
@@ -337,8 +337,8 @@ GType mpris2_controller_get_type (void) G_GNUC_CONST;
GType player_controller_widget_order_get_type (void) G_GNUC_CONST;
GType player_controller_state_get_type (void) G_GNUC_CONST;
#define PLAYER_CONTROLLER_WIDGET_QUANTITY 4
-PlayerController* player_controller_new (DbusmenuMenuitem* root, const char* client_name, gint offset, PlayerControllerstate initial_state);
-PlayerController* player_controller_construct (GType object_type, DbusmenuMenuitem* root, const char* client_name, gint offset, PlayerControllerstate initial_state);
+PlayerController* player_controller_new (DbusmenuMenuitem* root, const char* client_name, const char* mpris_name, gint offset, PlayerControllerstate initial_state);
+PlayerController* player_controller_construct (GType object_type, DbusmenuMenuitem* root, const char* client_name, const char* mpris_name, gint offset, PlayerControllerstate initial_state);
void player_controller_update_state (PlayerController* self, PlayerControllerstate new_state);
void player_controller_activate (PlayerController* self);
void player_controller_instantiate (PlayerController* self);
@@ -348,6 +348,8 @@ void player_controller_update_layout (PlayerController* self);
void player_controller_determine_state (PlayerController* self);
const char* player_controller_get_name (PlayerController* self);
void player_controller_set_name (PlayerController* self, const char* value);
+const char* player_controller_get_mpris_name (PlayerController* self);
+void player_controller_set_mpris_name (PlayerController* self, const char* value);
GAppInfo* player_controller_get_app_info (PlayerController* self);
void player_controller_set_app_info (PlayerController* self, GAppInfo* value);
gint player_controller_get_menu_offset (PlayerController* self);
diff --git a/src/music-player-bridge.vala b/src/music-player-bridge.vala
index 9ba4ef6..57f5636 100644
--- a/src/music-player-bridge.vala
+++ b/src/music-player-bridge.vala
@@ -58,6 +58,7 @@ public class MusicPlayerBridge : GLib.Object
GLib.AppInfo app_info = info as GLib.AppInfo;
PlayerController ctrl = new PlayerController(this.root_menu,
truncate_player_name(app_info.get_name()),
+ determine_key(app),
calculate_menu_position(),
PlayerController.state.OFFLINE);
ctrl.app_info = app_info;
@@ -99,6 +100,7 @@ public class MusicPlayerBridge : GLib.Object
bridge.playersDB.insert(path);
PlayerController ctrl = new PlayerController(bridge.root_menu,
name,
+ determine_key(path),
bridge.calculate_menu_position(),
PlayerController.state.READY);
ctrl.set("app_info", app_info);
diff --git a/src/player-controller.c b/src/player-controller.c
index ab05cb3..3eee29a 100644
--- a/src/player-controller.c
+++ b/src/player-controller.c
@@ -118,6 +118,7 @@ struct _PlayerControllerClass {
struct _PlayerControllerPrivate {
DbusmenuMenuitem* root_menu;
char* _name;
+ char* _mpris_name;
GAppInfo* _app_info;
gint _menu_offset;
};
@@ -152,16 +153,18 @@ GType mpris2_controller_get_type (void) G_GNUC_CONST;
enum {
PLAYER_CONTROLLER_DUMMY_PROPERTY,
PLAYER_CONTROLLER_NAME,
+ PLAYER_CONTROLLER_MPRIS_NAME,
PLAYER_CONTROLLER_APP_INFO,
PLAYER_CONTROLLER_MENU_OFFSET
};
GType player_controller_widget_order_get_type (void) G_GNUC_CONST;
GType player_controller_state_get_type (void) G_GNUC_CONST;
#define PLAYER_CONTROLLER_WIDGET_QUANTITY 4
-PlayerController* player_controller_new (DbusmenuMenuitem* root, const char* client_name, gint offset, PlayerControllerstate initial_state);
-PlayerController* player_controller_construct (GType object_type, DbusmenuMenuitem* root, const char* client_name, gint offset, PlayerControllerstate initial_state);
+PlayerController* player_controller_new (DbusmenuMenuitem* root, const char* client_name, const char* mpris_name, gint offset, PlayerControllerstate initial_state);
+PlayerController* player_controller_construct (GType object_type, DbusmenuMenuitem* root, const char* client_name, const char* mpris_name, gint offset, PlayerControllerstate initial_state);
static char* player_controller_format_client_name (const char* client_name);
void player_controller_set_name (PlayerController* self, const char* value);
+void player_controller_set_mpris_name (PlayerController* self, const char* value);
void player_controller_set_menu_offset (PlayerController* self, gint value);
static void player_controller_construct_widgets (PlayerController* self);
static void player_controller_establish_mpris_connection (PlayerController* self);
@@ -196,6 +199,7 @@ gint player_controller_get_menu_offset (PlayerController* self);
gboolean mpris2_controller_connected (Mpris2Controller* self);
GType transport_menuitem_state_get_type (void) G_GNUC_CONST;
void transport_menuitem_change_play_state (TransportMenuitem* self, TransportMenuitemstate update);
+const char* player_controller_get_mpris_name (PlayerController* self);
void player_controller_set_app_info (PlayerController* self, GAppInfo* value);
static void player_controller_finalize (GObject* obj);
static void player_controller_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
@@ -243,7 +247,7 @@ static char* string_strip (const char* self) {
}
-PlayerController* player_controller_construct (GType object_type, DbusmenuMenuitem* root, const char* client_name, gint offset, PlayerControllerstate initial_state) {
+PlayerController* player_controller_construct (GType object_type, DbusmenuMenuitem* root, const char* client_name, const char* mpris_name, gint offset, PlayerControllerstate initial_state) {
PlayerController * self;
DbusmenuMenuitem* _tmp0_;
char* _tmp1_;
@@ -251,11 +255,13 @@ PlayerController* player_controller_construct (GType object_type, DbusmenuMenuit
GeeArrayList* _tmp3_;
g_return_val_if_fail (root != NULL, NULL);
g_return_val_if_fail (client_name != NULL, NULL);
+ g_return_val_if_fail (mpris_name != NULL, NULL);
self = (PlayerController*) g_object_new (object_type, NULL);
self->priv->root_menu = (_tmp0_ = _g_object_ref0 (root), _g_object_unref0 (self->priv->root_menu), _tmp0_);
player_controller_set_name (self, _tmp2_ = player_controller_format_client_name (_tmp1_ = string_strip (client_name)));
_g_free0 (_tmp2_);
_g_free0 (_tmp1_);
+ player_controller_set_mpris_name (self, mpris_name);
self->custom_items = (_tmp3_ = gee_array_list_new (TYPE_PLAYER_ITEM, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL), _g_object_unref0 (self->custom_items), _tmp3_);
self->current_state = (gint) initial_state;
player_controller_set_menu_offset (self, offset);
@@ -266,14 +272,14 @@ PlayerController* player_controller_construct (GType object_type, DbusmenuMenuit
}
-PlayerController* player_controller_new (DbusmenuMenuitem* root, const char* client_name, gint offset, PlayerControllerstate initial_state) {
- return player_controller_construct (TYPE_PLAYER_CONTROLLER, root, client_name, offset, initial_state);
+PlayerController* player_controller_new (DbusmenuMenuitem* root, const char* client_name, const char* mpris_name, gint offset, PlayerControllerstate initial_state) {
+ return player_controller_construct (TYPE_PLAYER_CONTROLLER, root, client_name, mpris_name, offset, initial_state);
}
void player_controller_update_state (PlayerController* self, PlayerControllerstate new_state) {
g_return_if_fail (self != NULL);
- g_debug ("player-controller.vala:69: update_state - player controller %s : new s" \
+ g_debug ("player-controller.vala:72: update_state - player controller %s : new s" \
"tate %i", self->priv->_name, (gint) new_state);
self->current_state = (gint) new_state;
player_controller_update_layout (self);
@@ -289,7 +295,7 @@ void player_controller_activate (PlayerController* self) {
void player_controller_instantiate (PlayerController* self) {
GError * _inner_error_ = NULL;
g_return_if_fail (self != NULL);
- g_debug ("player-controller.vala:87: instantiate in player controller for %s", self->priv->_name);
+ g_debug ("player-controller.vala:90: instantiate in player controller for %s", self->priv->_name);
{
g_app_info_launch (self->priv->_app_info, NULL, NULL, &_inner_error_);
if (_inner_error_ != NULL) {
@@ -304,7 +310,7 @@ void player_controller_instantiate (PlayerController* self) {
_error_ = _inner_error_;
_inner_error_ = NULL;
{
- g_warning ("player-controller.vala:93: Failed to launch app %s with error message:" \
+ g_warning ("player-controller.vala:96: Failed to launch app %s with error message:" \
" %s", self->priv->_name, _error_->message);
_g_error_free0 (_error_);
}
@@ -322,7 +328,7 @@ static void player_controller_establish_mpris_connection (PlayerController* self
Mpris2Controller* _tmp0_;
g_return_if_fail (self != NULL);
if (self->current_state != PLAYER_CONTROLLER_STATE_READY) {
- g_debug ("player-controller.vala:100: establish_mpris_connection - Not ready to " \
+ g_debug ("player-controller.vala:103: establish_mpris_connection - Not ready to " \
"connect");
return;
}
@@ -482,7 +488,7 @@ static char* player_controller_format_client_name (const char* client_name) {
formatted = (_tmp2_ = g_strconcat (_tmp0_ = g_utf8_strup (client_name, (gssize) 1), _tmp1_ = string_slice (client_name, (glong) 1, string_get_length (client_name)), NULL), _g_free0 (formatted), _tmp2_);
_g_free0 (_tmp1_);
_g_free0 (_tmp0_);
- g_debug ("player-controller.vala:165: PlayerController->format_client_name - : %" \
+ g_debug ("player-controller.vala:168: PlayerController->format_client_name - : %" \
"s", formatted);
}
result = formatted;
@@ -526,6 +532,22 @@ void player_controller_set_name (PlayerController* self, const char* value) {
}
+const char* player_controller_get_mpris_name (PlayerController* self) {
+ const char* result;
+ g_return_val_if_fail (self != NULL, NULL);
+ result = self->priv->_mpris_name;
+ return result;
+}
+
+
+void player_controller_set_mpris_name (PlayerController* self, const char* value) {
+ char* _tmp0_;
+ g_return_if_fail (self != NULL);
+ self->priv->_mpris_name = (_tmp0_ = g_strdup (value), _g_free0 (self->priv->_mpris_name), _tmp0_);
+ g_object_notify ((GObject *) self, "mpris-name");
+}
+
+
GAppInfo* player_controller_get_app_info (PlayerController* self) {
GAppInfo* result;
g_return_val_if_fail (self != NULL, NULL);
@@ -564,6 +586,7 @@ static void player_controller_class_init (PlayerControllerClass * klass) {
G_OBJECT_CLASS (klass)->set_property = player_controller_set_property;
G_OBJECT_CLASS (klass)->finalize = player_controller_finalize;
g_object_class_install_property (G_OBJECT_CLASS (klass), PLAYER_CONTROLLER_NAME, g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+ g_object_class_install_property (G_OBJECT_CLASS (klass), PLAYER_CONTROLLER_MPRIS_NAME, g_param_spec_string ("mpris-name", "mpris-name", "mpris-name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), PLAYER_CONTROLLER_APP_INFO, g_param_spec_object ("app-info", "app-info", "app-info", G_TYPE_APP_INFO, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), PLAYER_CONTROLLER_MENU_OFFSET, g_param_spec_int ("menu-offset", "menu-offset", "menu-offset", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
}
@@ -580,6 +603,7 @@ static void player_controller_finalize (GObject* obj) {
self = PLAYER_CONTROLLER (obj);
_g_object_unref0 (self->priv->root_menu);
_g_free0 (self->priv->_name);
+ _g_free0 (self->priv->_mpris_name);
_g_object_unref0 (self->custom_items);
_g_object_unref0 (self->mpris_bridge);
_g_object_unref0 (self->priv->_app_info);
@@ -606,6 +630,9 @@ static void player_controller_get_property (GObject * object, guint property_id,
case PLAYER_CONTROLLER_NAME:
g_value_set_string (value, player_controller_get_name (self));
break;
+ case PLAYER_CONTROLLER_MPRIS_NAME:
+ g_value_set_string (value, player_controller_get_mpris_name (self));
+ break;
case PLAYER_CONTROLLER_APP_INFO:
g_value_set_object (value, player_controller_get_app_info (self));
break;
@@ -626,6 +653,9 @@ static void player_controller_set_property (GObject * object, guint property_id,
case PLAYER_CONTROLLER_NAME:
player_controller_set_name (self, g_value_get_string (value));
break;
+ case PLAYER_CONTROLLER_MPRIS_NAME:
+ player_controller_set_mpris_name (self, g_value_get_string (value));
+ break;
case PLAYER_CONTROLLER_APP_INFO:
player_controller_set_app_info (self, g_value_get_object (value));
break;
diff --git a/src/player-controller.vala b/src/player-controller.vala
index d5b79e7..ad8e989 100644
--- a/src/player-controller.vala
+++ b/src/player-controller.vala
@@ -44,6 +44,7 @@ public class PlayerController : GLib.Object
private Dbusmenu.Menuitem root_menu;
public string name { get; set;}
+ public string mpris_name { get; set;}
public ArrayList<PlayerItem> custom_items;
public Mpris2Controller mpris_bridge;
public AppInfo? app_info { get; set;}
@@ -51,11 +52,13 @@ public class PlayerController : GLib.Object
public PlayerController(Dbusmenu.Menuitem root,
string client_name,
+ string mpris_name,
int offset,
state initial_state)
{
this.root_menu = root;
this.name = format_client_name(client_name.strip());
+ this.mpris_name = mpris_name;
this.custom_items = new ArrayList<PlayerItem>();
this.current_state = initial_state;
this.menu_offset = offset;