← Back to team overview

ayatana-commits team mailing list archive

[Merge] lp:~cjcurran/indicator-sound/playlist-and-fixes into lp:indicator-sound

 

Conor Curran has proposed merging lp:~cjcurran/indicator-sound/playlist-and-fixes into lp:indicator-sound.

Requested reviews:
  Indicator Applet Developers (indicator-applet-developers)


a couple of fixes, plus playlist mock item included

-- 
https://code.launchpad.net/~cjcurran/indicator-sound/playlist-and-fixes/+merge/31179
Your team ayatana-commits is subscribed to branch lp:indicator-sound.
=== modified file 'src/play-button.c'
--- src/play-button.c	2010-07-27 14:14:53 +0000
+++ src/play-button.c	2010-07-28 17:23:43 +0000
@@ -458,7 +458,7 @@
 	priv->current_state = update;
 	g_debug("PlayButton::toggle play state : %i", priv->current_state); 
 
-	if(changed == TRUE){
+	/*if(changed == TRUE){
 		g_debug("Toggle play pause - changed of state detected");
 		cairo_t *cr;
 	
@@ -476,7 +476,7 @@
 		cairo_clip(cr);
 		draw (button, cr);
 		cairo_destroy (cr);
-	}
+	}*/
 }
 
 

=== modified file 'src/player-controller.vala'
--- src/player-controller.vala	2010-07-27 11:39:51 +0000
+++ src/player-controller.vala	2010-07-28 17:23:43 +0000
@@ -23,14 +23,15 @@
 
 public class PlayerController : GLib.Object
 {
-	public const int WIDGET_QUANTITY = 5;
+	public const int WIDGET_QUANTITY = 6;
 
 	public static enum widget_order{
 		SEPARATOR,
 		TITLE,
 		METADATA,
 		SCRUB,
-		TRANSPORT
+		TRANSPORT,
+		PLAYLIST
 	}
 
 	public enum state{
@@ -133,6 +134,8 @@
 			this.custom_items[widget_order.SCRUB].property_set_bool(MENUITEM_PROP_VISIBLE,
 			                                                        false);
 			this.custom_items[widget_order.METADATA].property_set_bool(MENUITEM_PROP_VISIBLE,
+			                                                           false);
+	  	this.custom_items[widget_order.PLAYLIST].property_set_bool(MENUITEM_PROP_VISIBLE,
 			                                                           false);		
 			return;			
 		}
@@ -146,8 +149,10 @@
 
 
 		this.custom_items[widget_order.TRANSPORT].property_set_bool(MENUITEM_PROP_VISIBLE,
-		                                                            this.current_state == state.CONNECTED);
-		
+		                                                            true);
+
+	  this.custom_items[widget_order.PLAYLIST].property_set_bool(MENUITEM_PROP_VISIBLE,
+		                                                            true);
 	}
 		
 	private void construct_widgets()
@@ -170,12 +175,34 @@
 		// Transport item
 		TransportMenuitem transport_item = new TransportMenuitem(this);
 		this.custom_items.add(transport_item);
-
+		
+		this.custom_items.add(create_playlist());		
 		
 		foreach(PlayerItem item in this.custom_items){
 			root_menu.child_add_position(item, this.menu_offset + this.custom_items.index_of(item));			
 		}
 	}	
+
+	private PlayerItem create_playlist()
+	{
+		PlayerItem playlist_root = new PlayerItem(CLIENT_TYPES_DEFAULT);
+		playlist_root.property_set(MENUITEM_PROP_LABEL, "Choose Playlist");
+
+		PlayerItem subentry_1 = new PlayerItem(CLIENT_TYPES_DEFAULT);
+		subentry_1.property_set(MENUITEM_PROP_LABEL, "90's Warp");
+
+		PlayerItem subentry_2 = new PlayerItem(CLIENT_TYPES_DEFAULT);
+		subentry_2.property_set(MENUITEM_PROP_LABEL, "Rune Grammafon 00's");
+
+		PlayerItem subentry_3 = new PlayerItem(CLIENT_TYPES_DEFAULT);
+		subentry_3.property_set(MENUITEM_PROP_LABEL, "Kranky pics");
+		
+		playlist_root.child_append(subentry_1);
+		playlist_root.child_append(subentry_2);
+		playlist_root.child_append(subentry_3);
+
+		return playlist_root;
+	}
 	
 	private static string format_client_name(string client_name)
 	{

=== modified file 'src/scrub-widget.c'
--- src/scrub-widget.c	2010-07-27 11:39:51 +0000
+++ src/scrub-widget.c	2010-07-28 17:23:43 +0000
@@ -93,10 +93,13 @@
   priv->ido_scrub_bar = ido_scale_menu_item_new_with_range ("Scrub", IDO_RANGE_STYLE_SMALL,  0, 0, 100, 1);
 	priv->time_line = ido_timeline_new(0);
 	
-	ido_scale_menu_item_set_style (IDO_SCALE_MENU_ITEM(priv->ido_scrub_bar), IDO_SCALE_MENU_ITEM_STYLE_LABEL);	
+	ido_scale_menu_item_set_style (IDO_SCALE_MENU_ITEM(priv->ido_scrub_bar), IDO_SCALE_MENU_ITEM_STYLE_LABEL);		
+
 	g_object_set(priv->ido_scrub_bar, "reverse-scroll-events", TRUE, NULL);
 	priv->scrubbing = FALSE;
-	
+
+	gtk_widget_set_size_request(GTK_WIDGET(priv->ido_scrub_bar), 100, 80); 
+
   // register slider changes listening on the range
   GtkWidget* scrub_widget = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_scrub_bar);	
   g_signal_connect(scrub_widget, "change-value", G_CALLBACK(scrub_widget_change_value_cb), self);	
@@ -105,6 +108,7 @@
 	g_signal_connect(priv->time_line, "finished", G_CALLBACK(scrub_widget_timeline_finished_cb), self);		
   g_signal_connect(priv->ido_scrub_bar, "slider-grabbed", G_CALLBACK(scrub_widget_slider_grabbed), self);
   g_signal_connect(priv->ido_scrub_bar, "slider-released", G_CALLBACK(scrub_widget_slider_released), self);
+	
 }
 
 static void
@@ -131,14 +135,15 @@
 	
 	if(g_ascii_strcasecmp(DBUSMENU_SCRUB_MENUITEM_DURATION, property) == 0){
 		g_debug("scrub-widget::update length = %i", g_value_get_int(value)); 
-		ido_scale_menu_item_set_secondary_label(IDO_SCALE_MENU_ITEM(priv->ido_scrub_bar),
+
+    ido_scale_menu_item_set_secondary_label(IDO_SCALE_MENU_ITEM(priv->ido_scrub_bar),
 		                                      	scrub_widget_format_time(g_value_get_int(value))); 			
-				
+		
 		ido_timeline_set_duration(priv->time_line, g_value_get_int(value) * 1000); 	
 		ido_timeline_rewind(priv->time_line);
 		scrub_widget_check_play_state(mitem);
-		g_debug("timeline is running: %i", (gint)ido_timeline_is_running(priv->time_line));
-		g_debug("timeline duration = %i", ido_timeline_get_duration(priv->time_line));
+		//g_debug("timeline is running: %i", (gint)ido_timeline_is_running(priv->time_line));
+		//g_debug("timeline duration = %i", ido_timeline_get_duration(priv->time_line));
 
 		scrub_widget_set_ido_position(mitem, 
 	                              dbusmenu_menuitem_property_get_int(priv->twin_item, DBUSMENU_SCRUB_MENUITEM_POSITION)/1000,
@@ -152,11 +157,11 @@
 
 		g_debug("scrub-widget::update progress = %f", scrub_widget_calculate_progress(mitem)*100); 
 																					
-		ido_timeline_set_progress(priv->time_line, scrub_widget_calculate_progress(mitem)*1000);
+		ido_timeline_set_progress(priv->time_line, scrub_widget_calculate_progress(mitem));
 		scrub_widget_set_ido_position(mitem, g_value_get_int(value)/1000,
 																dbusmenu_menuitem_property_get_int(priv->twin_item, DBUSMENU_SCRUB_MENUITEM_DURATION));
-		ido_timeline_start(priv->time_line);		
 
+		scrub_widget_check_play_state(mitem);
 	}
 	else if(g_ascii_strcasecmp(DBUSMENU_SCRUB_MENUITEM_PLAY_STATE, property) == 0){
 		scrub_widget_check_play_state(mitem);
@@ -190,7 +195,8 @@
 	g_signal_connect(G_OBJECT(twin_item), "property-changed", 
 	                 G_CALLBACK(scrub_widget_property_update), self);
 
-	gchar* left_text = scrub_widget_format_time(dbusmenu_menuitem_property_get_int(priv->twin_item,	                                                                               DBUSMENU_SCRUB_MENUITEM_POSITION)/1000); 	
+	gchar* left_text = scrub_widget_format_time(dbusmenu_menuitem_property_get_int(priv->twin_item,
+	                                                                               DBUSMENU_SCRUB_MENUITEM_POSITION)/1000); 	
 	gchar* right_text = scrub_widget_format_time(dbusmenu_menuitem_property_get_int(priv->twin_item, 
 	                                                                                DBUSMENU_SCRUB_MENUITEM_DURATION)); 	
 	scrub_widget_set_ido_position(self, 
@@ -209,7 +215,7 @@
                  							gdouble       new_value,
                  							gpointer      user_data)
 {
-	/*g_return_val_if_fail (IS_SCRUB_WIDGET (user_data), FALSE);
+	g_return_val_if_fail (IS_SCRUB_WIDGET (user_data), FALSE);
 	ScrubWidget* mitem = SCRUB_WIDGET(user_data);
 	ScrubWidgetPrivate * priv = SCRUB_WIDGET_GET_PRIVATE(mitem);
 
@@ -217,14 +223,8 @@
   g_value_init(&value, G_TYPE_DOUBLE);
 	gdouble clamped = CLAMP(new_value, 0, 100);
   g_value_set_double(&value, clamped);
-  //g_debug("scrub-widget-change-value callback - = %f", clamped);
-	if(priv->scrubbing == FALSE){
-  	dbusmenu_menuitem_handle_event (priv->twin_item, "scrubbing", &value, 0);
-	}
-	else{
-		g_debug("blocking scrubbing because the slider is still grabbed"
-	}*/
-	return FALSE;
+  dbusmenu_menuitem_handle_event (priv->twin_item, "scrubbing", &value, 0);
+	return TRUE;
 }
 
 GtkWidget*
@@ -251,6 +251,7 @@
 		if(seconds > 9)
 			seconds_prefix="";
 		return g_strdup_printf("%s%i:%s%i", prefix, minutes, seconds_prefix, seconds);	
+		
 	}	
 	else{
 		return g_strdup_printf("%s-:%s-", prefix, seconds_prefix);	
@@ -308,7 +309,7 @@
 	ido_scale_menu_item_set_primary_label(IDO_SCALE_MENU_ITEM(priv->ido_scrub_bar), left_text); 	
   GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_scrub_bar);
   GtkRange *range = (GtkRange*)slider;
- 	//gtk_range_set_value(range, progress * 100);
+  gtk_range_set_value(range, progress * 100);
 	/*g_debug("position in seconds %i and in words %s", position, left_text);
 	g_debug("timeline is running: %i", (gint)ido_timeline_is_running(priv->time_line));
 	g_debug("timeline duration = %i", ido_timeline_get_duration(priv->time_line));	
@@ -355,10 +356,6 @@
                          			 		gpointer 		user_data)
 {
 	g_debug("Timeline Finished!");	
-	/*g_return_if_fail (IS_SCRUB_WIDGET (user_data));
-	ScrubWidget* mitem = SCRUB_WIDGET(user_data);
-	ScrubWidgetPrivate * priv = SCRUB_WIDGET_GET_PRIVATE(mitem);
-	ido_timeline_rewind(priv->time_line);*/
 }
 
 /**


Follow ups