2 * Devious: UPNP Control Point for Maemo 5
4 * Copyright (C) 2009 Kyle Cronan
6 * Author: Kyle Cronan <kyle@pbx.org>
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; version 3 of the License, or (at your option)
13 * This program is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
16 * Public License for more details.
18 * You should have received a copy of the GNU General Public License along
19 * with this library; if not, write to the Free Software Foundation, Inc.,
20 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24 #ifndef INCLUDED_DEVIOUS_H
25 #define INCLUDED_DEVIOUS_H 1
27 #define APPLICATION_NAME "Devious"
28 #define PLAY_WINDOW_TITLE "Now playing"
29 #define CHOOSE_TARGET "Choose target"
32 #define ICON_XALIGN 0.6
33 #define MEDIA_RENDERER "urn:schemas-upnp-org:device:MediaRenderer:*"
34 #define MEDIA_SERVER "urn:schemas-upnp-org:device:MediaServer:*"
35 #define CONTENT_DIR "urn:schemas-upnp-org:service:ContentDirectory"
36 #define CONNECTION_MANAGER "urn:schemas-upnp-org:service:ConnectionManager"
37 #define AV_TRANSPORT "urn:schemas-upnp-org:service:AVTransport"
41 GtkTreeRowReference *row;
42 GUPnPDeviceProxy *proxy;
44 struct proxy_set *set;
46 GtkTreeRowReference *current_selection;
50 GHashTable *renderers;
52 GtkListStore *renderer_list;
53 GtkListStore *server_list;
55 HildonPickerButton *renderer_picker;
56 GUPnPDIDLLiteParser *didl_parser;
60 GUPnPServiceProxy *content_dir;
62 guint32 starting_index;
64 GUPnPDIDLLiteParser *didl_parser;
77 void browse(GUPnPServiceProxy *content_dir, const char *container_id,
78 guint32 starting_index, guint32 requested_count,
79 GtkListStore *list, GUPnPDIDLLiteParser *didl_parser);
81 void set_panarea_padding(GtkWidget *child, gpointer data);
83 GtkWidget *new_selector(GtkListStore *list);
85 void content_select(HildonTouchSelector *selector, gint column, gpointer data);
87 GtkWidget *content_window(struct proxy *server, char *title,
90 void server_select(HildonTouchSelector *selector, gint column, gpointer data);
92 GtkWidget *main_window(HildonProgram *program, struct proxy_set *proxy_set);
94 void add_renderer(GUPnPDeviceProxy *proxy, struct proxy_set *proxy_set);
96 void add_server(GUPnPDeviceProxy *proxy, struct proxy_set *proxy_set);
98 void remove_server(GUPnPDeviceProxy *proxy, struct proxy_set *proxy_set);
100 void device_proxy_available(GUPnPControlPoint *cp,
101 GUPnPDeviceProxy *proxy, gpointer user_data);
103 void init_upnp(struct proxy_set *proxy_set);
105 #endif /* INCLUDED_DEVIOUS_H */