# include "config.h"
#endif
-#include <vlc/vlc.h>
+#include <vlc_common.h>
#include <vlc_interface.h>
#include <vlc_playlist.h>
#include <vlc_vout.h>
/* Allocate structure */
p_vout->p_sys = malloc( sizeof( vout_sys_t ) );
if( p_vout->p_sys == NULL )
- {
- msg_Err( p_vout, "out of memory" );
return VLC_ENOMEM;
- }
vlc_mutex_init( &p_vout->p_sys->lock );
switch( ((XButtonEvent *)&xevent)->button )
{
case Button1:
- var_Get( p_vout, "mouse-button-down", &val );
- val.i_int &= ~1;
- var_Set( p_vout, "mouse-button-down", val );
+ {
+ var_Get( p_vout, "mouse-button-down", &val );
+ val.i_int &= ~1;
+ var_Set( p_vout, "mouse-button-down", val );
+
+ val.b_bool = true;
+ var_Set( p_vout, "mouse-clicked", val );
- val.b_bool = true;
- var_Set( p_vout, "mouse-clicked", val );
+ vlc_value_t val; val.b_bool = false;
+ var_Set( p_vout->p_libvlc, "intf-popupmenu", val );
+ }
break;
case Button2:
{
- playlist_t *p_playlist;
-
var_Get( p_vout, "mouse-button-down", &val );
val.i_int &= ~2;
var_Set( p_vout, "mouse-button-down", val );
- p_playlist = vlc_object_find( p_vout,
- VLC_OBJECT_PLAYLIST,
- FIND_ANYWHERE );
- if( p_playlist != NULL )
- {
- vlc_value_t val;
- var_Get( p_playlist, "intf-show", &val );
- val.b_bool = !val.b_bool;
- var_Set( p_playlist, "intf-show", val );
- vlc_object_release( p_playlist );
- }
+ var_Get( p_vout->p_libvlc, "intf-show", &val );
+ val.b_bool = !val.b_bool;
+ var_Set( p_vout->p_libvlc, "intf-show", val );
}
break;
case Button3:
{
intf_thread_t *p_intf;
- playlist_t *p_playlist;
var_Get( p_vout, "mouse-button-down", &val );
val.i_int &= ~4;
vlc_object_release( p_intf );
}
- p_playlist = vlc_object_find( p_vout,
- VLC_OBJECT_PLAYLIST,
- FIND_ANYWHERE );
- if( p_playlist != NULL )
- {
- vlc_value_t val; val.b_bool = true;
- var_Set( p_playlist, "intf-popupmenu", val );
- vlc_object_release( p_playlist );
- }
+ vlc_value_t val; val.b_bool = true;
+ var_Set( p_vout->p_libvlc, "intf-popupmenu", val );
}
break;
p_win->video_window, p_win->gc, 0, 0,
p_win->i_width, p_win->i_height );
}
-#endif
+#endif
#if 0
if( p_vout->p_libvlc->p_input_bank->pp_input[0] != NULL )
== p_vout->p_sys->p_win->wm_delete_window ) )
{
/* the user wants to close the window */
- playlist_t * p_playlist =
- (playlist_t *)vlc_object_find( p_vout, VLC_OBJECT_PLAYLIST,
- FIND_ANYWHERE );
+ playlist_t * p_playlist = pl_Yield( p_vout );
if( p_playlist != NULL )
{
playlist_Stop( p_playlist );
- vlc_object_release( p_playlist );
+ pl_Release( p_vout );
}
}
}
*/
if ( p_vout->i_changes & VOUT_FULLSCREEN_CHANGE )
{
- vlc_value_t val_fs, val_ontop;
-
/* Update the object variable and trigger callback */
- val_fs.b_bool = !p_vout->b_fullscreen;
-
- var_Set( p_vout, "fullscreen", val_fs );
-
- /* Disable "always on top" in fullscreen mode */
- var_Get( p_vout, "video-on-top", &val_ontop );
- if( val_ontop.b_bool )
- WindowOnTop( p_vout, val_fs.b_bool );
+ var_SetBool( p_vout, "fullscreen", !p_vout->b_fullscreen );
ToggleFullScreen( p_vout );
p_vout->i_changes &= ~VOUT_FULLSCREEN_CHANGE;
if( !p_vout->b_fullscreen )
{
- p_win->owner_window = (Window)
- vout_RequestWindow( p_vout, &p_win->i_x, &p_win->i_y,
- &p_win->i_width, &p_win->i_height );
-
+ void *ptr = vout_RequestWindow( p_vout, &p_win->i_x, &p_win->i_y,
+ &p_win->i_width, &p_win->i_height );
+ p_win->owner_window = (uintptr_t)ptr;
xsize_hints.base_width = xsize_hints.width = p_win->i_width;
xsize_hints.base_height = xsize_hints.height = p_win->i_height;
xsize_hints.flags = PSize | PMinSize;
p_pic->V_PIXELS = (uint8_t*)p_pic->p_sys->p_image->data
+ p_pic->p_sys->p_image->offsets[1];
}
+
break;
#else
/* Create XImage / XvImage */
#ifdef MODULE_NAME_IS_xvideo
-
- /* Make sure the buffer is aligned to multiple of 16 */
- i_height = ( i_height + 15 ) >> 4 << 4;
- i_width = ( i_width + 15 ) >> 4 << 4;
-
p_image = XvShmCreateImage( p_display, i_xvport, i_chroma, 0,
i_width, i_height, p_shm );
#elif defined(MODULE_NAME_IS_xvmc)
/* Allocate memory for image */
#ifdef MODULE_NAME_IS_xvideo
-
- /* Make sure the buffer is aligned to multiple of 16 */
- i_height = ( i_height + 15 ) >> 4 << 4;
- i_width = ( i_width + 15 ) >> 4 << 4;
-
p_data = malloc( i_width * i_height * i_bits_per_pixel / 8 );
#elif defined(MODULE_NAME_IS_x11)
i_bytes_per_line = i_width * i_bytes_per_pixel;
p_data = malloc( i_bytes_per_line * i_height );
#endif
if( !p_data )
- {
- msg_Err( p_vout, "out of memory" );
return NULL;
- }
#ifdef MODULE_NAME_IS_x11
/* Optimize the quantum of a scanline regarding its size - the quantum is
#ifdef HAVE_SYS_SHM_H
if( event->request_code == i_shm_major ) /* MIT-SHM */
+ {
+ fprintf( stderr,
+ "[????????] x11 video output notice:"
+ " buggy X11 server claims shared memory\n"
+ "[????????] x11 video output notice:"
+ " support though it does not work (OpenSSH?)\n" );
return i_shm_major = 0;
+ }
#endif
+#ifndef HAVE_OSSO
XSetErrorHandler(NULL);
return (XSetErrorHandler(X11ErrorHandler))( display, event );
+#else
+ /* Work-around Maemo Xvideo bug */
+ return 0;
+#endif
}
#ifdef MODULE_NAME_IS_x11