gmerlin
player.h
1 /*****************************************************************
2  * gmerlin - a general purpose multimedia framework and applications
3  *
4  * Copyright (c) 2001 - 2011 Members of the Gmerlin project
5  * gmerlin-general@lists.sourceforge.net
6  * http://gmerlin.sourceforge.net
7  *
8  * This program is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program. If not, see <http://www.gnu.org/licenses/>.
20  * *****************************************************************/
21 
22 #ifndef __BG_PLAYER_H_
23 #define __BG_PLAYER_H_
24 
25 #include <gmerlin/playermsg.h>
26 #include <gmerlin/pluginregistry.h>
27 #include <gmerlin/msgqueue.h>
28 
33 #define BG_PLAYER_VOLUME_MIN (-40.0)
34 
35 typedef struct bg_player_s bg_player_t;
36 
37 /* player.c */
38 
47 bg_player_t * bg_player_create(bg_plugin_registry_t * plugin_reg);
48 
65 const bg_parameter_info_t * bg_player_get_parameters(bg_player_t * player);
66 
74 void bg_player_set_parameter(void * player, const char * name,
75  const bg_parameter_value_t * val);
76 
84 void bg_player_add_accelerators(bg_player_t * player,
85  const bg_accelerator_t * list);
86 
92 void bg_player_destroy(bg_player_t * player);
93 
100 void bg_player_add_message_queue(bg_player_t * player,
101  bg_msg_queue_t * message_queue);
102 
109 void bg_player_delete_message_queue(bg_player_t * player,
110  bg_msg_queue_t * message_queue);
111 
117 void bg_player_run(bg_player_t * player);
118 
124 void bg_player_quit(bg_player_t * player);
125 
126 /*
127  * Thread save functions for controlling the player (see playercmd.c)
128  * These just create messages and send them into the command queue
129  */
130 
140 #define BG_PLAY_FLAG_IGNORE_IF_PLAYING (1<<0)
141 #define BG_PLAY_FLAG_IGNORE_IF_STOPPED (1<<1)
142 #define BG_PLAY_FLAG_INIT_THEN_PAUSE (1<<2)
143 #define BG_PLAY_FLAG_RESUME (1<<3)
144 
145 
154 void bg_player_play(bg_player_t * player, bg_plugin_handle_t * handle,
155  int track, int flags, const char * track_name);
156 
163 void bg_player_seek(bg_player_t * player, gavl_time_t time, int scale);
164 
170 void bg_player_seek_rel(bg_player_t * player, gavl_time_t time);
171 
177 void bg_player_set_volume(bg_player_t * player, float volume);
178 
184 void bg_player_set_volume_rel(bg_player_t * player, float volume);
185 
190 void bg_player_stop(bg_player_t * player);
191 
196 void bg_player_pause(bg_player_t * player);
197 
202 void bg_player_error(bg_player_t * player);
203 
209 void bg_player_set_oa_plugin(bg_player_t * player, bg_plugin_handle_t * handle);
210 
216 void bg_player_set_ov_plugin(bg_player_t * player, bg_plugin_handle_t * handle);
217 
223 void bg_player_set_audio_stream(bg_player_t * player, int stream);
224 
230 void bg_player_set_video_stream(bg_player_t * player, int stream);
231 
237 void bg_player_set_subtitle_stream(bg_player_t * player, int stream);
238 
244 void bg_player_change(bg_player_t * player, int flags);
245 
250 void bg_player_toggle_mute(bg_player_t * player);
251 
257 void bg_player_set_chapter(bg_player_t * player, int chapter);
258 
263 void bg_player_next_chapter(bg_player_t * player);
264 
269 void bg_player_prev_chapter(bg_player_t * player);
270 
279 void bg_player_interrupt(bg_player_t * player);
280 
285 void bg_player_interrupt_resume(bg_player_t * player);
286 
301 const bg_parameter_info_t * bg_player_get_input_parameters(bg_player_t * player);
302 
308 void bg_player_set_input_parameter(void * data, const char * name,
309  const bg_parameter_value_t * val);
310 
318 const bg_parameter_info_t * bg_player_get_audio_parameters(bg_player_t * player);
319 
327 const bg_parameter_info_t * bg_player_get_audio_filter_parameters(bg_player_t * player);
328 
334 void bg_player_set_audio_parameter(void*data, const char * name,
335  const bg_parameter_value_t*val);
336 
342 void bg_player_set_audio_filter_parameter(void*data, const char * name,
343  const bg_parameter_value_t*val);
344 
351 const bg_parameter_info_t * bg_player_get_video_parameters(bg_player_t * player);
352 
359 const bg_parameter_info_t * bg_player_get_video_filter_parameters(bg_player_t * player);
360 
366 void bg_player_set_video_parameter(void*data, const char * name,
367  const bg_parameter_value_t*val);
368 
374 void bg_player_set_video_filter_parameter(void*data, const char * name,
375  const bg_parameter_value_t*val);
376 
384 const bg_parameter_info_t * bg_player_get_subtitle_parameters(bg_player_t * player);
385 
391 void bg_player_set_subtitle_parameter(void*data, const char * name, const bg_parameter_value_t*val);
392 
400 const bg_parameter_info_t * bg_player_get_osd_parameters(bg_player_t * player);
401 
408 void bg_player_set_osd_parameter(void*data, const char * name, const bg_parameter_value_t*val);
409 
418 void
419 bg_player_set_visualization(bg_player_t * p, int enable);
420 
426 void
427 bg_player_set_visualization_plugin(bg_player_t * p, const bg_plugin_info_t * plugin_info);
428 
429 
438 const bg_parameter_info_t *
439 bg_player_get_visualization_parameters(bg_player_t * player);
440 
447 void
449  const char * name, const bg_parameter_value_t*val);
450 
456 void
458  const char * name,
459  const bg_parameter_value_t*val);
460 
461 
466 #endif // __BG_PLAYER_H_
void bg_player_set_audio_filter_parameter(void *data, const char *name, const bg_parameter_value_t *val)
Set an audio filter parameter.
const bg_parameter_info_t * bg_player_get_input_parameters(bg_player_t *player)
Get input parameters.
void bg_player_set_audio_stream(bg_player_t *player, int stream)
Set audio stream.
Information about a plugin.
Definition: pluginregistry.h:79
void bg_player_toggle_mute(bg_player_t *player)
Toggle mute.
void bg_player_set_parameter(void *player, const char *name, const bg_parameter_value_t *val)
Get parameters.
void bg_player_set_osd_parameter(void *data, const char *name, const bg_parameter_value_t *val)
Set an OSD parameter.
void bg_player_delete_message_queue(bg_player_t *player, bg_msg_queue_t *message_queue)
Detach a message queue from a player.
void bg_player_seek_rel(bg_player_t *player, gavl_time_t time)
Seek relative by a specific time.
void bg_player_play(bg_player_t *player, bg_plugin_handle_t *handle, int track, int flags, const char *track_name)
Play a track.
void bg_player_set_video_parameter(void *data, const char *name, const bg_parameter_value_t *val)
Set a video parameter.
void bg_player_change(bg_player_t *player, int flags)
Shut down playback.
void bg_player_set_volume_rel(bg_player_t *player, float volume)
Set the volume relative.
const bg_parameter_info_t * bg_player_get_video_parameters(bg_player_t *player)
Get video parameters.
void bg_player_stop(bg_player_t *player)
Stop playback.
Handle of a loaded plugin.
Definition: pluginregistry.h:157
void bg_player_set_input_parameter(void *data, const char *name, const bg_parameter_value_t *val)
Set an input parameter.
void bg_player_set_visualization_plugin(bg_player_t *p, const bg_plugin_info_t *plugin_info)
Set plugin used for visualizations.
const bg_parameter_info_t * bg_player_get_video_filter_parameters(bg_player_t *player)
Get video filter parameters.
void bg_player_set_subtitle_parameter(void *data, const char *name, const bg_parameter_value_t *val)
Set a subtitle parameter.
void bg_player_set_chapter(bg_player_t *player, int chapter)
Goto a specified chapter.
void bg_player_set_volume(bg_player_t *player, float volume)
Set the volume.
void bg_player_error(bg_player_t *player)
Trigger an error.
const bg_parameter_info_t * bg_player_get_parameters(bg_player_t *player)
Get parameters.
void bg_player_set_ov_plugin(bg_player_t *player, bg_plugin_handle_t *handle)
Set video output plugin.
const bg_parameter_info_t * bg_player_get_audio_filter_parameters(bg_player_t *player)
Get audio filter parameters.
Parmeter description.
Definition: parameter.h:134
struct bg_plugin_registry_s bg_plugin_registry_t
Opaque handle for a plugin registry.
Definition: pluginregistry.h:141
void bg_player_pause(bg_player_t *player)
Toggle pause.
void bg_player_set_visualization_parameter(void *data, const char *name, const bg_parameter_value_t *val)
Set a visualization parameter.
void bg_player_set_video_stream(bg_player_t *player, int stream)
Set video stream.
void bg_player_add_message_queue(bg_player_t *player, bg_msg_queue_t *message_queue)
Attach a message queue to a player.
void bg_player_prev_chapter(bg_player_t *player)
Goto the previous chapter.
const bg_parameter_info_t * bg_player_get_subtitle_parameters(bg_player_t *player)
Get subtitle parameters.
const bg_parameter_info_t * bg_player_get_audio_parameters(bg_player_t *player)
Get audio parameters.
void bg_player_set_video_filter_parameter(void *data, const char *name, const bg_parameter_value_t *val)
Set a video filter parameter.
void bg_player_interrupt_resume(bg_player_t *player)
Resume an interrupted playback.
void bg_player_next_chapter(bg_player_t *player)
Goto the next chapter.
void bg_player_set_visualization_plugin_parameter(void *data, const char *name, const bg_parameter_value_t *val)
Set a parameter for a visuaization plugin.
int64_t gavl_time_t
void bg_player_set_audio_parameter(void *data, const char *name, const bg_parameter_value_t *val)
Set an audio parameter.
void bg_player_quit(bg_player_t *player)
Quit the player thread.
const bg_parameter_info_t * bg_player_get_visualization_parameters(bg_player_t *player)
Get visualization parameters.
void bg_player_seek(bg_player_t *player, gavl_time_t time, int scale)
Seek to a specific time.
void bg_player_run(bg_player_t *player)
Start the player thread.
void bg_player_interrupt(bg_player_t *player)
Interrupt playback.
Container for a parameter value.
Definition: parameter.h:82
void bg_player_set_oa_plugin(bg_player_t *player, bg_plugin_handle_t *handle)
Set audio output plugin.
const bg_parameter_info_t * bg_player_get_osd_parameters(bg_player_t *player)
Get OSD parameters.
struct bg_msg_queue_s bg_msg_queue_t
Opaque message queue type. You don't want to know what's inside.
Definition: msgqueue.h:447
void bg_player_set_visualization(bg_player_t *p, int enable)
En- or disable music visualizations.
void bg_player_add_accelerators(bg_player_t *player, const bg_accelerator_t *list)
Set accelerators.
void bg_player_set_subtitle_stream(bg_player_t *player, int stream)
Set subtitle stream.
bg_player_t * bg_player_create(bg_plugin_registry_t *plugin_reg)
Create a player.
void bg_player_destroy(bg_player_t *player)
Destroy a player.