aboutsummaryrefslogtreecommitdiff
path: root/src/player-controller.vala
diff options
context:
space:
mode:
authorConor Curran <conor.curran@canonical.com>2010-11-05 15:19:52 +0000
committerConor Curran <conor.curran@canonical.com>2010-11-05 15:19:52 +0000
commit6c1c1d706fa7e8670ce3fb46329647e20a307911 (patch)
treeff91de689c5586b41e99db68d540cb7f328e74dd /src/player-controller.vala
parentf6c1abd8b39794057044f2ad9a567624ae4e9cf3 (diff)
downloadayatana-indicator-sound-6c1c1d706fa7e8670ce3fb46329647e20a307911.tar.gz
ayatana-indicator-sound-6c1c1d706fa7e8670ce3fb46329647e20a307911.tar.bz2
ayatana-indicator-sound-6c1c1d706fa7e8670ce3fb46329647e20a307911.zip
refactored the constructor for the player controller enforcing app_info pattern
Diffstat (limited to 'src/player-controller.vala')
-rw-r--r--src/player-controller.vala19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/player-controller.vala b/src/player-controller.vala
index f9cbe71..cc2e4e1 100644
--- a/src/player-controller.vala
+++ b/src/player-controller.vala
@@ -51,13 +51,14 @@ public class PlayerController : GLib.Object
public int menu_offset { get; set;}
public PlayerController(Dbusmenu.Menuitem root,
- string client_name,
+ GLib.AppInfo app,
string mpris_name,
int offset,
state initial_state)
{
this.root_menu = root;
- this.name = format_client_name(client_name.strip());
+ this.app_info = app;
+ this.name = format_player_name(this.app_info.get_name());
this.mpris_name = mpris_name;
this.custom_items = new ArrayList<PlayerItem>();
this.current_state = initial_state;
@@ -170,6 +171,20 @@ public class PlayerController : GLib.Object
return formatted;
}
+ private static string format_player_name(owned string app_info_name)
+ {
+ string result = app_info_name.down().strip();
+ var tokens = result.split(" ");
+ if(tokens.length > 1){
+ result = tokens[0];
+ }
+ if(result.length > 1){
+ result = result.up(1).concat(result.slice(1, result.length));
+ debug("PlayerController->format_player_name - : %s", result);
+ }
+ return result;
+ }
+
// Temporarily we will need to handle to different mpris implemenations
// Do it for now - a couple of weeks should see this messy carry on out of
// the codebase.