gmerlin
player.h
1/*****************************************************************
2 * gmerlin - a general purpose multimedia framework and applications
3 *
4 * Copyright (c) 2001 - 2012 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
35typedef struct bg_player_s bg_player_t;
36
37/* player.c */
38
47bg_player_t * bg_player_create(bg_plugin_registry_t * plugin_reg);
48
65const bg_parameter_info_t * bg_player_get_parameters(bg_player_t * player);
66
74void bg_player_set_parameter(void * player, const char * name,
75 const bg_parameter_value_t * val);
76
84void bg_player_add_accelerators(bg_player_t * player,
85 const bg_accelerator_t * list);
86
92void bg_player_destroy(bg_player_t * player);
93
100void bg_player_add_message_queue(bg_player_t * player,
101 bg_msg_queue_t * message_queue);
102
109void bg_player_delete_message_queue(bg_player_t * player,
110 bg_msg_queue_t * message_queue);
111
117void bg_player_run(bg_player_t * player);
118
124void 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
154void bg_player_play(bg_player_t * player, bg_plugin_handle_t * handle,
155 int track, int flags, const char * track_name);
156
163void bg_player_seek(bg_player_t * player, gavl_time_t time, int scale);
164
170void bg_player_seek_rel(bg_player_t * player, gavl_time_t time);
171
177void bg_player_set_volume(bg_player_t * player, float volume);
178
184void bg_player_set_volume_rel(bg_player_t * player, float volume);
185
190void bg_player_stop(bg_player_t * player);
191
196void bg_player_pause(bg_player_t * player);
197
202void bg_player_error(bg_player_t * player);
203
209void bg_player_set_oa_plugin(bg_player_t * player, bg_plugin_handle_t * handle);
210
216void bg_player_set_ov_plugin(bg_player_t * player, bg_plugin_handle_t * handle);
217
223void bg_player_set_audio_stream(bg_player_t * player, int stream);
224
230void bg_player_set_video_stream(bg_player_t * player, int stream);
231
237void bg_player_set_subtitle_stream(bg_player_t * player, int stream);
238
244void bg_player_change(bg_player_t * player, int flags);
245
250void bg_player_toggle_mute(bg_player_t * player);
251
257void bg_player_set_chapter(bg_player_t * player, int chapter);
258
263void bg_player_next_chapter(bg_player_t * player);
264
269void bg_player_prev_chapter(bg_player_t * player);
270
279void bg_player_interrupt(bg_player_t * player);
280
285void bg_player_interrupt_resume(bg_player_t * player);
286
302
308void bg_player_set_input_parameter(void * data, const char * name,
309 const bg_parameter_value_t * val);
310
319
328
334void bg_player_set_audio_parameter(void*data, const char * name,
335 const bg_parameter_value_t*val);
336
342void bg_player_set_audio_filter_parameter(void*data, const char * name,
343 const bg_parameter_value_t*val);
344
352
360
366void bg_player_set_video_parameter(void*data, const char * name,
367 const bg_parameter_value_t*val);
368
374void bg_player_set_video_filter_parameter(void*data, const char * name,
375 const bg_parameter_value_t*val);
376
385
391void bg_player_set_subtitle_parameter(void*data, const char * name, const bg_parameter_value_t*val);
392
401
408void bg_player_set_osd_parameter(void*data, const char * name, const bg_parameter_value_t*val);
409
418void
419bg_player_set_visualization(bg_player_t * p, int enable);
420
426void
427bg_player_set_visualization_plugin(bg_player_t * p, const bg_plugin_info_t * plugin_info);
428
429
440
447void
449 const char * name, const bg_parameter_value_t*val);
450
456void
458 const char * name,
459 const bg_parameter_value_t*val);
460
461
466#endif // __BG_PLAYER_H_
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:446
const bg_parameter_info_t * bg_player_get_subtitle_parameters(bg_player_t *player)
Get subtitle parameters.
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_audio_parameters(bg_player_t *player)
Get audio parameters.
const bg_parameter_info_t * bg_player_get_visualization_parameters(bg_player_t *player)
Get visualization parameters.
void bg_player_set_osd_parameter(void *data, const char *name, const bg_parameter_value_t *val)
Set an OSD parameter.
const bg_parameter_info_t * bg_player_get_input_parameters(bg_player_t *player)
Get input parameters.
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_parameter(void *data, const char *name, const bg_parameter_value_t *val)
Set a video parameter.
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_audio_parameter(void *data, const char *name, const bg_parameter_value_t *val)
Set an audio parameter.
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.
void bg_player_set_visualization_plugin(bg_player_t *p, const bg_plugin_info_t *plugin_info)
Set plugin used for visualizations.
void bg_player_set_visualization(bg_player_t *p, int enable)
En- or disable music visualizations.
const bg_parameter_info_t * bg_player_get_osd_parameters(bg_player_t *player)
Get OSD parameters.
void bg_player_set_subtitle_parameter(void *data, const char *name, const bg_parameter_value_t *val)
Set a subtitle parameter.
const bg_parameter_info_t * bg_player_get_audio_filter_parameters(bg_player_t *player)
Get audio filter parameters.
const bg_parameter_info_t * bg_player_get_video_parameters(bg_player_t *player)
Get video parameters.
void bg_player_set_video_filter_parameter(void *data, const char *name, const bg_parameter_value_t *val)
Set a video filter parameter.
const bg_parameter_info_t * bg_player_get_video_filter_parameters(bg_player_t *player)
Get video filter parameters.
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_stream(bg_player_t *player, int stream)
Set video stream.
void bg_player_interrupt(bg_player_t *player)
Interrupt playback.
void bg_player_pause(bg_player_t *player)
Toggle pause.
void bg_player_set_chapter(bg_player_t *player, int chapter)
Goto a specified chapter.
void bg_player_toggle_mute(bg_player_t *player)
Toggle mute.
void bg_player_set_ov_plugin(bg_player_t *player, bg_plugin_handle_t *handle)
Set video output plugin.
void bg_player_set_oa_plugin(bg_player_t *player, bg_plugin_handle_t *handle)
Set audio output plugin.
void bg_player_change(bg_player_t *player, int flags)
Shut down playback.
void bg_player_error(bg_player_t *player)
Trigger an error.
void bg_player_prev_chapter(bg_player_t *player)
Goto the previous chapter.
void bg_player_set_audio_stream(bg_player_t *player, int stream)
Set audio stream.
void bg_player_seek(bg_player_t *player, gavl_time_t time, int scale)
Seek to a specific time.
void bg_player_stop(bg_player_t *player)
Stop playback.
void bg_player_next_chapter(bg_player_t *player)
Goto the next chapter.
void bg_player_set_volume_rel(bg_player_t *player, float volume)
Set the volume relative.
void bg_player_set_volume(bg_player_t *player, float volume)
Set the volume.
void bg_player_set_subtitle_stream(bg_player_t *player, int stream)
Set subtitle stream.
void bg_player_interrupt_resume(bg_player_t *player)
Resume an interrupted playback.
void bg_player_seek_rel(bg_player_t *player, gavl_time_t time)
Seek relative by a specific time.
const bg_parameter_info_t * bg_player_get_parameters(bg_player_t *player)
Get parameters.
void bg_player_delete_message_queue(bg_player_t *player, bg_msg_queue_t *message_queue)
Detach a message queue from a player.
bg_player_t * bg_player_create(bg_plugin_registry_t *plugin_reg)
Create a player.
void bg_player_add_accelerators(bg_player_t *player, const bg_accelerator_t *list)
Set accelerators.
void bg_player_set_parameter(void *player, const char *name, const bg_parameter_value_t *val)
Get parameters.
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_run(bg_player_t *player)
Start the player thread.
void bg_player_destroy(bg_player_t *player)
Destroy a player.
void bg_player_quit(bg_player_t *player)
Quit the player thread.
struct bg_plugin_registry_s bg_plugin_registry_t
Opaque handle for a plugin registry.
Definition pluginregistry.h:143
int64_t gavl_time_t
Parmeter description.
Definition parameter.h:135
Handle of a loaded plugin.
Definition pluginregistry.h:160
Information about a plugin.
Definition pluginregistry.h:80
Container for a parameter value.
Definition parameter.h:83