Commit 72f3bf6b authored by Filippo Carone's avatar Filippo Carone

audio / video libvlc functions binded.

parent fcd621cc
/***************************************************************************** /*****************************************************************************
* JVLC.java: Main Java Class, represents a libvlc_instance_t object * JVLC.java: Main Java Class, represents a libvlc_instance_t object
***************************************************************************** *****************************************************************************
*
* Copyright (C) 1998-2006 the VideoLAN team * Copyright (C) 1998-2006 the VideoLAN team
* *
* $Id$ * Author: Filippo Carone <filippo@carone.org>
* *
* Authors: Filippo Carone <filippo@carone.org> * Created on 28-feb-2006
* *
* This program is free software; you can redistribute it and/or modify * $Id$
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is free software; you can redistribute it
* but WITHOUT ANY WARRANTY; without even the implied warranty of * and/or modify it under the terms of the GNU General Public License
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * as published by the Free Software Foundation; either version 2 of the
* GNU General Public License for more details. * License, or (at your option) any later version.
* *
* You should have received a copy of the GNU General Public License * This program is distributed in the hope that it will be useful, but
* along with this program; if not, write to the Free Software * WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/ *
*/
/**
* @author Filippo Carone <filippo@carone.org>
*/
package org.videolan.jvlc; package org.videolan.jvlc;
public class JVLC implements JLibVLC { public class JVLC implements JLibVLC {
static { static {
System.load(System.getProperty("user.dir") + "/libjvlc.so"); System.load(System.getProperty( "user.dir" ) + "/libjvlc.so" );
} }
...@@ -36,50 +43,72 @@ public class JVLC implements JLibVLC { ...@@ -36,50 +43,72 @@ public class JVLC implements JLibVLC {
public JVLC() { public JVLC() {
_instance = createInstance(); _instance = createInstance();
playlist = new Playlist(_instance); playlist = new Playlist( _instance );
} }
public JVLC(String[] args) { public JVLC(String[] args) {
_instance = createInstance(args); _instance = createInstance( args );
playlist = new Playlist(_instance); playlist = new Playlist( _instance );
} }
/*
* Core methods
*/
private native long createInstance(); private native long createInstance();
private native long createInstance(String[] args); private native long createInstance( String[] args );
public void getMute() { /*
* Audio native methods
*/
private native boolean _getMute();
private native void _setMute( boolean value );
private native void _toggleMute();
private native int _getVolume();
private native void _setVolume( int volume );
/*
* Video native methods
*/
private native void _toggleFullscreen();
private native void _setFullscreen( boolean value);
private native boolean _getFullscreen();
public boolean getMute() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return _getMute();
} }
public void setMute() { public void setMute(boolean value) {
// TODO Auto-generated method stub _setMute( value );
} }
public void getVolume() { public void toggleMute() {
// TODO Auto-generated method stub _toggleMute();
}
public int getVolume() {
return _getVolume();
} }
public void setVolume() { public void setVolume(int volume) {
// TODO Auto-generated method stub _setVolume( volume );
} }
public void toggleFullscreen() { public void toggleFullscreen() {
// TODO Auto-generated method stub _toggleFullscreen();
} }
public void setFullscreen() { public void setFullscreen( boolean value ) {
// TODO Auto-generated method stub _setFullscreen( value );
} }
public void getFullscreen() { public boolean getFullscreen() {
// TODO Auto-generated method stub return _getFullscreen();
} }
public void getLength() { public void getLength() {
...@@ -111,4 +140,11 @@ public class JVLC implements JLibVLC { ...@@ -111,4 +140,11 @@ public class JVLC implements JLibVLC {
return _instance; return _instance;
} }
/*
* Getters and setters
*/
public Playlist getPlaylist() {
return playlist;
}
} }
/***************************************************************************** /*****************************************************************************
* JVLC.java: JNI interface for vlc Java Bindings * JVLC.java: JNI interface for vlc Java Bindings
***************************************************************************** *****************************************************************************
* Copyright (C) 1998-2005 the VideoLAN team * Copyright (C) 1998-2006 the VideoLAN team
*
* $Id$
* *
* Authors: Filippo Carone <filippo@carone.org> * Authors: Filippo Carone <filippo@carone.org>
* *
* $Id$
*
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
...@@ -40,16 +40,22 @@ jlong getPlaylistInstance (JNIEnv *env, jobject _this); ...@@ -40,16 +40,22 @@ jlong getPlaylistInstance (JNIEnv *env, jobject _this);
JNIEXPORT jlong JNICALL Java_org_videolan_jvlc_JVLC_createInstance__ (JNIEnv *env, jobject _this) { JNIEXPORT jlong JNICALL Java_org_videolan_jvlc_JVLC_createInstance__ (JNIEnv *env, jobject _this) {
// res is the pointer to libvlc_instance_t
long res; long res;
libvlc_exception_t *exception = ( libvlc_exception_t * ) malloc( sizeof( libvlc_exception_t )); libvlc_exception_t *exception = ( libvlc_exception_t * ) malloc( sizeof( libvlc_exception_t ));
libvlc_exception_init( exception ); libvlc_exception_init( exception );
res = ( long ) libvlc_new( 0, NULL, exception ); res = ( long ) libvlc_new( 0, NULL, exception );
if ( libvlc_exception_raised( exception ))
{
///\TODO: raise java exception
printf("%s\n", libvlc_exception_get_message( exception ));
}
free( exception ); free( exception );
return res; return res;
} }
JNIEXPORT jlong JNICALL Java_org_videolan_jvlc_JVLC_createInstance___3Ljava_lang_String_2 (JNIEnv *env, jobject _this, jobjectArray args) { JNIEXPORT jlong JNICALL Java_org_videolan_jvlc_JVLC_createInstance___3Ljava_lang_String_2 (JNIEnv *env, jobject _this, jobjectArray args) {
...@@ -79,6 +85,233 @@ JNIEXPORT jlong JNICALL Java_org_videolan_jvlc_JVLC_createInstance___3Ljava_lang ...@@ -79,6 +85,233 @@ JNIEXPORT jlong JNICALL Java_org_videolan_jvlc_JVLC_createInstance___3Ljava_lang
} }
/*
* Audio native functions
*/
JNIEXPORT jboolean JNICALL Java_org_videolan_jvlc_JVLC__1getMute (JNIEnv *env, jobject _this)
{
// res is the final result
jboolean res;
long instance = 0;
libvlc_exception_t *exception = ( libvlc_exception_t * ) malloc( sizeof( libvlc_exception_t ));
libvlc_exception_init( exception );
instance = getPlaylistInstance( env, _this );
res = (jboolean) libvlc_audio_get_mute( ( libvlc_instance_t * ) instance, exception );
if ( libvlc_exception_raised( exception ))
{
///\TODO: raise java exception
printf("%s\n", libvlc_exception_get_message( exception ));
}
free( exception );
return res;
}
JNIEXPORT void JNICALL Java_org_videolan_jvlc_JVLC__1setMute (JNIEnv *env, jobject _this, jboolean value)
{
long instance = 0;
libvlc_exception_t *exception = ( libvlc_exception_t * ) malloc( sizeof( libvlc_exception_t ));
libvlc_exception_init( exception );
instance = getPlaylistInstance( env, _this );
libvlc_audio_set_mute( ( libvlc_instance_t * ) instance, value, exception );
if ( libvlc_exception_raised( exception ))
{
///\TODO: raise java exception
printf("%s\n", libvlc_exception_get_message( exception ));
}
free( exception );
}
JNIEXPORT void JNICALL Java_org_videolan_jvlc_JVLC__1toggleMute (JNIEnv *env, jobject _this)
{
long instance = 0;
libvlc_exception_t *exception = ( libvlc_exception_t * ) malloc( sizeof( libvlc_exception_t ));
libvlc_exception_init( exception );
instance = getPlaylistInstance( env, _this );
///\TODO: NO, this is not what we want.
libvlc_audio_get_mute( ( libvlc_instance_t * ) instance, exception );
if ( libvlc_exception_raised( exception ))
{
///\TODO: raise java exception
printf("%s\n", libvlc_exception_get_message( exception ));
}
free( exception );
}
JNIEXPORT jint JNICALL Java_org_videolan_jvlc_JVLC__1getVolume (JNIEnv *env, jobject _this)
{
// res is the final result
jboolean res;
long instance = 0;
libvlc_exception_t *exception = ( libvlc_exception_t * ) malloc( sizeof( libvlc_exception_t ));
libvlc_exception_init( exception );
instance = getPlaylistInstance( env, _this );
res = (jboolean) libvlc_audio_get_mute( ( libvlc_instance_t * ) instance, exception );
if ( libvlc_exception_raised( exception ))
{
///\TODO: raise java exception
printf("%s\n", libvlc_exception_get_message( exception ));
}
free( exception );
return res;
}
JNIEXPORT jint JNICALL Java_org_videolan_jvlc_JVLC__1getVolume (JNIEnv *env, jobject _this, jboolean value)
{
jint res = 0;
long instance = 0;
libvlc_exception_t *exception = ( libvlc_exception_t * ) malloc( sizeof( libvlc_exception_t ));
libvlc_exception_init( exception );
instance = getPlaylistInstance( env, _this );
res = libvlc_audio_get_volume( ( libvlc_instance_t * ) instance, exception );
if ( libvlc_exception_raised( exception ))
{
///\TODO: raise java exception
printf("%s\n", libvlc_exception_get_message( exception ));
}
free( exception );
return res;
}
JNIEXPORT void JNICALL Java_org_videolan_jvlc_JVLC__1setVolume (JNIEnv *env, jobject _this, jint volume)
{
long instance = 0;
libvlc_exception_t *exception = ( libvlc_exception_t * ) malloc( sizeof( libvlc_exception_t ));
libvlc_exception_init( exception );
instance = getPlaylistInstance( env, _this );
libvlc_audio_set_volume( ( libvlc_instance_t * ) instance, volume, exception );
if ( libvlc_exception_raised( exception ))
{
///\TODO: raise java exception
printf("%s\n", libvlc_exception_get_message( exception ));
}
free( exception );
}
/*
* Video native functions
*/
JNIEXPORT void JNICALL Java_org_videolan_jvlc_JVLC__1toggleFullscreen (JNIEnv *env, jobject _this)
{
long instance = 0;
libvlc_input_t *input;
libvlc_exception_t *exception = ( libvlc_exception_t * ) malloc( sizeof( libvlc_exception_t ));
libvlc_exception_init( exception );
instance = getPlaylistInstance( env, _this );
input = libvlc_playlist_get_input( ( libvlc_instance_t *) instance, exception );
libvlc_toggle_fullscreen( input, exception );
if ( libvlc_exception_raised( exception ))
{
///\TODO: raise java exception
printf("%s\n", libvlc_exception_get_message( exception ));
}
free( exception );
}
JNIEXPORT void JNICALL Java_org_videolan_jvlc_JVLC__1setFullscreen (JNIEnv *env, jobject _this, jboolean value)
{
long instance = 0;
libvlc_input_t *input;
libvlc_exception_t *exception = ( libvlc_exception_t * ) malloc( sizeof( libvlc_exception_t ));
libvlc_exception_init( exception );
instance = getPlaylistInstance( env, _this );
input = libvlc_playlist_get_input( ( libvlc_instance_t *) instance, exception );
libvlc_set_fullscreen( input, value, exception );
if ( libvlc_exception_raised( exception ))
{
///\TODO: raise java exception
printf("%s\n", libvlc_exception_get_message( exception ));
}
free( exception );
}
JNIEXPORT jboolean JNICALL Java_org_videolan_jvlc_JVLC__1getFullscreen (JNIEnv *env, jobject _this)
{
int res = 0;
libvlc_input_t *input;
long instance = 0;
libvlc_exception_t *exception = ( libvlc_exception_t * ) malloc( sizeof( libvlc_exception_t ));
libvlc_exception_init( exception );
instance = getPlaylistInstance( env, _this );
input = libvlc_playlist_get_input( ( libvlc_instance_t *) instance, exception );
res = libvlc_get_fullscreen( input, exception );
if ( libvlc_exception_raised( exception ))
{
///\TODO: raise java exception
printf("%s\n", libvlc_exception_get_message( exception ));
}
free( exception );
return res;
}
/* /*
* Playlist native functions * Playlist native functions
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment