summaryrefslogtreecommitdiffstats
path: root/plugins/media/media-rygel.h
diff options
context:
space:
mode:
authorManuel Bachmann <manuel.bachmann@iot.bzh>2016-01-21 05:53:58 +0100
committerManuel Bachmann <manuel.bachmann@iot.bzh>2016-01-21 05:53:58 +0100
commit4c833aad4d3dcef303b34b70f86bb1e98153dc97 (patch)
tree4a118bd5f5c21ada0b9a2747d7ca5dcd81a2596f /plugins/media/media-rygel.h
parent9c066241bc2c1195f1bee5c17b39b023d257bd9e (diff)
Add choose, play, pause, stop to Media Plugin
We can now play/pause/stop a track after having chosen its index number (default is 0). Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
Diffstat (limited to 'plugins/media/media-rygel.h')
-rw-r--r--plugins/media/media-rygel.h22
1 files changed, 19 insertions, 3 deletions
diff --git a/plugins/media/media-rygel.h b/plugins/media/media-rygel.h
index 37fa53c4..da028c13 100644
--- a/plugins/media/media-rygel.h
+++ b/plugins/media/media-rygel.h
@@ -26,9 +26,12 @@
#include "local-def.h"
-#define URN_MEDIA_SERVER "urn:schemas-upnp-org:device:MediaServer:1"
-#define URN_CONTENT_DIR "urn:schemas-upnp-org:service:ContentDirectory"
+#define URN_MEDIA_SERVER "urn:schemas-upnp-org:device:MediaServer:1"
+#define URN_MEDIA_RENDERER "urn:schemas-upnp-org:device:MediaRenderer:1"
+#define URN_CONTENT_DIR "urn:schemas-upnp-org:service:ContentDirectory"
+#define URN_AV_TRANSPORT "urn:schemas-upnp-org:service:AVTransport"
+typedef enum { PLAY, PAUSE, STOP } State;
typedef struct dev_ctx dev_ctx_T;
struct dev_ctx {
@@ -36,13 +39,26 @@ struct dev_ctx {
GUPnPContext *context;
GUPnPDeviceInfo *device_info;
GUPnPServiceInfo *content_dir;
+ GUPnPServiceInfo *av_transport;
char *content_res;
+ int content_num;
+ State state;
+ State target_state;
};
+STATIC char* _rygel_list_raw (dev_ctx_T *, unsigned int *);
+STATIC char* _rygel_find_id_for_index (dev_ctx_T *, char *, unsigned int);
+STATIC char* _rygel_find_metadata_for_id (dev_ctx_T *, char *);
+STATIC char* _rygel_find_uri_for_metadata (dev_ctx_T *, char *);
+STATIC unsigned char _rygel_start_doing (dev_ctx_T *, char *, char *, State);
+STATIC unsigned char _rygel_find_av_transport (dev_ctx_T *);
STATIC void _rygel_device_cb (GUPnPControlPoint *, GUPnPDeviceProxy *, gpointer);
+STATIC void _rygel_av_transport_cb (GUPnPControlPoint *, GUPnPDeviceProxy *, gpointer);
STATIC void _rygel_content_cb (GUPnPServiceProxy *, GUPnPServiceProxyAction *, gpointer);
+STATIC void _rygel_metadata_cb (GUPnPServiceProxy *, GUPnPServiceProxyAction *, gpointer);
+STATIC void _rygel_select_cb (GUPnPServiceProxy *, GUPnPServiceProxyAction *, gpointer);
+STATIC void _rygel_do_cb (GUPnPServiceProxy *, GUPnPServiceProxyAction *, gpointer);
-static gint handler_cb;
static unsigned int client_count = 0;
static struct dev_ctx **dev_ctx = NULL;