2
* arch-tag: Header for Rhythmbox remote client proxy interface
4
* Copyright (C) 2004 Colin Walters <walters@verbum.org>
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public
8
* License as published by the Free Software Foundation; either
9
* version 2 of the License, or (at your option) any later version.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Library General Public License for more details.
16
* You should have received a copy of the GNU General Public
17
* License along with this library; if not, write to the
18
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19
* Boston, MA 02111-1307, USA.
22
#ifndef __RB_REMOTE_CLIENT_PROXY_H__
23
#define __RB_REMOTE_CLIENT_PROXY_H__
25
#include <glib-object.h>
26
#include "rb-remote-common.h"
30
#define RB_TYPE_REMOTE_CLIENT_PROXY (rb_remote_client_proxy_get_type ())
31
#define RB_REMOTE_CLIENT_PROXY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RB_TYPE_REMOTE_CLIENT_PROXY, RBRemoteClientProxy))
32
#define RB_IS_REMOTE_CLIENT_PROXY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RB_TYPE_REMOTE_CLIENT_PROXY))
33
#define RB_REMOTE_CLIENT_PROXY_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), RB_TYPE_REMOTE_CLIENT_PROXY, RBRemoteClientProxyIface))
35
typedef struct _RBRemoteClientProxy RBRemoteClientProxy; /* Dummy typedef */
36
typedef struct _RBRemoteClientProxyIface RBRemoteClientProxyIface;
38
struct _RBRemoteClientProxy
43
struct _RBRemoteClientProxyIface
45
GTypeInterface g_iface;
48
void (*handle_uri) (RBRemoteClientProxy *proxy, const char *uri);
49
void (*add_to_library) (RBRemoteClientProxy *proxy, const char *uri);
50
void (*play_uri) (RBRemoteClientProxy *proxy, const char *uri);
52
RBRemoteSong *(*get_playing_song) (RBRemoteClientProxy *proxy);
54
void (*grab_focus) (RBRemoteClientProxy *proxy);
55
void (*toggle_visibility) (RBRemoteClientProxy *proxy);
56
void (*set_visibility) (RBRemoteClientProxy *proxy, gboolean visible);
57
gboolean (*get_visibility) (RBRemoteClientProxy *proxy);
59
void (*toggle_shuffle) (RBRemoteClientProxy *proxy);
60
void (*set_shuffle) (RBRemoteClientProxy *proxy, gboolean shuffle);
61
gboolean (*get_shuffle) (RBRemoteClientProxy *proxy);
62
void (*toggle_repeat) (RBRemoteClientProxy *proxy);
63
void (*set_repeat) (RBRemoteClientProxy *proxy, gboolean repeat);
64
gboolean (*get_repeat) (RBRemoteClientProxy *proxy);
66
void (*toggle_playing) (RBRemoteClientProxy *proxy);
67
void (*play) (RBRemoteClientProxy *proxy);
68
void (*pause) (RBRemoteClientProxy *proxy);
70
long (*get_playing_time) (RBRemoteClientProxy *proxy);
71
void (*set_playing_time) (RBRemoteClientProxy *proxy, long time);
72
void (*seek) (RBRemoteClientProxy *proxy, long offset);
73
void (*set_rating) (RBRemoteClientProxy *proxy, double rating);
75
void (*jump_next) (RBRemoteClientProxy *proxy);
76
void (*jump_previous) (RBRemoteClientProxy *proxy);
78
void (*set_volume) (RBRemoteClientProxy *proxy, float volume);
79
float (*get_volume) (RBRemoteClientProxy *proxy);
80
void (*toggle_mute) (RBRemoteClientProxy *proxy);
82
void (*quit) (RBRemoteClientProxy *proxy);
85
GType rb_remote_client_proxy_get_type (void) G_GNUC_CONST;
87
void rb_remote_client_proxy_handle_uri (RBRemoteClientProxy *proxy, const char *uri);
88
void rb_remote_client_proxy_add_to_library (RBRemoteClientProxy *proxy, const char *uri);
89
void rb_remote_client_proxy_play_uri (RBRemoteClientProxy *proxy, const char *uri);
91
RBRemoteSong *rb_remote_client_proxy_get_playing_song (RBRemoteClientProxy *proxy);
93
void rb_remote_client_proxy_grab_focus (RBRemoteClientProxy *proxy);
94
void rb_remote_client_proxy_toggle_visibility (RBRemoteClientProxy *proxy);
95
void rb_remote_client_proxy_set_visibility (RBRemoteClientProxy *proxy, gboolean visible);
96
gboolean rb_remote_client_proxy_get_visibility (RBRemoteClientProxy *proxy);
98
void rb_remote_client_proxy_toggle_shuffle (RBRemoteClientProxy *proxy);
99
void rb_remote_client_proxy_set_shuffle (RBRemoteClientProxy *proxy, gboolean shuffle);
100
gboolean rb_remote_client_proxy_get_shuffle (RBRemoteClientProxy *proxy);
101
void rb_remote_client_proxy_toggle_repeat (RBRemoteClientProxy *proxy);
102
void rb_remote_client_proxy_set_repeat (RBRemoteClientProxy *proxy, gboolean repeat);
103
gboolean rb_remote_client_proxy_get_repeat (RBRemoteClientProxy *proxy);
105
void rb_remote_client_proxy_toggle_playing (RBRemoteClientProxy *proxy);
106
void rb_remote_client_proxy_play (RBRemoteClientProxy *proxy);
107
void rb_remote_client_proxy_pause (RBRemoteClientProxy *proxy);
109
long rb_remote_client_proxy_get_playing_time (RBRemoteClientProxy *proxy);
110
void rb_remote_client_proxy_set_playing_time (RBRemoteClientProxy *proxy, long time);
111
void rb_remote_client_proxy_seek (RBRemoteClientProxy *proxy, long offset);
112
void rb_remote_client_proxy_set_rating (RBRemoteClientProxy *proxy, double rating);
114
void rb_remote_client_proxy_jump_next (RBRemoteClientProxy *proxy);
115
void rb_remote_client_proxy_jump_previous (RBRemoteClientProxy *proxy);
117
void rb_remote_client_proxy_set_volume (RBRemoteClientProxy *proxy, float volume);
118
float rb_remote_client_proxy_get_volume (RBRemoteClientProxy *proxy);
119
void rb_remote_client_proxy_toggle_mute (RBRemoteClientProxy *proxy);
121
void rb_remote_client_proxy_quit (RBRemoteClientProxy *proxy);
125
#endif /* __RB_REMOTE_CLIENT_PROXY_H__ */