[gupnp-tools] Add rescan button.
- From: Krzesimir Nowak <krnowak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gupnp-tools] Add rescan button.
- Date: Wed, 20 Feb 2013 10:46:23 +0000 (UTC)
commit 4f7c2d6bb656eb62c5fd542947536cc4798c8dc6
Author: Krzesimir Nowak <krnowak openismus com>
Date: Wed Feb 20 11:45:31 2013 +0100
Add rescan button.
configure.ac | 2 +-
data/gupnp-av-cp.ui.in | 15 +++++++++++++++
src/av-cp/gui.c | 10 ++++++++++
src/av-cp/gui.h | 3 +++
src/av-cp/main.c | 17 +++++++++++++++++
5 files changed, 46 insertions(+), 1 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index fc4c4c8..14f748c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -24,7 +24,7 @@ LT_PREREQ([2.2])
LT_INIT([])
GLIB_REQUIRED=2.24
-GSSDP_REQUIRED=0.10
+GSSDP_REQUIRED=0.13.3
GUPNP_REQUIRED=0.13
SOUP_REQUIRED=2.4
GUPNP_AV_REQUIRED=0.5.5
diff --git a/data/gupnp-av-cp.ui.in b/data/gupnp-av-cp.ui.in
index 91afb57..f193ef5 100644
--- a/data/gupnp-av-cp.ui.in
+++ b/data/gupnp-av-cp.ui.in
@@ -708,6 +708,21 @@ Vinicius Depizzol <vdepizzol gmail com></property>
<property name="position">4</property>
</packing>
</child>
+ <child>
+ <object class="GtkButton" id="rescan-button">
+ <property name="label" translatable="yes">Rescan</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff --git a/src/av-cp/gui.c b/src/av-cp/gui.c
index f991314..68056e6 100644
--- a/src/av-cp/gui.c
+++ b/src/av-cp/gui.c
@@ -36,6 +36,7 @@
static GtkBuilder *builder;
static GtkWidget *main_window;
static GtkWidget *about_dialog;
+static GtkButton *rescan_button;
G_MODULE_EXPORT
gboolean
@@ -107,6 +108,9 @@ init_ui (gint *argc,
about_dialog = GTK_WIDGET (gtk_builder_get_object (builder,
"about-dialog"));
g_assert (about_dialog != NULL);
+ rescan_button = GTK_BUTTON (gtk_builder_get_object (builder,
+ "rescan-button"));
+ g_assert (rescan_button != NULL);
/* 40% of the screen but don't get bigger than 1000x800 */
window_width = CLAMP ((gdk_screen_width () * 40 / 100), 10, 1000);
@@ -130,6 +134,12 @@ init_ui (gint *argc,
return TRUE;
}
+GtkButton *
+get_rescan_button (void)
+{
+ return rescan_button;
+}
+
void
deinit_ui (void)
{
diff --git a/src/av-cp/gui.h b/src/av-cp/gui.h
index 0fdcc71..9fbcf12 100644
--- a/src/av-cp/gui.h
+++ b/src/av-cp/gui.h
@@ -30,6 +30,9 @@ gboolean
init_ui (gint *argc,
gchar **argv[]);
+GtkButton *
+get_rescan_button (void);
+
void
deinit_ui (void);
diff --git a/src/av-cp/main.c b/src/av-cp/main.c
index ead7b4b..944de91 100644
--- a/src/av-cp/main.c
+++ b/src/av-cp/main.c
@@ -68,12 +68,22 @@ dmr_proxy_unavailable_cb (GUPnPControlPoint *cp,
}
static void
+on_rescan_button_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ GSSDPResourceBrowser *browser = GSSDP_RESOURCE_BROWSER (user_data);
+
+ gssdp_resource_browser_rescan (browser);
+}
+
+static void
on_context_available (GUPnPContextManager *context_manager,
GUPnPContext *context,
gpointer user_data)
{
GUPnPControlPoint *dms_cp;
GUPnPControlPoint *dmr_cp;
+ GtkButton *button;
dms_cp = gupnp_control_point_new (context, MEDIA_SERVER);
dmr_cp = gupnp_control_point_new (context, MEDIA_RENDERER);
@@ -95,11 +105,18 @@ on_context_available (GUPnPContextManager *context_manager,
G_CALLBACK (dmr_proxy_unavailable_cb),
NULL);
+ button = get_rescan_button ();
+
gssdp_resource_browser_set_active (GSSDP_RESOURCE_BROWSER (dms_cp),
TRUE);
gssdp_resource_browser_set_active (GSSDP_RESOURCE_BROWSER (dmr_cp),
TRUE);
+ g_signal_connect (button, "clicked",
+ G_CALLBACK (on_rescan_button_clicked), dms_cp);
+ g_signal_connect (button, "clicked",
+ G_CALLBACK (on_rescan_button_clicked), dmr_cp);
+
/* Let context manager take care of the control point life cycle */
gupnp_context_manager_manage_control_point (context_manager, dms_cp);
gupnp_context_manager_manage_control_point (context_manager, dmr_cp);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]