X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=projects%2Fmozilla%2Fvlcshell.cpp;h=829ae7a5da3de60cb804dcad00420dbf83defa36;hb=35eeabbfb577be2b0de06d06bb7bf2a190fdebbe;hp=e0b937bf239041d01dcc0788ec4ac07626ccbb54;hpb=89b6530d8abd99b96b9f33af022022241fe97ee2;p=vlc diff --git a/projects/mozilla/vlcshell.cpp b/projects/mozilla/vlcshell.cpp index e0b937bf23..829ae7a5da 100644 --- a/projects/mozilla/vlcshell.cpp +++ b/projects/mozilla/vlcshell.cpp @@ -31,28 +31,16 @@ #include #include -/* Mozilla stuff */ -#ifdef HAVE_MOZILLA_CONFIG_H -# include -#endif - -/* This is from mozilla java, do we really need it? */ -#if 0 -#include -#endif - #include "vlcplugin.h" #include "vlcshell.h" /* Enable/disable debugging printf's for X11 resizing */ #undef X11_RESIZE_DEBUG -#define WINDOW_TEXT "Waiting for video" - /***************************************************************************** * Unix-only declarations ******************************************************************************/ -#ifdef XP_UNIX +#if defined(XP_UNIX) static void Redraw( Widget w, XtPointer closure, XEvent *event ); static void ControlHandler( Widget w, XtPointer closure, XEvent *event ); @@ -117,7 +105,7 @@ NPError NPP_GetValue( NPP instance, NPPVariable variable, void *value ) VlcPlugin* p_plugin = reinterpret_cast(instance->pdata); if( NULL == p_plugin ) { - // plugin has not been initialized yet ! + /* plugin has not been initialized yet ! */ return NPERR_INVALID_INSTANCE_ERROR; } @@ -156,12 +144,9 @@ NPError NPP_SetValue( NPP instance, NPNVariable variable, void *value ) * Mac-only API calls *****************************************************************************/ #ifdef XP_MACOSX -int16 NPP_HandleEvent( NPP instance, void * event ) +int16_t NPP_HandleEvent( NPP instance, void * event ) { static UInt32 lastMouseUp = 0; - libvlc_exception_t ex; - libvlc_exception_init(&ex); - if( instance == NULL ) { return false; @@ -173,6 +158,7 @@ int16 NPP_HandleEvent( NPP instance, void * event ) return false; } +#ifndef __x86_64__ EventRecord *myEvent = (EventRecord*)event; switch( myEvent->what ) @@ -184,8 +170,7 @@ int16 NPP_HandleEvent( NPP instance, void * event ) if( (myEvent->when - lastMouseUp) < GetDblTime() ) { /* double click */ - p_plugin->toggle_fullscreen(&ex); - libvlc_exception_clear(&ex); + p_plugin->toggle_fullscreen(); } return true; } @@ -201,11 +186,12 @@ int16 NPP_HandleEvent( NPP instance, void * event ) const NPWindow& npwindow = p_plugin->getWindow(); if( npwindow.window ) { - int hasVout = FALSE; + bool hasVout = false; - if( p_plugin->playlist_isplaying(&ex) ) + if( p_plugin->playlist_isplaying() ) { - hasVout = p_plugin->player_has_vout(NULL); + hasVout = p_plugin->player_has_vout(); +#if 0 if( hasVout ) { libvlc_rectangle_t area; @@ -213,15 +199,16 @@ int16 NPP_HandleEvent( NPP instance, void * event ) area.top = 0; area.right = npwindow.width; area.bottom = npwindow.height; - libvlc_video_redraw_rectangle(p_plugin->getMD(&ex), &area, NULL); + libvlc_video_redraw_rectangle(p_plugin->getMD(), &area, NULL); } +#else +#warning disabled code +#endif } - libvlc_exception_clear(&ex); if( ! hasVout ) { - /* draw the beautiful "No Picture" */ - + /* draw the text from p_plugin->psz_text */ ForeColor(blackColor); PenMode( patCopy ); @@ -239,7 +226,8 @@ int16 NPP_HandleEvent( NPP instance, void * event ) ForeColor(whiteColor); MoveTo( (npwindow.width-80)/ 2 , npwindow.height / 2 ); - DrawText( WINDOW_TEXT , 0 , strlen(WINDOW_TEXT) ); + if( p_plugin->psz_text ) + DrawText( p_plugin->psz_text, 0, strlen(p_plugin->psz_text) ); } } return true; @@ -262,6 +250,7 @@ int16 NPP_HandleEvent( NPP instance, void * event ) default: ; } +#endif // __x86_64__ return false; } #endif /* XP_MACOSX */ @@ -274,17 +263,24 @@ NPError NPP_Initialize( void ) return NPERR_NO_ERROR; } +#ifdef OJI jref NPP_GetJavaClass( void ) { return NULL; } +#endif void NPP_Shutdown( void ) { ; } -NPError NPP_New( NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, +NPError NPP_New( NPMIMEType pluginType, NPP instance, +#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20) + uint16 mode, int16 argc, +#else + uint16_t mode, int16_t argc, +#endif char* argn[], char* argv[], NPSavedData* saved ) { NPError status; @@ -327,7 +323,7 @@ NPError NPP_Destroy( NPP instance, NPSavedData** save ) instance->pdata = NULL; -#if XP_WIN +#if defined(XP_WIN) HWND win = (HWND)p_plugin->getWindow().window; WNDPROC winproc = p_plugin->getWindowProc(); if( winproc ) @@ -337,6 +333,9 @@ NPError NPP_Destroy( NPP instance, NPSavedData** save ) } #endif + if( p_plugin->playlist_isplaying() ) + p_plugin->playlist_stop(); + delete p_plugin; return NPERR_NO_ERROR; @@ -344,7 +343,7 @@ NPError NPP_Destroy( NPP instance, NPSavedData** save ) NPError NPP_SetWindow( NPP instance, NPWindow* window ) { -#if defined(XP_UNIX) && !defined(__APPLE__) +#if defined(XP_UNIX) Window control; unsigned int i_control_height = 0, i_control_width = 0; #endif @@ -362,13 +361,10 @@ NPError NPP_SetWindow( NPP instance, NPWindow* window ) return NPERR_NO_ERROR; } -#if defined(XP_UNIX) && !defined(__APPLE__) +#if defined(XP_UNIX) control = p_plugin->getControlWindow(); #endif - libvlc_exception_t ex; - libvlc_exception_init(&ex); - libvlc_instance_t *p_vlc = p_plugin->getVLC(); /* @@ -406,10 +402,11 @@ NPError NPP_SetWindow( NPP instance, NPWindow* window ) clip.left = window->clipRect.left; clip.bottom = window->clipRect.bottom; clip.right = window->clipRect.right; - - libvlc_video_set_viewport(p_vlc, p_plugin->getMD(&ex), &view, &clip, &ex); - libvlc_exception_clear(&ex); - +#ifdef NOT_WORKING + libvlc_video_set_viewport(p_vlc, p_plugin->getMD(), &view, &clip); +#else +#warning disabled code +#endif /* remember new window */ p_plugin->setWindow(*window); } @@ -467,7 +464,7 @@ NPError NPP_SetWindow( NPP instance, NPWindow* window ) } #endif /* XP_WIN */ -#ifdef XP_UNIX +#if defined(XP_UNIX) /* default to hidden toolbar, shown at the end of this method if asked * * developers note : getToolbarSize need to wait the end of this method */ @@ -540,11 +537,11 @@ NPError NPP_SetWindow( NPP instance, NPWindow* window ) { if( p_plugin->psz_target ) { - if( p_plugin->playlist_add( p_plugin->psz_target, NULL ) != -1 ) + if( p_plugin->playlist_add( p_plugin->psz_target ) != -1 ) { if( p_plugin->b_autoplay ) { - p_plugin->playlist_play(NULL); + p_plugin->playlist_play(); } } p_plugin->b_stream = true; @@ -554,7 +551,11 @@ NPError NPP_SetWindow( NPP instance, NPWindow* window ) } NPError NPP_NewStream( NPP instance, NPMIMEType type, NPStream *stream, +#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20) NPBool seekable, uint16 *stype ) +#else + NPBool seekable, uint16_t *stype ) +#endif { if( NULL == instance ) { @@ -583,14 +584,23 @@ NPError NPP_NewStream( NPP instance, NPMIMEType type, NPStream *stream, return NPERR_GENERIC_ERROR; } +#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20) int32 NPP_WriteReady( NPP instance, NPStream *stream ) +#else +int32_t NPP_WriteReady( NPP instance, NPStream *stream ) +#endif { /* TODO */ return 8*1024; } +#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20) int32 NPP_Write( NPP instance, NPStream *stream, int32 offset, int32 len, void *buffer ) +#else +int32_t NPP_Write( NPP instance, NPStream *stream, int32_t offset, + int32_t len, void *buffer ) +#endif { /* TODO */ return len; @@ -618,11 +628,11 @@ void NPP_StreamAsFile( NPP instance, NPStream *stream, const char* fname ) return; } - if( p_plugin->playlist_add( stream->url, NULL ) != -1 ) + if( p_plugin->playlist_add( stream->url ) != -1 ) { if( p_plugin->b_autoplay ) { - p_plugin->playlist_play(NULL); + p_plugin->playlist_play(); } } } @@ -707,7 +717,7 @@ void NPP_Print( NPP instance, NPPrint* printInfo ) /****************************************************************************** * Windows-only methods *****************************************************************************/ -#if XP_WIN +#if defined(XP_WIN) static LRESULT CALLBACK Manage( HWND p_hwnd, UINT i_msg, WPARAM wpar, LPARAM lpar ) { VlcPlugin* p_plugin = reinterpret_cast(GetWindowLongPtr(p_hwnd, GWLP_USERDATA)); @@ -730,8 +740,9 @@ static LRESULT CALLBACK Manage( HWND p_hwnd, UINT i_msg, WPARAM wpar, LPARAM lpa FillRect( hdc, &rect, (HBRUSH)GetStockObject(BLACK_BRUSH) ); SetTextColor(hdc, RGB(255, 255, 255)); SetBkColor(hdc, RGB(0, 0, 0)); - DrawText( hdc, WINDOW_TEXT, strlen(WINDOW_TEXT), &rect, - DT_CENTER|DT_VCENTER|DT_SINGLELINE); + if( p_plugin->psz_text ) + DrawText( hdc, p_plugin->psz_text, strlen(p_plugin->psz_text), &rect, + DT_CENTER|DT_VCENTER|DT_SINGLELINE); EndPaint( p_hwnd, &paintstruct ); return 0L; @@ -747,7 +758,7 @@ static LRESULT CALLBACK Manage( HWND p_hwnd, UINT i_msg, WPARAM wpar, LPARAM lpa /****************************************************************************** * UNIX-only methods *****************************************************************************/ -#ifdef XP_UNIX +#if defined(XP_UNIX) static void Redraw( Widget w, XtPointer closure, XEvent *event ) { VlcPlugin* p_plugin = reinterpret_cast(closure); @@ -774,9 +785,10 @@ static void Redraw( Widget w, XtPointer closure, XEvent *event ) gcv.foreground = WhitePixel( p_display, 0 ); XChangeGC( p_display, gc, GCForeground, &gcv ); - XDrawString( p_display, video, gc, - window.width / 2 - 40, (window.height - i_control_height) / 2, - WINDOW_TEXT, strlen(WINDOW_TEXT) ); + if( p_plugin->psz_text ) + XDrawString( p_display, video, gc, + window.width / 2 - 40, (window.height - i_control_height) / 2, + p_plugin->psz_text, strlen(p_plugin->psz_text) ); XFreeGC( p_display, gc ); p_plugin->redrawToolbar(); @@ -795,14 +807,10 @@ static void ControlHandler( Widget w, XtPointer closure, XEvent *event ) if( p_plugin && p_plugin->b_toolbar ) { int i_playing; - libvlc_exception_t ex; - libvlc_exception_init( &ex ); - libvlc_media_player_t *p_md = p_plugin->getMD(&ex); - libvlc_exception_clear( &ex ); + libvlc_media_player_t *p_md = p_plugin->getMD(); - i_playing = p_plugin->playlist_isplaying( &ex ); - libvlc_exception_clear( &ex ); + i_playing = p_plugin->playlist_isplaying(); vlc_toolbar_clicked_t clicked; clicked = p_plugin->getToolbarButtonClicked( i_xPos, i_yPos ); @@ -812,33 +820,29 @@ static void ControlHandler( Widget w, XtPointer closure, XEvent *event ) case clicked_Pause: { if( i_playing == 1 ) - p_plugin->playlist_pause( &ex ); + p_plugin->playlist_pause(); else - p_plugin->playlist_play( &ex ); - - libvlc_exception_clear( &ex ); + p_plugin->playlist_play(); } break; case clicked_Stop: { - p_plugin->playlist_stop(&ex); - libvlc_exception_clear( &ex ); + p_plugin->playlist_stop(); } break; case clicked_Fullscreen: { - p_plugin->set_fullscreen( 1, &ex ); - libvlc_exception_clear( &ex ); + p_plugin->set_fullscreen( 1 ); } break; case clicked_Mute: case clicked_Unmute: { - libvlc_audio_toggle_mute( p_plugin->getVLC(), &ex ); - libvlc_exception_clear( &ex ); + if( p_md ) + libvlc_audio_toggle_mute( p_md ); } break; @@ -848,14 +852,12 @@ static void ControlHandler( Widget w, XtPointer closure, XEvent *event ) if( p_md ) { int64_t f_length; - f_length = libvlc_media_player_get_length( p_md, &ex ) / 100; - libvlc_exception_clear( &ex ); + f_length = libvlc_media_player_get_length( p_md ) / 100; f_length = (float)f_length * ( ((float)i_xPos-4.0 ) / ( ((float)i_width-8.0)/100) ); - libvlc_media_player_set_time( p_md, f_length, &ex ); - libvlc_exception_clear( &ex ); + libvlc_media_player_set_time( p_md, f_length ); } } break;