This file is indexed.

/usr/include/gmerlin/playermsg.h is in libgmerlin-dev 1.0.0~dfsg-13.

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
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
/*****************************************************************
 * gmerlin - a general purpose multimedia framework and applications
 *
 * Copyright (c) 2001 - 2011 Members of the Gmerlin project
 * gmerlin-general@lists.sourceforge.net
 * http://gmerlin.sourceforge.net
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * *****************************************************************/

#ifndef __BG_PLAYERMSG_H_
#define __BG_PLAYERMSG_H_

/** \defgroup player_states Player states
 *  \ingroup player_msg
 *  \brief State definitions for the player
 *
 *  @{
*/

#define BG_PLAYER_STATE_INIT            -1 //!< Initializing
#define BG_PLAYER_STATE_STOPPED         0 //!< Stopped, waiting for play command
#define BG_PLAYER_STATE_PLAYING         1 //!< Playing
#define BG_PLAYER_STATE_SEEKING         2 //!< Seeking
#define BG_PLAYER_STATE_CHANGING        3 //!< Changing the track
#define BG_PLAYER_STATE_BUFFERING       4 //!< Buffering data
#define BG_PLAYER_STATE_PAUSED          5 //!< Paused
#define BG_PLAYER_STATE_EOF             6 //!< Finished playback
#define BG_PLAYER_STATE_STARTING        8 //!< Starting playback
#define BG_PLAYER_STATE_ERROR           9 //!< Error

/**
 *  @}
 */

/* Message definition for the player */

/****************************
 *  Commands for the player
 ****************************/

/* Start playing                                        */
/* arg1: Input plugin handle                            */
/* arg2: Track index for plugins with multiple tracks   */
/* arg3: Play flags, see defines below                  */

#define BG_PLAYER_CMD_PLAY     0

/* Stop playing                              */

#define BG_PLAYER_CMD_STOP     1

/* Seek to a specific point                  */
/* arg1: seek Perfenctage                    */
/* (between 0.0 and 1.0, float)              */ 

#define BG_PLAYER_CMD_SEEK     2

/* Set the state of the player */
/*  arg1: New state             */

/*
 *  if(state == BG_PLAYER_STATE_BUFFERING)
 *    arg2: Buffering percentage (float)
 *  else if(state == BG_PLAYER_STATE_ERROR)
 *    arg2: String describing the error
 *  else if(state == BG_PLAYER_STATE_PLAYING)
 *    arg2: Integer (1 if player can pause playback without messing up the data source)
 */

#define BG_PLAYER_CMD_SETSTATE 3

/* Quit playback thread (used by bg_player_quit()) */

#define BG_PLAYER_CMD_QUIT      4

/* Change output plugins, arg1 is plugin handle of the opened plugin */

#define BG_PLAYER_CMD_SET_OV_PLUGIN 5

#define BG_PLAYER_CMD_SET_OA_PLUGIN 6

/* Set track name */

#define BG_PLAYER_CMD_SET_NAME      7

/* Act like a pause button */

#define BG_PLAYER_CMD_PAUSE         8

/*
 *  Seek relative (gavl_time_t)
 */

#define BG_PLAYER_CMD_SEEK_REL      10

/* Set volume (float dB value) */

#define BG_PLAYER_CMD_SET_VOLUME     11

/* Set volume (float dB value) */

#define BG_PLAYER_CMD_SET_VOLUME_REL 12

/* Like BG_PLAYER_CMD_PLAY but go into the pause state right after the
   playback is set up */

#define BG_PLAYER_CMD_PLAY_PAUSE     13

#define BG_PLAYER_CMD_SET_AUDIO_STREAM    14
#define BG_PLAYER_CMD_SET_VIDEO_STREAM    15
#define BG_PLAYER_CMD_SET_SUBTITLE_STREAM 16

/* Argument 1: keycode (see keycodes.h)
   Argument 2: mask (see keycodes.h)
*/

#define BG_PLAYER_CMD_KEY                 17 /* A key was pressed */

#define BG_PLAYER_CMD_CHANGE              18 /* Player should prepare for changing the
                                                track */

#define BG_PLAYER_CMD_TOGGLE_MUTE         19 /* Toggle mute state */

#define BG_PLAYER_CMD_SET_CHAPTER         20 /* Goto chapter */

#define BG_PLAYER_CMD_NEXT_CHAPTER        21 /* Next chapter */

#define BG_PLAYER_CMD_PREV_CHAPTER        22 /* Previous chapter */

#define BG_PLAYER_CMD_INTERRUPT           23 /* Interrupt playback */
#define BG_PLAYER_CMD_INTERRUPT_RESUME    24 /* Resume interrupted playback */

/********************************
 * Messages from the player
********************************/

/** \defgroup player_msg Messages from the player
 *  \ingroup player
*
 *  @{
 */

/** \brief Display time changed
 *
 *  arg0: New time (gavl_time_t)
 *
 *  This is called periodically during playback if the time changed.
 */

#define BG_PLAYER_MSG_TIME_CHANGED            0

/** \brief Track changed
 *
 *  arg0: Track index (int)
 *
 *  This message is only emitted for input plugins,
 *  which do playback themselves.
 */

#define BG_PLAYER_MSG_TRACK_CHANGED           1

/** \brief State changed
 *
 *  arg0: New state (\ref player_states)
 *
 *  arg1 depends on the state:
 *
 *  - BG_PLAYER_STATE_BUFFERING: Buffering percentage (float, 0.0..1.0)
 *  - BG_PLAYER_STATE_ERROR: String describing the error (char*)
 *  - BG_PLAYER_STATE_PLAYING: 1 if player can seek within the current track, 0 else (int)
 *  - BG_PLAYER_STATE_CHANGING: 1 if player needs the next track, 0 else
 */

#define BG_PLAYER_MSG_STATE_CHANGED           2

/** \brief Track name
 *
 *  arg0: Track name (char*)
 *
 *  This is set whenever the track name changes. For internet radio stations, it can be
 *  sent multiple times for one URL.
 */

#define BG_PLAYER_MSG_TRACK_NAME              3

/** \brief Duration changed
 *
 *  arg0: Total duration in seconds (gavl_time_t)
 */

#define BG_PLAYER_MSG_TRACK_DURATION          5

/** \brief Get info about the streams
 *
 *  arg0: Number of audio streams (int)
 *
 *  arg1: Number of video streams (int)
 *
 *  arg2: Number of subtitle streams (int)
 */

#define BG_PLAYER_MSG_TRACK_NUM_STREAMS       4

/** \brief Get information about the current audio stream
 *
 *  arg0: Stream index (int)
 *
 *  arg1: Input Format (gavl_audio_format_t)
 *
 *  arg2: Output Format (gavl_audio_format_t)
 */

#define BG_PLAYER_MSG_AUDIO_STREAM            6

/** \brief Get information about the current video stream
 *
 *  arg0: Stream index (int)
 *
 *  arg1: Input Format (gavl_video_format_t)
 *
 *  arg2: Output Format (gavl_video_format_t)
 */

#define BG_PLAYER_MSG_VIDEO_STREAM            7


/** \brief Get information about the current subtitle stream
 *
 *  arg0: Stream index (int)
 *
 *  arg1: 1 if the subtitle is a text subtitle, 0 else
 *
 *  arg2: Format (gavl_video_format_t)
 */

#define BG_PLAYER_MSG_SUBTITLE_STREAM         9

/* Metadata (is only sent, if information is available) */

/** \brief Metadata changed
 *
 *  arg0: Metadata (bg_metadata_t)
 */

#define BG_PLAYER_MSG_METADATA               10

/** \brief Audio description changed
 *
 *  arg0: Audio description (char*)
 */

#define BG_PLAYER_MSG_AUDIO_DESCRIPTION      11

/** \brief Video description changed
 *
 *  arg0: Video description (char*)
 */
#define BG_PLAYER_MSG_VIDEO_DESCRIPTION      12


/** \brief Subtitle description changed
 *
 *  arg0: Subtitle description (char*)
 */

#define BG_PLAYER_MSG_SUBTITLE_DESCRIPTION   14

/** \brief Description of the track changed
 *
 *  arg0: Stream description (char*)
 */
#define BG_PLAYER_MSG_STREAM_DESCRIPTION     15

/** \brief Volume changed
 *
 *  arg0: New volume in dB (float)
 */
#define BG_PLAYER_MSG_VOLUME_CHANGED         16

/** \brief Audio stream info
 *
 *  arg0: stream index (int)
 *
 *  arg1: stream name (char*)
 *
 *  arg2: stream language (char*)
 *
 *  This message is sent for all available audio streams
 *  regardless of what you selected
 */

#define BG_PLAYER_MSG_AUDIO_STREAM_INFO      17

/** \brief Video stream info
 *
 *  arg0: stream index (int)
 *
 *  arg1: stream name (char*)
 *
 *  arg2: stream language (char*)
 *
 *  This message is sent for all available video streams
 *  regardless of what you selected
 */

#define BG_PLAYER_MSG_VIDEO_STREAM_INFO      18

/** \brief Subtitle stream info
 *
 *  arg0: stream index (int)
 *
 *  arg1: stream name (char*)
 *
 *  arg2: stream language (char*)
 *
 *  This message is sent for all available video streams
 *  regardless of what you selected
 */
#define BG_PLAYER_MSG_SUBTITLE_STREAM_INFO   19

/** \brief A key was pressed in the video window
 *
 *  arg0: keycode (see \ref keycodes)
 *
 *  arg1: mask (see \ref keycodes)
 *
 *  This message is only emitted if key+mask were not handled
 *  by the video plugin or by the player.
 */

#define BG_PLAYER_MSG_ACCEL                    20 /* A key shortcut
                                                     was pressed */

/** \brief Player just cleaned up
 *
 *  A previously triggerend cleanup operation is finished.
 */

#define BG_PLAYER_MSG_CLEANUP                21

/** \brief Player changed the mute state
 *
 *  arg0: 1 when player is muted now, 0 else
 *
 */

#define BG_PLAYER_MSG_MUTE                   22

/** \brief Number of chapters
 *
 *  arg0: Number
 */

#define BG_PLAYER_MSG_NUM_CHAPTERS           23

/** \brief Chapter info
 *
 *  arg0: Chapter index
 *  arg1: Name (string)
 *  arg2: Start time (time)
 */

#define BG_PLAYER_MSG_CHAPTER_INFO           24

/** \brief Chapter changed
 *
 *  arg0: Chapter index
 */

#define BG_PLAYER_MSG_CHAPTER_CHANGED        25

/** \brief Playback interrupted
 */

#define BG_PLAYER_MSG_INTERRUPT              26

/** \brief Interrupted playback resumed 
 */

#define BG_PLAYER_MSG_INTERRUPT_RESUME       27

/** \brief Input info 
 *  arg0: Plugin name (string)
 *  arg1: Location (string)
 *  arg2: Track (int)
 */

#define BG_PLAYER_MSG_INPUT                  28

/** \brief Audio peaks
 *  arg0: Number of samples processed
 *  arg1: Left peak
 *  arg2: Right peak
 */

#define BG_PLAYER_MSG_AUDIO_PEAK             29

/**  @}
 */

#endif // __BG_PLAYERMSG_H_