This file is indexed.

/usr/include/audacious/dbus-service.h is in audacious-dev 3.4.3-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
/*
 * dbus-service.h
 * Copyright 2007-2011 Ben Tucker, Yoshiki Yazawa, Matti Hämäläinen,
 *                     John Lindgren, and William Pitcock
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions, and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions, and the following disclaimer in the documentation
 *    provided with the distribution.
 *
 * This software is provided "as is" and without any warranty, express or
 * implied. In no event shall the authors be liable for any damages arising from
 * the use of this software.
 */

#ifndef AUDACIOUS_DBUS_SERVICE_H
#define AUDACIOUS_DBUS_SERVICE_H

#include <glib.h>
#include <libaudcore/core.h>

#define DBUS_API_SUBJECT_TO_CHANGE
#include <dbus/dbus-glib.h>

typedef struct {
    GObject parent;
    DBusGProxy *proxy;
} RemoteObject, MprisRoot, MprisPlayer, MprisTrackList;

typedef struct {
    GObjectClass parent_class;
} RemoteObjectClass, MprisRootClass, MprisPlayerClass, MprisTrackListClass;

/* MPRIS API */
// Capabilities
enum {
    MPRIS_CAPS_NONE                     = 0,
    MPRIS_CAPS_CAN_GO_NEXT              = 1 << 0,
    MPRIS_CAPS_CAN_GO_PREV              = 1 << 1,
    MPRIS_CAPS_CAN_PAUSE                = 1 << 2,
    MPRIS_CAPS_CAN_PLAY                 = 1 << 3,
    MPRIS_CAPS_CAN_SEEK                 = 1 << 4,
    MPRIS_CAPS_CAN_PROVIDE_METADATA     = 1 << 5,
    MPRIS_CAPS_PROVIDES_TIMING          = 1 << 6,
};

// Status
typedef enum {
    MPRIS_STATUS_INVALID = -1,
    MPRIS_STATUS_PLAY = 0,
    MPRIS_STATUS_PAUSE = 1,
    MPRIS_STATUS_STOP = 2,
} PlaybackStatus;

extern MprisPlayer * mpris;

// MPRIS /
bool_t mpris_root_identity(MprisRoot *obj, char **identity,
                             GError **error);
bool_t mpris_root_quit(MprisPlayer *obj, GError **error);

// MPRIS /Player
bool_t mpris_player_next(MprisPlayer *obj, GError **error);
bool_t mpris_player_prev(MprisPlayer *obj, GError **error);
bool_t mpris_player_pause(MprisPlayer *obj, GError **error);
bool_t mpris_player_stop(MprisPlayer *obj, GError **error);
bool_t mpris_player_play(MprisPlayer *obj, GError **error);
bool_t mpris_player_repeat(MprisPlayer *obj, bool_t rpt, GError **error);
bool_t mpris_player_get_status(MprisPlayer *obj, GValueArray **status,
                                 GError **error);
bool_t mpris_player_get_metadata(MprisPlayer *obj, GHashTable **metadata,
                                   GError **error);
bool_t mpris_player_get_caps(MprisPlayer *obj, int *capabilities,
                                 GError **error);
bool_t mpris_player_volume_set(MprisPlayer *obj, int vol, GError **error);
bool_t mpris_player_volume_get(MprisPlayer *obj, int *vol,
                                 GError **error);
bool_t mpris_player_position_set(MprisPlayer *obj, int pos, GError **error);
bool_t mpris_player_position_get(MprisPlayer *obj, int *pos,
                                   GError **error);
enum {
    TRACK_CHANGE_SIG,
    STATUS_CHANGE_SIG,
    CAPS_CHANGE_SIG,
    LAST_SIG
};

enum {
    TRACKLIST_CHANGE_SIG,
    LAST_TRACKLIST_SIG
};

bool_t mpris_emit_track_change(MprisPlayer *obj);
bool_t mpris_emit_status_change(MprisPlayer *obj, PlaybackStatus status);
bool_t mpris_emit_caps_change(MprisPlayer *obj);
bool_t mpris_emit_tracklist_change(MprisTrackList *obj, int playlist);

// MPRIS /TrackList
bool_t mpris_tracklist_get_metadata(MprisTrackList *obj, int pos,
                                      GHashTable **metadata, GError **error);
bool_t mpris_tracklist_get_current_track(MprisTrackList *obj, int *pos,
                                           GError **error);
bool_t mpris_tracklist_get_length(MprisTrackList *obj, int *length,
                                    GError **error);
bool_t mpris_tracklist_add_track(MprisTrackList *obj, char *uri,
                                   bool_t play, GError **error);
bool_t mpris_tracklist_del_track(MprisTrackList *obj, int pos,
                                   GError **error);
bool_t mpris_tracklist_loop(MprisTrackList *obj, bool_t loop,
                              GError **error);
bool_t mpris_tracklist_random(MprisTrackList *obj, bool_t random,
                                GError **error);

/* Legacy API */
// Audacious General Information
bool_t audacious_rc_version(RemoteObject *obj, char **version, GError **error);
bool_t audacious_rc_quit(RemoteObject *obj, GError **error);
bool_t audacious_rc_eject(RemoteObject *obj, GError **error);
bool_t audacious_rc_main_win_visible(RemoteObject *obj,
                                       bool_t *is_main_win, GError **error);
bool_t audacious_rc_show_main_win(RemoteObject *obj, bool_t show,
                                    GError **error);
bool_t audacious_rc_equalizer_visible(RemoteObject *obj, bool_t *is_eq_win,
                                        GError **error);
bool_t audacious_rc_show_equalizer(RemoteObject *obj, bool_t show,
                                     GError **error);
bool_t audacious_rc_playlist_visible(RemoteObject *obj,
                                       bool_t *is_pl_win,
                                       GError **error);
bool_t audacious_rc_show_playlist(RemoteObject *obj, bool_t show,
                                    GError **error);
bool_t audacious_rc_get_tuple_fields(RemoteObject *obj, char ***fields,
                                    GError **error);

// Playback Information/Manipulation
bool_t audacious_rc_play(RemoteObject *obj, GError **error);
bool_t audacious_rc_pause(RemoteObject *obj, GError **error);
bool_t audacious_rc_stop(RemoteObject *obj, GError **error);
bool_t audacious_rc_playing(RemoteObject *obj, bool_t *is_playing,
                              GError **error);
bool_t audacious_rc_paused(RemoteObject *obj, bool_t *is_paused,
                             GError **error);
bool_t audacious_rc_stopped(RemoteObject *obj, bool_t *is_stopped,
                              GError **error);
bool_t audacious_rc_status(RemoteObject *obj, char **status,
                             GError **error);
bool_t audacious_rc_info(RemoteObject *obj, int *rate, int *freq,
                           int *nch, GError **error);
bool_t audacious_rc_time(RemoteObject *obj, int *time, GError **error);
bool_t audacious_rc_seek(RemoteObject *obj, unsigned int pos, GError **error);
bool_t audacious_rc_volume(RemoteObject *obj, int *vl, int *vr,
                             GError **error);
bool_t audacious_rc_set_volume(RemoteObject *obj, int vl, int vr,
                                 GError **error);
bool_t audacious_rc_balance(RemoteObject *obj, int *balance,
                              GError **error);

// Playlist Information/Manipulation
bool_t audacious_rc_position(RemoteObject *obj, int *pos, GError **error);
bool_t audacious_rc_advance(RemoteObject *obj, GError **error);
bool_t audacious_rc_reverse(RemoteObject *obj, GError **error);
bool_t audacious_rc_length(RemoteObject *obj, int *length,
                             GError **error);
bool_t audacious_rc_song_title(RemoteObject *obj, unsigned int pos,
                                 char **title, GError **error);
bool_t audacious_rc_song_filename(RemoteObject *obj, unsigned int pos,
                                    char **filename, GError **error);
bool_t audacious_rc_song_length(RemoteObject *obj, unsigned int pos, int *length,
                                  GError **error);
bool_t audacious_rc_song_frames(RemoteObject *obj, unsigned int pos, int *length,
                                  GError **error);
bool_t audacious_rc_song_tuple(RemoteObject *obj, unsigned int pos, char *tuple,
                                 GValue *value, GError **error);
bool_t audacious_rc_jump(RemoteObject *obj, unsigned int pos, GError **error);
bool_t audacious_rc_add(RemoteObject *obj, char *file, GError **error);
bool_t audacious_rc_add_url(RemoteObject *obj, char *url,
                              GError **error);
bool_t audacious_rc_add_list (RemoteObject * obj, char * * filenames,
 GError * * error);
bool_t audacious_rc_open_list (RemoteObject * obj, char * * filenames,
 GError * * error);
bool_t audacious_rc_open_list_to_temp (RemoteObject * obj, char * *
 filenames, GError * * error);
bool_t audacious_rc_delete(RemoteObject *obj, unsigned int pos, GError **error);
bool_t audacious_rc_clear(RemoteObject *obj, GError **error);
bool_t audacious_rc_auto_advance(RemoteObject *obj, bool_t *is_advance,
                                   GError **error);
bool_t audacious_rc_toggle_auto_advance(RemoteObject *obj, GError **error);
bool_t audacious_rc_repeat(RemoteObject *obj, bool_t *is_repeat,
                             GError **error);
bool_t audacious_rc_toggle_repeat(RemoteObject *obj, GError **error);
bool_t audacious_rc_shuffle(RemoteObject *obj, bool_t *is_shuffle,
                              GError **error);
bool_t audacious_rc_toggle_shuffle(RemoteObject *obj, GError **error);

/* new */
bool_t audacious_rc_show_prefs_box(RemoteObject *obj, bool_t show, GError **error);
bool_t audacious_rc_show_about_box(RemoteObject *obj, bool_t show, GError **error);
bool_t audacious_rc_show_jtf_box(RemoteObject *obj, bool_t show, GError **error);
bool_t audacious_rc_show_filebrowser(RemoteObject *obj, bool_t show, GError **error); //new Nov 8
bool_t audacious_rc_play_pause(RemoteObject *obj, GError **error);
bool_t audacious_rc_activate(RemoteObject *obj, GError **error);
bool_t audacious_rc_queue_get_list_pos(RemoteObject *obj, int qpos, int *pos, GError **error);
bool_t audacious_rc_queue_get_queue_pos(RemoteObject *obj, int pos, int *qpos, GError **error);
bool_t audacious_rc_get_info(RemoteObject *obj, int *rate, int *freq, int *nch, GError **error);
bool_t audacious_rc_toggle_aot(RemoteObject *obj, bool_t ontop, GError **error);
bool_t audacious_rc_get_playqueue_length(RemoteObject *obj, int *length, GError **error);
bool_t audacious_rc_playqueue_add(RemoteObject *obj, int pos, GError **error);
bool_t audacious_rc_playqueue_remove(RemoteObject *obj, int pos, GError **error);
bool_t audacious_rc_playqueue_clear(RemoteObject *obj, GError **error);
bool_t audacious_rc_playqueue_is_queued(RemoteObject *obj, int pos, bool_t *is_queued, GError **error);
bool_t audacious_rc_playlist_ins_url_string(RemoteObject *obj, char *url, int pos, GError **error);
bool_t audacious_rc_playlist_enqueue_to_temp(RemoteObject *obj, char *url, GError **error);
bool_t audacious_rc_playlist_add(RemoteObject *obj, void * list, GError **error);

/* new on nov 7 */
bool_t audacious_rc_get_eq(RemoteObject *obj, double *preamp, GArray **bands, GError **error);
bool_t audacious_rc_get_eq_preamp(RemoteObject *obj, double *preamp, GError **error);
bool_t audacious_rc_get_eq_band(RemoteObject *obj, int band, double *value, GError **error);
bool_t audacious_rc_set_eq(RemoteObject *obj, double preamp, GArray *bands, GError **error);
bool_t audacious_rc_set_eq_preamp(RemoteObject *obj, double preamp, GError **error);
bool_t audacious_rc_set_eq_band(RemoteObject *obj, int band, double value, GError **error);
bool_t audacious_rc_equalizer_activate(RemoteObject *obj, bool_t active, GError **error);

/* new in 2.4 */
bool_t audacious_rc_get_active_playlist_name(RemoteObject *obj, char **title, GError **error);

/* new in 3.1 */
bool_t audacious_rc_stop_after (RemoteObject * obj, bool_t * is_stopping, GError * * error);
bool_t audacious_rc_toggle_stop_after (RemoteObject * obj, GError * * error);

#endif /* AUDACIOUS_DBUS_SERVICE_H */