player.h

00001 /*****************************************************************
00002  * gmerlin - a general purpose multimedia framework and applications
00003  *
00004  * Copyright (c) 2001 - 2008 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 
00056 void bg_player_add_accelerators(bg_player_t * player,
00057                                 const bg_accelerator_t * list);
00058 
00064 void bg_player_destroy(bg_player_t * player);
00065 
00072 void bg_player_add_message_queue(bg_player_t * player,
00073                                  bg_msg_queue_t * message_queue);
00074 
00081 void bg_player_delete_message_queue(bg_player_t * player,
00082                                     bg_msg_queue_t * message_queue);
00083 
00089 void bg_player_run(bg_player_t * player);
00090 
00096 void bg_player_quit(bg_player_t * player);
00097 
00098 /*
00099  *  Thread save functions for controlling the player (see playercmd.c)
00100  *  These just create messages and send them into the command queue
00101  */
00102 
00112 #define BG_PLAY_FLAG_IGNORE_IF_PLAYING (1<<0) 
00113 #define BG_PLAY_FLAG_IGNORE_IF_STOPPED (1<<1) 
00114 #define BG_PLAY_FLAG_INIT_THEN_PAUSE   (1<<2) 
00115 #define BG_PLAY_FLAG_RESUME            (1<<3) 
00116 
00117 
00126 void bg_player_play(bg_player_t * player, bg_plugin_handle_t * handle,
00127                     int track, int flags, const char * track_name);
00128 
00135 void bg_player_seek(bg_player_t * player, gavl_time_t time);
00136 
00142 void bg_player_seek_rel(bg_player_t * player, gavl_time_t time);
00143 
00149 void bg_player_set_volume(bg_player_t * player, float volume);
00150 
00156 void bg_player_set_volume_rel(bg_player_t * player, float volume);
00157 
00162 void bg_player_stop(bg_player_t * player);
00163 
00168 void bg_player_pause(bg_player_t * player);
00169 
00174 void bg_player_error(bg_player_t * player);
00175 
00181 void bg_player_set_oa_plugin(bg_player_t * player, bg_plugin_handle_t * handle);
00182 
00188 void bg_player_set_ov_plugin(bg_player_t * player, bg_plugin_handle_t * handle);
00189 
00195 void bg_player_set_audio_stream(bg_player_t * player, int stream);
00196 
00202 void bg_player_set_video_stream(bg_player_t * player, int stream);
00203 
00209 void bg_player_set_subtitle_stream(bg_player_t * player, int stream);
00210 
00216 void bg_player_change(bg_player_t * player, int flags);
00217 
00222 void bg_player_toggle_mute(bg_player_t * player);
00223 
00229 void bg_player_set_chapter(bg_player_t * player, int chapter);
00230 
00235 void bg_player_next_chapter(bg_player_t * player);
00236 
00241 void bg_player_prev_chapter(bg_player_t * player);
00242 
00251 void bg_player_interrupt(bg_player_t * player);
00252 
00257 void bg_player_interrupt_resume(bg_player_t * player);
00258 
00273 const bg_parameter_info_t * bg_player_get_input_parameters(bg_player_t *  player);
00274 
00280 void bg_player_set_input_parameter(void * data, const char * name,
00281                                    const bg_parameter_value_t * val);
00282 
00290 const bg_parameter_info_t * bg_player_get_audio_parameters(bg_player_t * player);
00291 
00299 const bg_parameter_info_t * bg_player_get_audio_filter_parameters(bg_player_t * player);
00300 
00306 void bg_player_set_audio_parameter(void*data, const char * name,
00307                                    const bg_parameter_value_t*val);
00308 
00314 void bg_player_set_audio_filter_parameter(void*data, const char * name,
00315                                           const bg_parameter_value_t*val);
00316 
00323 const bg_parameter_info_t * bg_player_get_video_parameters(bg_player_t * player);
00324 
00331 const bg_parameter_info_t * bg_player_get_video_filter_parameters(bg_player_t * player);
00332 
00338 void bg_player_set_video_parameter(void*data, const char * name,
00339                                    const bg_parameter_value_t*val);
00340 
00346 void bg_player_set_video_filter_parameter(void*data, const char * name,
00347                                           const bg_parameter_value_t*val);
00348 
00355 const bg_parameter_info_t * bg_player_get_subtitle_parameters(bg_player_t * player);
00361 void bg_player_set_subtitle_parameter(void*data, const char * name, const bg_parameter_value_t*val);
00362 
00369 const bg_parameter_info_t * bg_player_get_osd_parameters(bg_player_t * player);
00375 void bg_player_set_osd_parameter(void*data, const char * name, const bg_parameter_value_t*val);
00376 
00377 
00386 void
00387 bg_player_set_visualization(bg_player_t * p, int enable);
00388 
00394 void
00395 bg_player_set_visualization_plugin(bg_player_t * p, const bg_plugin_info_t * plugin_info);
00396 
00397 
00406 const bg_parameter_info_t *
00407 bg_player_get_visualization_parameters(bg_player_t *  player);
00408 
00414 void
00415 bg_player_set_visualization_parameter(void*data,
00416                                       const char * name, const bg_parameter_value_t*val);
00417 
00423 void
00424 bg_player_set_visualization_plugin_parameter(void*data,
00425                                              const char * name,
00426                                              const bg_parameter_value_t*val);
00427 
00428 
00433 #endif // __BG_PLAYER_H_

Generated on Thu Dec 18 08:10:52 2008 for gmerlin by  doxygen 1.5.7.1