gmerlin

player.h

00001 /*****************************************************************
00002  * gmerlin - a general purpose multimedia framework and applications
00003  *
00004  * Copyright (c) 2001 - 2011 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_