[snappy/aurena] ui controls volume in server



commit 04be5647b6f61988fca3c688308da4919f916351
Author: Luis de Bethencourt <luis debethencourt com>
Date:   Mon Sep 17 16:50:15 2012 +0100

    ui controls volume in server

 src/snra-client.c    |    1 +
 src/user_interface.c |   43 +++++++++++++++++++++++++------------------
 src/user_interface.h |    1 +
 3 files changed, 27 insertions(+), 18 deletions(-)
---
diff --git a/src/snra-client.c b/src/snra-client.c
index e840e9e..4303dd8 100644
--- a/src/snra-client.c
+++ b/src/snra-client.c
@@ -304,6 +304,7 @@ handle_set_volume_message (SnraClient * client, GstStructure * s)
 
   if (client->ui) {
     engine_volume (client->ui->engine, new_vol);
+    interface_update_volume (client->ui, new_vol);
   }
 }
 
diff --git a/src/user_interface.c b/src/user_interface.c
index a51f810..58ed2bf 100644
--- a/src/user_interface.c
+++ b/src/user_interface.c
@@ -45,7 +45,6 @@ static void size_change (ClutterStage * stage,
 static void show_controls (UserInterface * ui, gboolean vis);
 static void toggle_fullscreen (UserInterface * ui);
 static void update_controls_size (UserInterface * ui);
-static gboolean update_volume (UserInterface * ui, gdouble volume);
 
 /* ---------------------- static functions ----------------------- */
 
@@ -103,7 +102,7 @@ event_cb (ClutterStage * stage, ClutterEvent * event, SnraClient * client)
 
           g_object_get (G_OBJECT (ui->engine->player), "mute", &muteval, NULL);
           g_object_set (G_OBJECT (ui->engine->player), "mute", !muteval, NULL);
-          update_volume (ui, volume);
+          interface_update_volume (ui, volume);
 
           handled = TRUE;
           break;
@@ -131,7 +130,7 @@ event_cb (ClutterStage * stage, ClutterEvent * event, SnraClient * client)
                 volume, NULL);
           }
 
-          update_volume (ui, volume);
+          interface_update_volume (ui, volume);
 
           handled = TRUE;
           break;
@@ -196,15 +195,23 @@ event_cb (ClutterStage * stage, ClutterEvent * event, SnraClient * client)
         } else if (actor == ui->vol_int || actor == ui->vol_int_bg) {
           gfloat x, y, dist;
           gdouble volume;
+          SoupMessage *soup_msg;
+          char *url = NULL;
 
           clutter_actor_get_transformed_position (ui->vol_int_bg, &x, &y);
           dist = bev->x - x;
           dist = CLAMP (dist, 0, ui->volume_width);
 
           volume = dist / ui->volume_width;
-          g_object_set (G_OBJECT (ui->engine->player), "volume", volume, NULL);
+          //g_object_set (G_OBJECT (ui->engine->player), "volume", volume, NULL);
           clutter_actor_set_size (ui->vol_int, dist, ui->volume_height);
 
+          url = g_strdup_printf ("http://%s:%u/control/volume?level=%f";,
+                client->connected_server, client->connected_port, volume);
+          soup_msg = soup_message_new ("GET", url);
+          soup_session_queue_message (client->soup, soup_msg, NULL, NULL);
+          g_free (url);
+
         } else if (actor == ui->control_bg || actor == ui->control_title
             || actor == ui->control_pos) {
           ui->keep_showing_controls = !ui->keep_showing_controls;
@@ -814,19 +821,7 @@ update_controls_size (UserInterface * ui)
   clutter_actor_set_size (ui->fullscreen_toggle, icon_size, icon_size);
   clutter_actor_set_size (ui->quit_button, icon_size, icon_size);
 
-  update_volume (ui, -1);
-}
-
-static gboolean
-update_volume (UserInterface * ui, gdouble volume)
-{
-  if (volume == -1)
-    g_object_get (G_OBJECT (ui->engine->player), "volume", &volume, NULL);
-
-  clutter_actor_set_size (ui->vol_int, volume * ui->volume_width,
-      ui->volume_height);
-
-  return TRUE;
+  interface_update_volume (ui, -1);
 }
 
 /* -------------------- non-static functions --------------------- */
@@ -1016,7 +1011,19 @@ interface_update_controls (UserInterface * ui)
 {
   progress_update_text (ui);
   progress_update_seekbar (ui);
-  update_volume (ui, -1);
+  interface_update_volume (ui, -1);
+
+  return TRUE;
+}
+
+gboolean
+interface_update_volume (UserInterface * ui, gdouble volume)
+{
+  if (volume == -1)
+    g_object_get (G_OBJECT (ui->engine->player), "volume", &volume, NULL);
+
+  clutter_actor_set_size (ui->vol_int, volume * ui->volume_width,
+      ui->volume_height);
 
   return TRUE;
 }
diff --git a/src/user_interface.h b/src/user_interface.h
index d555ca9..4910896 100644
--- a/src/user_interface.h
+++ b/src/user_interface.h
@@ -123,6 +123,7 @@ gboolean interface_load_uri (UserInterface * ui, gchar * uri);
 void interface_play_next_or_prev (UserInterface * ui, gboolean next);
 void interface_start (UserInterface * ui, gchar * uri, gpointer * data);
 gboolean interface_update_controls (UserInterface * ui);
+gboolean interface_update_volume (UserInterface * ui, gdouble volume);
 void toggle_playing (UserInterface * ui, gboolean playing);
 
 G_END_DECLS



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]