gmerlin
|
00001 /***************************************************************** 00002 * gmerlin - a general purpose multimedia framework and applications 00003 * 00004 * Copyright (c) 2001 - 2012 Members of the Gmerlin project 00005 * gmerlin-general@lists.sourceforge.net 00006 * http://gmerlin.sourceforge.net 00007 * 00008 * This program is free software: you can redistribute it and/or modify 00009 * it under the terms of the GNU General Public License as published by 00010 * the Free Software Foundation, either version 2 of the License, or 00011 * (at your option) any later version. 00012 * 00013 * This program is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 * GNU General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU General Public License 00019 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00020 * *****************************************************************/ 00021 00022 #ifndef __BG_PLAYER_H_ 00023 #define __BG_PLAYER_H_ 00024 00025 #include <gmerlin/playermsg.h> 00026 #include <gmerlin/pluginregistry.h> 00027 #include <gmerlin/msgqueue.h> 00028 00033 #define BG_PLAYER_VOLUME_MIN (-40.0) 00034 00035 typedef struct bg_player_s bg_player_t; 00036 00037 /* player.c */ 00038 00047 bg_player_t * bg_player_create(bg_plugin_registry_t * plugin_reg); 00048 00065 const bg_parameter_info_t * bg_player_get_parameters(bg_player_t * player); 00066 00074 void bg_player_set_parameter(void * player, const char * name, 00075 const bg_parameter_value_t * val); 00076 00084 void bg_player_add_accelerators(bg_player_t * player, 00085 const bg_accelerator_t * list); 00086 00092 void bg_player_destroy(bg_player_t * player); 00093 00100 void bg_player_add_message_queue(bg_player_t * player, 00101 bg_msg_queue_t * message_queue); 00102 00109 void bg_player_delete_message_queue(bg_player_t * player, 00110 bg_msg_queue_t * message_queue); 00111 00117 void bg_player_run(bg_player_t * player); 00118 00124 void bg_player_quit(bg_player_t * player); 00125 00126 /* 00127 * Thread save functions for controlling the player (see playercmd.c) 00128 * These just create messages and send them into the command queue 00129 */ 00130 00140 #define BG_PLAY_FLAG_IGNORE_IF_PLAYING (1<<0) //!< Ignore play command, if the player is already playing 00141 #define BG_PLAY_FLAG_IGNORE_IF_STOPPED (1<<1) //!< Ignore play command, if the player is stopped 00142 #define BG_PLAY_FLAG_INIT_THEN_PAUSE (1<<2) //!< Initialize but go to pause status after 00143 #define BG_PLAY_FLAG_RESUME (1<<3) //!< If the player is paused, resume currently played track 00144 00154 void bg_player_play(bg_player_t * player, bg_plugin_handle_t * handle, 00155 int track, int flags, const char * track_name); 00156 00163 void bg_player_seek(bg_player_t * player, gavl_time_t time, int scale); 00164 00170 void bg_player_seek_rel(bg_player_t * player, gavl_time_t time); 00171 00177 void bg_player_set_volume(bg_player_t * player, float volume); 00178 00184 void bg_player_set_volume_rel(bg_player_t * player, float volume); 00185 00190 void bg_player_stop(bg_player_t * player); 00191 00196 void bg_player_pause(bg_player_t * player); 00197 00202 void bg_player_error(bg_player_t * player); 00203 00209 void bg_player_set_oa_plugin(bg_player_t * player, bg_plugin_handle_t * handle); 00210 00216 void bg_player_set_ov_plugin(bg_player_t * player, bg_plugin_handle_t * handle); 00217 00223 void bg_player_set_audio_stream(bg_player_t * player, int stream); 00224 00230 void bg_player_set_video_stream(bg_player_t * player, int stream); 00231 00237 void bg_player_set_subtitle_stream(bg_player_t * player, int stream); 00238 00244 void bg_player_change(bg_player_t * player, int flags); 00245 00250 void bg_player_toggle_mute(bg_player_t * player); 00251 00257 void bg_player_set_chapter(bg_player_t * player, int chapter); 00258 00263 void bg_player_next_chapter(bg_player_t * player); 00264 00269 void bg_player_prev_chapter(bg_player_t * player); 00270 00279 void bg_player_interrupt(bg_player_t * player); 00280 00285 void bg_player_interrupt_resume(bg_player_t * player); 00286 00301 const bg_parameter_info_t * bg_player_get_input_parameters(bg_player_t * player); 00302 00308 void bg_player_set_input_parameter(void * data, const char * name, 00309 const bg_parameter_value_t * val); 00310 00318 const bg_parameter_info_t * bg_player_get_audio_parameters(bg_player_t * player); 00319 00327 const bg_parameter_info_t * bg_player_get_audio_filter_parameters(bg_player_t * player); 00328 00334 void bg_player_set_audio_parameter(void*data, const char * name, 00335 const bg_parameter_value_t*val); 00336 00342 void bg_player_set_audio_filter_parameter(void*data, const char * name, 00343 const bg_parameter_value_t*val); 00344 00351 const bg_parameter_info_t * bg_player_get_video_parameters(bg_player_t * player); 00352 00359 const bg_parameter_info_t * bg_player_get_video_filter_parameters(bg_player_t * player); 00360 00366 void bg_player_set_video_parameter(void*data, const char * name, 00367 const bg_parameter_value_t*val); 00368 00374 void bg_player_set_video_filter_parameter(void*data, const char * name, 00375 const bg_parameter_value_t*val); 00376 00384 const bg_parameter_info_t * bg_player_get_subtitle_parameters(bg_player_t * player); 00385 00391 void bg_player_set_subtitle_parameter(void*data, const char * name, const bg_parameter_value_t*val); 00392 00400 const bg_parameter_info_t * bg_player_get_osd_parameters(bg_player_t * player); 00401 00408 void bg_player_set_osd_parameter(void*data, const char * name, const bg_parameter_value_t*val); 00409 00418 void 00419 bg_player_set_visualization(bg_player_t * p, int enable); 00420 00426 void 00427 bg_player_set_visualization_plugin(bg_player_t * p, const bg_plugin_info_t * plugin_info); 00428 00429 00438 const bg_parameter_info_t * 00439 bg_player_get_visualization_parameters(bg_player_t * player); 00440 00447 void 00448 bg_player_set_visualization_parameter(void*data, 00449 const char * name, const bg_parameter_value_t*val); 00450 00456 void 00457 bg_player_set_visualization_plugin_parameter(void*data, 00458 const char * name, 00459 const bg_parameter_value_t*val); 00460 00461 00466 #endif // __BG_PLAYER_H_