Index: mplayer.c =================================================================== --- mplayer.c (Revision 22301) +++ mplayer.c (Arbeitskopie) @@ -193,7 +193,7 @@ //**************************************************************************// // Not all functions in mplayer.c take the context as an argument yet -static MPContext *mpctx = &(MPContext){ +MPContext *mpctx = &(MPContext){ .osd_function = OSD_PLAY, .begin_skip = MP_NOPTS_VALUE, .play_tree_step = 1, Index: libmenu/vf_menu.c =================================================================== --- libmenu/vf_menu.c (Revision 22301) +++ libmenu/vf_menu.c (Arbeitskopie) @@ -23,8 +23,15 @@ #include "input/input.h" #include "m_struct.h" #include "menu.h" +#include "stream/stream.h" +#include "libmpdemux/demuxer.h" +#include "mixer.h" +#include "subreader.h" +#include "libmpdemux/stheader.h" +#include "playtree.h" +#include "mp_core.h" -extern vo_functions_t* video_out; +extern MPContext * mpctx; static struct vf_priv_s* st_priv = NULL; @@ -82,7 +89,7 @@ put_image(vf,pause_mpi, MP_NOPTS_VALUE); // Don't draw the osd atm //vf->control(vf,VFCTRL_DRAW_OSD,NULL); - video_out->flip_page(); + mpctx->video_out->flip_page(); } } @@ -279,7 +286,7 @@ return (vf_next_query_format(vf,fmt)); } -static int open(vf_instance_t *vf, char* args){ +static int mopen(vf_instance_t *vf, char* args){ if(!st_priv) { st_priv = calloc(1,sizeof(struct vf_priv_s)); st_priv->root = st_priv->current = menu_open(args); @@ -309,7 +316,7 @@ "menu", "Albeu", "", - open, + mopen, NULL }; Index: libmenu/menu.c =================================================================== --- libmenu/menu.c (Revision 22301) +++ libmenu/menu.c (Arbeitskopie) @@ -20,6 +20,13 @@ #include "m_option.h" #include "m_struct.h" #include "menu.h" +#include "mixer.h" +#include "subreader.h" +#include "libmpdemux/demuxer.h" +#include "libmpdemux/stheader.h" +#include "playtree.h" +#include "libvo/video_out.h" +#include "mp_core.h" extern menu_info_t menu_info_cmdlist; extern menu_info_t menu_info_pt; Index: libmenu/menu_param.c =================================================================== --- libmenu/menu_param.c (Revision 22301) +++ libmenu/menu_param.c (Arbeitskopie) @@ -79,7 +79,7 @@ m_option_t* mp_property_find(const char* name); static void entry_set_text(menu_t* menu, list_entry_t* e) { - char* val = m_property_print(e->opt); + char* val = m_property_print(e->opt, NULL); int l,edit = (mpriv->edit && e == mpriv->p.current); if(!val) { if(mpriv->hide_na) { @@ -227,22 +227,22 @@ case MENU_CMD_UP: if(!mpriv->edit) break; case MENU_CMD_RIGHT: - if(m_property_do(e->opt,M_PROPERTY_STEP_UP,NULL) > 0) + if(m_property_do(e->opt,M_PROPERTY_STEP_UP,NULL,NULL) > 0) update_entries(menu); return; case MENU_CMD_DOWN: if(!mpriv->edit) break; case MENU_CMD_LEFT: - if(m_property_do(e->opt,M_PROPERTY_STEP_DOWN,NULL) > 0) + if(m_property_do(e->opt,M_PROPERTY_STEP_DOWN,NULL,NULL) > 0) update_entries(menu); return; case MENU_CMD_OK: // check that the property is writable - if(m_property_do(e->opt,M_PROPERTY_SET,NULL) < 0) return; + if(m_property_do(e->opt,M_PROPERTY_SET,NULL,NULL) < 0) return; // shortcut for flags if(e->opt->type == CONF_TYPE_FLAG) { - if(m_property_do(e->opt,M_PROPERTY_STEP_UP,NULL) > 0) + if(m_property_do(e->opt,M_PROPERTY_STEP_UP,NULL,NULL) > 0) update_entries(menu); return; } Index: libmenu/menu_pt.c =================================================================== --- libmenu/menu_pt.c (Revision 22301) +++ libmenu/menu_pt.c (Arbeitskopie) @@ -19,10 +19,17 @@ #include "playtree.h" #include "input/input.h" +#include "libvo/video_out.h" +#include "stream/stream.h" +#include "libmpdemux/demuxer.h" +#include "libmpdemux/stheader.h" +#include "mixer.h" +#include "subreader.h" +#include "mp_core.h" #define mp_basename(s) (strrchr((s),'/')==NULL?(char*)(s):(strrchr((s),'/')+1)) -extern play_tree_iter_t* playtree_iter; +extern MPContext * mpctx; struct list_entry_s { struct list_entry p; @@ -60,20 +67,20 @@ mp_cmd_t* c; - if(playtree_iter->tree == mpriv->p.current->pt) + if(mpctx->playtree_iter->tree == mpriv->p.current->pt) break; - if(playtree_iter->tree->parent && mpriv->p.current->pt == playtree_iter->tree->parent) + if(mpctx->playtree_iter->tree->parent && mpriv->p.current->pt == mpctx->playtree_iter->tree->parent) snprintf(str,15,"pt_up_step 1"); else { - for(i = playtree_iter->tree->next; i != NULL ; i = i->next) { + for(i = mpctx->playtree_iter->tree->next; i != NULL ; i = i->next) { if(i == mpriv->p.current->pt) break; d++; } if(i == NULL) { d = -1; - for(i = playtree_iter->tree->prev; i != NULL ; i = i->prev) { + for(i = mpctx->playtree_iter->tree->prev; i != NULL ; i = i->prev) { if(i == mpriv->p.current->pt) break; d--; @@ -118,14 +125,14 @@ mpriv->p.title = mpriv->title; - if(playtree_iter->tree->parent != playtree_iter->root) { + if(mpctx->playtree_iter->tree->parent != mpctx->playtree_iter->root) { e = calloc(1,sizeof(list_entry_t)); e->p.txt = ".."; - e->pt = playtree_iter->tree->parent; + e->pt = mpctx->playtree_iter->tree->parent; menu_list_add_entry(menu,e); } - for(i = playtree_iter->tree ; i->prev != NULL ; i = i->prev) + for(i = mpctx->playtree_iter->tree ; i->prev != NULL ; i = i->prev) /* NOP */; for( ; i != NULL ; i = i->next ) { e = calloc(1,sizeof(list_entry_t)); Index: Gui/interface.c =================================================================== --- Gui/interface.c (Revision 22301) +++ Gui/interface.c (Arbeitskopie) @@ -29,6 +29,11 @@ #include "mixer.h" #include "libaf/af.h" #include "libaf/equalizer.h" +#include "libmpdemux/demuxer.h" +#include "libmpdemux/stheader.h" +#include "playtree.h" +#include "libvo/video_out.h" +#include "mp_core.h" extern af_cfg_t af_cfg; @@ -49,7 +54,7 @@ #include "m_config.h" #include "m_option.h" -extern mixer_t mixer; // mixer from mplayer.c +extern MPContext * mpctx; guiInterface_t guiIntfStruct; int guiWinID=-1; @@ -418,7 +423,6 @@ evSkinBrowser }; -extern ao_functions_t * audio_out; extern vo_functions_t * video_out; extern int frame_dropping; extern int stream_dump_type; @@ -669,10 +673,10 @@ mplEventHandling( evRedraw,0 ); break; case guiSetVolume: - if ( audio_out ) + if ( mpctx->audio_out ) { float l,r; - mixer_getvolume( &mixer,&l,&r ); + mixer_getvolume( &mpctx->mixer,&l,&r ); guiIntfStruct.Volume=(r>l?r:l); if ( r != l ) guiIntfStruct.Balance=( ( r - l ) + 100 ) * 0.5f; else guiIntfStruct.Balance=50.0f; @@ -698,10 +702,10 @@ else btnSet( evSetMoviePosition,btnReleased ); // -- audio - if ( audio_out ) + if ( mpctx->audio_out ) { float l,r; - mixer_getvolume( &mixer,&l,&r ); + mixer_getvolume( &mpctx->mixer,&l,&r ); guiIntfStruct.Volume=(r>l?r:l); if ( r != l ) guiIntfStruct.Balance=( ( r - l ) + 100 ) * 0.5f; else guiIntfStruct.Balance=50.0f; Index: Gui/mplayer/mw.c =================================================================== --- Gui/mplayer/mw.c (Revision 22301) +++ Gui/mplayer/mw.c (Arbeitskopie) @@ -27,13 +27,16 @@ #include "../codec-cfg.h" #include "../m_option.h" #include "../m_property.h" +#include "../playtree.h" +#include "../libvo/video_out.h" +#include "../mp_core.h" #define GUI_REDRAW_WAIT 375 #include "play.h" #include "widgets.h" -extern mixer_t mixer; // mixer from mplayer.c +extern MPContext * mpctx; extern unsigned int GetTimerMS( void ); @@ -108,7 +111,7 @@ goto play; case evSetSubtitle: - mp_property_do("sub",M_PROPERTY_SET,&iparam); + mp_property_do("sub",M_PROPERTY_SET,&iparam,mpctx); break; #ifdef HAVE_VCD @@ -247,7 +250,7 @@ case evIncVolume: vo_x11_putkey( wsGrayMul ); break; case evDecVolume: vo_x11_putkey( wsGrayDiv ); break; - case evMute: mixer_mute( &mixer ); break; + case evMute: mixer_mute( &mpctx->mixer ); break; case evSetVolume: guiIntfStruct.Volume=param; @@ -261,7 +264,7 @@ if ( l > guiIntfStruct.Volume ) l=guiIntfStruct.Volume; if ( r > guiIntfStruct.Volume ) r=guiIntfStruct.Volume; // printf( "!!! v: %.2f b: %.2f -> %.2f x %.2f\n",guiIntfStruct.Volume,guiIntfStruct.Balance,l,r ); - mixer_setvolume( &mixer,l,r ); + mixer_setvolume( &mpctx->mixer,l,r ); } if ( osd_level ) { Index: Gui/mplayer/gtk/menu.c =================================================================== --- Gui/mplayer/gtk/menu.c (Revision 22301) +++ Gui/mplayer/gtk/menu.c (Arbeitskopie) @@ -61,8 +61,13 @@ #include "../pixmaps/playvcd.xpm" #endif -extern mixer_t mixer; // mixer from mplayer.c +#include "subreader.h" +#include "libvo/video_out.h" +#include "playtree.h" +#include "mp_core.h" +extern MPContext * mpctx; + void ActivateMenuItem( int Item ) { // fprintf( stderr,"[menu] item: %d.%d\n",Item&0xffff,Item>>16 ); @@ -378,8 +383,6 @@ return NULL; } -extern int global_sub_size; - GtkWidget * DVDSubMenu; GtkWidget * DVDTitleMenu; GtkWidget * DVDChapterMenu; @@ -576,12 +579,12 @@ } /* cheap subtitle switching for non-DVD streams */ - if ( global_sub_size && guiIntfStruct.StreamType != STREAMTYPE_DVD ) + if ( mpctx->global_sub_size && guiIntfStruct.StreamType != STREAMTYPE_DVD ) { int i; SubMenu=AddSubMenu( window1, (const char*)empty_xpm, Menu, MSGTR_MENU_Subtitles ); AddMenuItem( window1, (const char*)empty_xpm, SubMenu, MSGTR_MENU_None, (-1 << 16) + evSetSubtitle ); - for ( i=0;i < global_sub_size;i++ ) + for ( i=0;i < mpctx->global_sub_size;i++ ) { char tmp[32]; snprintf( tmp, 32, MSGTR_MENU_Track, i ); @@ -590,7 +593,7 @@ } AddSeparator( Menu ); - MenuItem=AddMenuCheckItem( window1, (const char*)sound_xpm, Menu,MSGTR_MENU_Mute,mixer.muted,evMute ); + MenuItem=AddMenuCheckItem( window1, (const char*)sound_xpm, Menu,MSGTR_MENU_Mute,mpctx->mixer.muted,evMute ); if ( !guiIntfStruct.AudioType ) gtk_widget_set_sensitive( MenuItem,FALSE ); AddMenuItem( window1, (const char*)pl_xpm, Menu,MSGTR_MENU_PlayList, evPlayList ); AddMenuItem( window1, (const char*)skin_xpm, Menu,MSGTR_MENU_SkinBrowser, evSkinBrowser ); Index: Gui/mplayer/common.c =================================================================== --- Gui/mplayer/common.c (Revision 22301) +++ Gui/mplayer/common.c (Arbeitskopie) @@ -25,13 +25,15 @@ #include "../libmpdemux/demuxer.h" #include "../libmpdemux/stheader.h" #include "../codec-cfg.h" +#include "../playtree.h" +#include "../libvo/video_out.h" +#include "../mp_core.h" #include "play.h" #include "widgets.h" -extern mixer_t mixer; // mixer from mplayer.c - +extern MPContext * mpctx; extern unsigned int GetTimerMS( void ); inline void TranslateFilename( int c,char * tmp,size_t tmplen ) @@ -145,7 +147,7 @@ case 'l': if ( guiIntfStruct.Playing == 1 ) strlcat( trbuf,"p",sizeof( trbuf ) ); break; case 'e': if ( guiIntfStruct.Playing == 2 ) strlcat( trbuf,"e",sizeof( trbuf ) ); break; case 'a': - if ( mixer.muted ) { strlcat( trbuf,"n",sizeof( trbuf ) ); break; } + if ( mpctx->mixer.muted ) { strlcat( trbuf,"n",sizeof( trbuf ) ); break; } switch ( guiIntfStruct.AudioType ) { case 0: strlcat( trbuf,"n",sizeof( trbuf ) ); break;