Browse Source

nativewindowpriv: add setOrientation

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
pull/24/head
Thomas Guillem 12 years ago
committed by Jean-Baptiste Kempf
parent
commit
842b6578ae
  1. 29
      modules/video_output/android/nativewindowpriv.c
  2. 5
      modules/video_output/android/utils.c
  3. 3
      modules/video_output/android/utils.h

29
modules/video_output/android/nativewindowpriv.c

@ -259,3 +259,32 @@ int ANativeWindowPriv_cancel( void *window, void *p_handle )
return 0;
}
int ANativeWindowPriv_setOrientation( void *window, int orientation )
{
ANativeWindow *anw = (ANativeWindow *)window;
status_t err = NO_ERROR;
int transform;
CHECK_ANW();
switch( orientation )
{
case 90:
transform = NATIVE_WINDOW_TRANSFORM_ROT_90;
break;
case 180:
transform = NATIVE_WINDOW_TRANSFORM_ROT_180;
break;
case 270:
transform = NATIVE_WINDOW_TRANSFORM_ROT_270;
break;
default:
transform = 0;
}
err = native_window_set_buffers_transform( anw, transform );
CHECK_ERR();
return 0;
}

5
modules/video_output/android/utils.c

@ -61,11 +61,12 @@ int LoadNativeWindowPrivAPI(native_window_priv_api_t *native)
native->lock = dlsym(RTLD_DEFAULT, "ANativeWindowPriv_lock");
native->queue = dlsym(RTLD_DEFAULT, "ANativeWindowPriv_queue");
native->cancel = dlsym(RTLD_DEFAULT, "ANativeWindowPriv_cancel");
native->setOrientation = dlsym(RTLD_DEFAULT, "ANativeWindowPriv_setOrientation");
return native->connect && native->disconnect && native->setup &&
native->getMinUndequeued && native->setBufferCount && native->setCrop &&
native->dequeue && native->lock && native->queue && native->cancel
? 0 : -1;
native->dequeue && native->lock && native->queue && native->cancel &&
native->setOrientation ? 0 : -1;
}
extern void jni_getMouseCoordinates(int *, int *, int *, int *);

3
modules/video_output/android/utils.h

@ -59,6 +59,8 @@ typedef int (*ptr_ANativeWindowPriv_dequeue) (void *, void **);
typedef int (*ptr_ANativeWindowPriv_lock) (void *, void *);
typedef int (*ptr_ANativeWindowPriv_queue) (void *, void *);
typedef int (*ptr_ANativeWindowPriv_cancel) (void *, void *);
typedef int (*ptr_ANativeWindowPriv_setOrientation) (void *, int);
typedef struct
{
ptr_ANativeWindowPriv_connect connect;
@ -71,6 +73,7 @@ typedef struct
ptr_ANativeWindowPriv_lock lock;
ptr_ANativeWindowPriv_queue queue;
ptr_ANativeWindowPriv_cancel cancel;
ptr_ANativeWindowPriv_setOrientation setOrientation;
} native_window_priv_api_t;
/* Fill the structure passed as parameter and return 0 if all symbols are

Loading…
Cancel
Save