Audacious  $Id:Doxyfile42802007-03-2104:39:00Znenolod$
dbus-service.h
Go to the documentation of this file.
1 /*
2  * Audacious: A cross-platform multimedia player
3  * Copyright (c) 2007 Ben Tucker
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; under version 3 of the License.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program. If not, see <http://www.gnu.org/licenses>.
16  *
17  * The Audacious team does not consider modular code linking to
18  * Audacious or using our public API to be a derived work.
19  */
20 
21 #ifndef AUDACIOUS_DBUS_SERVICE_H
22 #define AUDACIOUS_DBUS_SERVICE_H
23 
24 #include <glib.h>
25 #include <libaudcore/core.h>
26 
27 #define DBUS_API_SUBJECT_TO_CHANGE
28 #include <dbus/dbus-glib.h>
29 
30 typedef struct {
31  GObject parent;
32  DBusGProxy *proxy;
34 
35 typedef struct {
36  GObjectClass parent_class;
38 
39 /* MPRIS API */
40 // Capabilities
41 enum {
50 };
51 
52 // Status
53 typedef enum {
59 
60 extern MprisPlayer * mpris;
61 
62 // MPRIS /
63 bool_t mpris_root_identity(MprisRoot *obj, char **identity,
64  GError **error);
65 bool_t mpris_root_quit(MprisPlayer *obj, GError **error);
66 
67 // MPRIS /Player
68 bool_t mpris_player_next(MprisPlayer *obj, GError **error);
69 bool_t mpris_player_prev(MprisPlayer *obj, GError **error);
70 bool_t mpris_player_pause(MprisPlayer *obj, GError **error);
71 bool_t mpris_player_stop(MprisPlayer *obj, GError **error);
72 bool_t mpris_player_play(MprisPlayer *obj, GError **error);
73 bool_t mpris_player_repeat(MprisPlayer *obj, bool_t rpt, GError **error);
74 bool_t mpris_player_get_status(MprisPlayer *obj, GValueArray **status,
75  GError **error);
76 bool_t mpris_player_get_metadata(MprisPlayer *obj, GHashTable **metadata,
77  GError **error);
78 bool_t mpris_player_get_caps(MprisPlayer *obj, int *capabilities,
79  GError **error);
80 bool_t mpris_player_volume_set(MprisPlayer *obj, int vol, GError **error);
81 bool_t mpris_player_volume_get(MprisPlayer *obj, int *vol,
82  GError **error);
83 bool_t mpris_player_position_set(MprisPlayer *obj, int pos, GError **error);
84 bool_t mpris_player_position_get(MprisPlayer *obj, int *pos,
85  GError **error);
86 enum {
91 };
92 
93 enum {
96 };
97 
98 bool_t mpris_emit_track_change(MprisPlayer *obj);
99 bool_t mpris_emit_status_change(MprisPlayer *obj, PlaybackStatus status);
100 bool_t mpris_emit_caps_change(MprisPlayer *obj);
101 bool_t mpris_emit_tracklist_change(MprisTrackList *obj, int playlist);
102 
103 // MPRIS /TrackList
104 bool_t mpris_tracklist_get_metadata(MprisTrackList *obj, int pos,
105  GHashTable **metadata, GError **error);
106 bool_t mpris_tracklist_get_current_track(MprisTrackList *obj, int *pos,
107  GError **error);
108 bool_t mpris_tracklist_get_length(MprisTrackList *obj, int *length,
109  GError **error);
110 bool_t mpris_tracklist_add_track(MprisTrackList *obj, char *uri,
111  bool_t play, GError **error);
112 bool_t mpris_tracklist_del_track(MprisTrackList *obj, int pos,
113  GError **error);
114 bool_t mpris_tracklist_loop(MprisTrackList *obj, bool_t loop,
115  GError **error);
116 bool_t mpris_tracklist_random(MprisTrackList *obj, bool_t random,
117  GError **error);
118 
119 /* Legacy API */
120 // Audacious General Information
121 bool_t audacious_rc_version(RemoteObject *obj, char **version, GError **error);
125  bool_t *is_main_win, GError **error);
127  GError **error);
129  GError **error);
131  GError **error);
133  bool_t *is_pl_win,
134  GError **error);
136  GError **error);
138  GError **error);
139 
140 // Playback Information/Manipulation
145  GError **error);
147  GError **error);
149  GError **error);
150 bool_t audacious_rc_status(RemoteObject *obj, char **status,
151  GError **error);
152 bool_t audacious_rc_info(RemoteObject *obj, int *rate, int *freq,
153  int *nch, GError **error);
154 bool_t audacious_rc_time(RemoteObject *obj, int *time, GError **error);
155 bool_t audacious_rc_seek(RemoteObject *obj, unsigned int pos, GError **error);
156 bool_t audacious_rc_volume(RemoteObject *obj, int *vl, int *vr,
157  GError **error);
158 bool_t audacious_rc_set_volume(RemoteObject *obj, int vl, int vr,
159  GError **error);
160 bool_t audacious_rc_balance(RemoteObject *obj, int *balance,
161  GError **error);
162 
163 // Playlist Information/Manipulation
164 bool_t audacious_rc_position(RemoteObject *obj, int *pos, GError **error);
167 bool_t audacious_rc_length(RemoteObject *obj, int *length,
168  GError **error);
169 bool_t audacious_rc_song_title(RemoteObject *obj, unsigned int pos,
170  char **title, GError **error);
171 bool_t audacious_rc_song_filename(RemoteObject *obj, unsigned int pos,
172  char **filename, GError **error);
173 bool_t audacious_rc_song_length(RemoteObject *obj, unsigned int pos, int *length,
174  GError **error);
175 bool_t audacious_rc_song_frames(RemoteObject *obj, unsigned int pos, int *length,
176  GError **error);
177 bool_t audacious_rc_song_tuple(RemoteObject *obj, unsigned int pos, char *tuple,
178  GValue *value, GError **error);
179 bool_t audacious_rc_jump(RemoteObject *obj, unsigned int pos, GError **error);
180 bool_t audacious_rc_add(RemoteObject *obj, char *file, GError **error);
182  GError **error);
184  GError * * error);
186  GError * * error);
188  filenames, GError * * error);
189 bool_t audacious_rc_delete(RemoteObject *obj, unsigned int pos, GError **error);
192  GError **error);
195  GError **error);
198  GError **error);
200 
201 /* new */
205 bool_t audacious_rc_show_filebrowser(RemoteObject *obj, bool_t show, GError **error); //new Nov 8
208 bool_t audacious_rc_queue_get_list_pos(RemoteObject *obj, int qpos, int *pos, GError **error);
209 bool_t audacious_rc_queue_get_queue_pos(RemoteObject *obj, int pos, int *qpos, GError **error);
210 bool_t audacious_rc_get_info(RemoteObject *obj, int *rate, int *freq, int *nch, GError **error);
212 bool_t audacious_rc_get_playqueue_length(RemoteObject *obj, int *length, GError **error);
213 bool_t audacious_rc_playqueue_add(RemoteObject *obj, int pos, GError **error);
214 bool_t audacious_rc_playqueue_remove(RemoteObject *obj, int pos, GError **error);
216 bool_t audacious_rc_playqueue_is_queued(RemoteObject *obj, int pos, bool_t *is_queued, GError **error);
217 bool_t audacious_rc_playlist_ins_url_string(RemoteObject *obj, char *url, int pos, GError **error);
219 bool_t audacious_rc_playlist_add(RemoteObject *obj, gpointer list, GError **error);
220 
221 /* new on nov 7 */
222 bool_t audacious_rc_get_eq(RemoteObject *obj, double *preamp, GArray **bands, GError **error);
223 bool_t audacious_rc_get_eq_preamp(RemoteObject *obj, double *preamp, GError **error);
224 bool_t audacious_rc_get_eq_band(RemoteObject *obj, int band, double *value, GError **error);
225 bool_t audacious_rc_set_eq(RemoteObject *obj, double preamp, GArray *bands, GError **error);
226 bool_t audacious_rc_set_eq_preamp(RemoteObject *obj, double preamp, GError **error);
227 bool_t audacious_rc_set_eq_band(RemoteObject *obj, int band, double value, GError **error);
229 
230 /* new in 2.4 */
231 bool_t audacious_rc_get_active_playlist_name(RemoteObject *obj, char **title, GError **error);
232 
233 /* new in 3.1 */
234 bool_t audacious_rc_stop_after (RemoteObject * obj, bool_t * is_stopping, GError * * error);
236 
237 #endif /* AUDACIOUS_DBUS_SERVICE_H */