Audacious  $Id:Doxyfile42802007-03-2104:39:00Znenolod$
dbus-service.h
Go to the documentation of this file.
1 /*
2  * dbus-service.h
3  * Copyright 2007-2011 Ben Tucker, Yoshiki Yazawa, Matti Hämäläinen,
4  * John Lindgren, and William Pitcock
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are met:
8  *
9  * 1. Redistributions of source code must retain the above copyright notice,
10  * this list of conditions, and the following disclaimer.
11  *
12  * 2. Redistributions in binary form must reproduce the above copyright notice,
13  * this list of conditions, and the following disclaimer in the documentation
14  * provided with the distribution.
15  *
16  * This software is provided "as is" and without any warranty, express or
17  * implied. In no event shall the authors be liable for any damages arising from
18  * the use of this software.
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, void * 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 */
bool_t audacious_rc_toggle_repeat(RemoteObject *obj, GError **error)
Definition: dbus.c:836
bool_t mpris_player_next(MprisPlayer *obj, GError **error)
Definition: dbus.c:330
bool_t audacious_rc_show_about_box(RemoteObject *obj, bool_t show, GError **error)
Definition: dbus.c:873
bool_t audacious_rc_get_active_playlist_name(RemoteObject *obj, char **title, GError **error)
Definition: dbus.c:1033
bool_t mpris_player_play(MprisPlayer *obj, GError **error)
Definition: dbus.c:354
struct RemoteObject MprisPlayer
bool_t audacious_rc_set_eq_preamp(RemoteObject *obj, double preamp, GError **error)
Definition: dbus.c:1015
bool_t audacious_rc_quit(RemoteObject *obj, GError **error)
Definition: dbus.c:556
bool_t mpris_player_repeat(MprisPlayer *obj, bool_t rpt, GError **error)
Definition: dbus.c:360
bool_t mpris_root_quit(MprisPlayer *obj, GError **error)
Definition: dbus.c:322
bool_t audacious_rc_playlist_ins_url_string(RemoteObject *obj, char *url, int pos, GError **error)
Definition: dbus.c:966
bool_t mpris_tracklist_get_current_track(MprisTrackList *obj, int *pos, GError **error)
Definition: dbus.c:509
bool_t audacious_rc_toggle_aot(RemoteObject *obj, bool_t ontop, GError **error)
Definition: dbus.c:908
bool_t audacious_rc_status(RemoteObject *obj, char **status, GError **error)
Definition: dbus.c:632
const char filename
Definition: misc-api.h:85
bool_t audacious_rc_version(RemoteObject *obj, char **version, GError **error)
Definition: dbus.c:550
playlist
Definition: playlist-api.h:122
bool_t audacious_rc_open_list_to_temp(RemoteObject *obj, char **filenames, GError **error)
Definition: dbus.c:798
bool_t mpris_player_get_metadata(MprisPlayer *obj, GHashTable **metadata, GError **error)
Definition: dbus.c:394
bool_t audacious_rc_add(RemoteObject *obj, char *file, GError **error)
Definition: dbus.c:764
bool_t audacious_rc_song_title(RemoteObject *obj, unsigned int pos, char **title, GError **error)
Definition: dbus.c:705
bool_t mpris_player_prev(MprisPlayer *obj, GError **error)
Definition: dbus.c:336
bool_t audacious_rc_length(RemoteObject *obj, int *length, GError **error)
Definition: dbus.c:699
bool_t mpris_root_identity(MprisRoot *obj, char **identity, GError **error)
Definition: dbus.c:316
bool_t audacious_rc_delete(RemoteObject *obj, unsigned int pos, GError **error)
Definition: dbus.c:805
bool_t audacious_rc_show_prefs_box(RemoteObject *obj, bool_t show, GError **error)
Definition: dbus.c:867
bool_t audacious_rc_show_filebrowser(RemoteObject *obj, bool_t show, GError **error)
Definition: dbus.c:887
bool_t play
Definition: main.c:58
bool_t audacious_rc_set_volume(RemoteObject *obj, int vl, int vr, GError **error)
Definition: dbus.c:667
bool_t mpris_player_get_status(MprisPlayer *obj, GValueArray **status, GError **error)
Definition: dbus.c:383
bool_t audacious_rc_pause(RemoteObject *obj, GError **error)
Definition: dbus.c:602
bool_t audacious_rc_play(RemoteObject *obj, GError **error)
Definition: dbus.c:596
bool_t audacious_rc_playlist_enqueue_to_temp(RemoteObject *obj, char *url, GError **error)
Definition: dbus.c:978
bool_t audacious_rc_activate(RemoteObject *obj, GError **error)
bool_t audacious_rc_song_frames(RemoteObject *obj, unsigned int pos, int *length, GError **error)
Definition: dbus.c:736
bool_t mpris_player_position_set(MprisPlayer *obj, int pos, GError **error)
Definition: dbus.c:425
bool_t mpris_tracklist_loop(MprisTrackList *obj, bool_t loop, GError **error)
Definition: dbus.c:535
struct RemoteObject MprisRoot
bool_t audacious_rc_seek(RemoteObject *obj, unsigned int pos, GError **error)
Definition: dbus.c:655
bool_t audacious_rc_stop(RemoteObject *obj, GError **error)
Definition: dbus.c:608
struct RemoteObjectClass MprisTrackListClass
bool_t audacious_rc_position(RemoteObject *obj, int *pos, GError **error)
Definition: dbus.c:681
MprisPlayer * mpris
Definition: dbus.c:47
bool_t audacious_rc_balance(RemoteObject *obj, int *balance, GError **error)
Definition: dbus.c:673
Index Index bool_t
Definition: playlist-api.h:122
bool_t audacious_rc_add_list(RemoteObject *obj, char **filenames, GError **error)
Definition: dbus.c:784
bool_t audacious_rc_info(RemoteObject *obj, int *rate, int *freq, int *nch, GError **error)
Definition: dbus.c:642
bool_t audacious_rc_show_playlist(RemoteObject *obj, bool_t show, GError **error)
bool_t mpris_emit_status_change(MprisPlayer *obj, PlaybackStatus status)
Definition: dbus.c:468
bool_t audacious_rc_volume(RemoteObject *obj, int *vl, int *vr, GError **error)
Definition: dbus.c:661
bool_t audacious_rc_paused(RemoteObject *obj, bool_t *is_paused, GError **error)
Definition: dbus.c:620
bool_t audacious_rc_playlist_add(RemoteObject *obj, void *list, GError **error)
Definition: dbus.c:973
bool_t audacious_rc_get_eq(RemoteObject *obj, double *preamp, GArray **bands, GError **error)
Definition: dbus.c:986
bool_t audacious_rc_auto_advance(RemoteObject *obj, bool_t *is_advance, GError **error)
Definition: dbus.c:818
bool_t mpris_tracklist_add_track(MprisTrackList *obj, char *uri, bool_t play, GError **error)
Definition: dbus.c:522
bool_t audacious_rc_time(RemoteObject *obj, int *time, GError **error)
Definition: dbus.c:649
DBusGProxy * proxy
Definition: dbus-service.h:32
bool_t audacious_rc_reverse(RemoteObject *obj, GError **error)
Definition: dbus.c:693
bool_t audacious_rc_playqueue_is_queued(RemoteObject *obj, int pos, bool_t *is_queued, GError **error)
Definition: dbus.c:959
bool_t mpris_player_volume_set(MprisPlayer *obj, int vol, GError **error)
Definition: dbus.c:413
bool_t mpris_tracklist_random(MprisTrackList *obj, bool_t random, GError **error)
Definition: dbus.c:542
bool_t audacious_rc_stop_after(RemoteObject *obj, bool_t *is_stopping, GError **error)
Definition: dbus.c:854
bool_t audacious_rc_get_info(RemoteObject *obj, int *rate, int *freq, int *nch, GError **error)
Definition: dbus.c:901
bool_t audacious_rc_main_win_visible(RemoteObject *obj, bool_t *is_main_win, GError **error)
Definition: dbus.c:568
static GError * error
Definition: audctrl.c:30
bool_t audacious_rc_advance(RemoteObject *obj, GError **error)
Definition: dbus.c:687
bool_t audacious_rc_playqueue_add(RemoteObject *obj, int pos, GError **error)
Definition: dbus.c:914
bool_t mpris_player_get_caps(MprisPlayer *obj, int *capabilities, GError **error)
Definition: dbus.c:407
bool_t mpris_player_volume_get(MprisPlayer *obj, int *vol, GError **error)
Definition: dbus.c:419
bool_t audacious_rc_equalizer_visible(RemoteObject *obj, bool_t *is_eq_win, GError **error)
bool_t audacious_rc_equalizer_activate(RemoteObject *obj, bool_t active, GError **error)
Definition: dbus.c:1027
bool_t audacious_rc_eject(RemoteObject *obj, GError **error)
Definition: dbus.c:562
bool_t audacious_rc_get_eq_band(RemoteObject *obj, int band, double *value, GError **error)
Definition: dbus.c:1002
bool_t audacious_rc_toggle_stop_after(RemoteObject *obj, GError **error)
Definition: dbus.c:860
static bool_t active
Definition: equalizer.c:53
bool_t audacious_rc_get_eq_preamp(RemoteObject *obj, double *preamp, GError **error)
Definition: dbus.c:996
bool_t mpris_tracklist_get_length(MprisTrackList *obj, int *length, GError **error)
Definition: dbus.c:516
bool_t audacious_rc_get_playqueue_length(RemoteObject *obj, int *length, GError **error)
Definition: dbus.c:938
bool_t audacious_rc_song_tuple(RemoteObject *obj, unsigned int pos, char *tuple, GValue *value, GError **error)
Definition: dbus.c:743
bool_t audacious_rc_playqueue_clear(RemoteObject *obj, GError **error)
Definition: dbus.c:931
bool_t mpris_player_stop(MprisPlayer *obj, GError **error)
Definition: dbus.c:348
bool_t audacious_rc_show_equalizer(RemoteObject *obj, bool_t show, GError **error)
bool_t audacious_rc_queue_get_list_pos(RemoteObject *obj, int qpos, int *pos, GError **error)
Definition: dbus.c:945
bool_t audacious_rc_jump(RemoteObject *obj, unsigned int pos, GError **error)
Definition: dbus.c:758
bool_t mpris_tracklist_del_track(MprisTrackList *obj, int pos, GError **error)
Definition: dbus.c:529
static int rate
Definition: equalizer.c:54
bool_t mpris_emit_caps_change(MprisPlayer *obj)
Definition: dbus.c:438
bool_t audacious_rc_repeat(RemoteObject *obj, bool_t *is_repeat, GError **error)
Definition: dbus.c:830
GObjectClass parent_class
Definition: dbus-service.h:36
bool_t audacious_rc_toggle_shuffle(RemoteObject *obj, GError **error)
Definition: dbus.c:848
bool_t mpris_emit_tracklist_change(MprisTrackList *obj, int playlist)
Definition: dbus.c:486
bool_t audacious_rc_song_length(RemoteObject *obj, unsigned int pos, int *length, GError **error)
Definition: dbus.c:729
bool_t audacious_rc_set_eq_band(RemoteObject *obj, int band, double value, GError **error)
Definition: dbus.c:1021
bool_t audacious_rc_open_list(RemoteObject *obj, char **filenames, GError **error)
Definition: dbus.c:791
bool_t version
Definition: main.c:62
bool_t audacious_rc_show_main_win(RemoteObject *obj, bool_t show, GError **error)
Definition: dbus.c:575
bool_t audacious_rc_get_tuple_fields(RemoteObject *obj, char ***fields, GError **error)
Definition: dbus.c:582
bool_t mpris_player_position_get(MprisPlayer *obj, int *pos, GError **error)
Definition: dbus.c:431
bool_t audacious_rc_show_jtf_box(RemoteObject *obj, bool_t show, GError **error)
Definition: dbus.c:879
PlaybackStatus
Definition: dbus-service.h:53
struct RemoteObjectClass MprisPlayerClass
bool_t audacious_rc_playqueue_remove(RemoteObject *obj, int pos, GError **error)
Definition: dbus.c:920
bool_t audacious_rc_toggle_auto_advance(RemoteObject *obj, GError **error)
Definition: dbus.c:824
bool_t audacious_rc_playlist_visible(RemoteObject *obj, bool_t *is_pl_win, GError **error)
struct RemoteObject MprisTrackList
char ** filenames
Definition: main.c:56
bool_t audacious_rc_song_filename(RemoteObject *obj, unsigned int pos, char **filename, GError **error)
Definition: dbus.c:717
bool_t audacious_rc_add_url(RemoteObject *obj, char *url, GError **error)
Definition: dbus.c:769
GObject parent
Definition: dbus-service.h:31
bool_t audacious_rc_clear(RemoteObject *obj, GError **error)
Definition: dbus.c:811
bool_t audacious_rc_play_pause(RemoteObject *obj, GError **error)
Definition: dbus.c:895
bool_t audacious_rc_queue_get_queue_pos(RemoteObject *obj, int pos, int *qpos, GError **error)
Definition: dbus.c:952
bool_t audacious_rc_stopped(RemoteObject *obj, bool_t *is_stopped, GError **error)
Definition: dbus.c:626
bool_t mpris_emit_track_change(MprisPlayer *obj)
Definition: dbus.c:444
bool_t mpris_tracklist_get_metadata(MprisTrackList *obj, int pos, GHashTable **metadata, GError **error)
Definition: dbus.c:499
bool_t audacious_rc_shuffle(RemoteObject *obj, bool_t *is_shuffle, GError **error)
Definition: dbus.c:842
bool_t audacious_rc_playing(RemoteObject *obj, bool_t *is_playing, GError **error)
Definition: dbus.c:614
bool_t audacious_rc_set_eq(RemoteObject *obj, double preamp, GArray *bands, GError **error)
Definition: dbus.c:1008
struct RemoteObjectClass MprisRootClass
bool_t mpris_player_pause(MprisPlayer *obj, GError **error)
Definition: dbus.c:342