Commit 7da6d5ba authored by Olivier Aubert's avatar Olivier Aubert

Remove outdated corba control module

parent 86e5c555
......@@ -43,7 +43,6 @@
- skins2 : [ipkiss] [asmax]
- macosx : [thedj] [bigben] [fkuehne]
- lirc, dummy, rc, ncurses : [sam]
- corba : [oaubert]
- familiar : [jpsaman]
- http : [meuuh]
......
......@@ -4960,30 +4960,6 @@ then
fi
dnl
dnl corba (ORBit) plugin
dnl
dnl Default: do not enable corba
enablecorba=false
AC_ARG_ENABLE(corba,
[ --enable-corba corba interface support (default disabled)])
if test "${enable_corba}" = "yes"; then
GLIB_VERSION=2.3.2
PKG_CHECK_MODULES(CORBA,
ORBit-2.0 >= 2.8.0 \
glib-2.0 >= $GLIB_VERSION \
gobject-2.0 >= $GLIB_VERSION \
gthread-2.0 >= $GLIB_VERSION,
[
enablecorba=true
VLC_ADD_LDFLAGS([corba],[$CORBA_LIBS])
VLC_ADD_CFLAGS([corba],[$CORBA_CFLAGS])
VLC_ADD_PLUGINS([corba snapshot]) ],
[ enablecorba=false
AC_MSG_WARN(corba library not found) ])
fi
AM_CONDITIONAL(ENABLE_CORBA, test "$enablecorba" = "true")
AC_ARG_WITH(,[Misc options:])
dnl
......
/*
Module inspired by the MediaControl IDL
*/
module VLC {
const float VERSION = 0.1;
enum PositionOrigin {
AbsolutePosition, RelativePosition, ModuloPosition
};
enum PositionKey {
ByteCount, SampleCount, MediaTime
};
struct Position {
PositionOrigin origin;
PositionKey key;
long long value;
};
exception PositionKeyNotSupported { string message; };
exception PositionOriginNotSupported { string message; };
exception InvalidPosition { string message; };
exception PlaylistException { string message; };
exception InternalException { string message; };
typedef sequence<string> PlaylistSeq;
typedef sequence<octet> ByteSeq;
struct RGBPicture {
short width;
short height;
long type;
ByteSeq data;
long long date;
};
typedef sequence<RGBPicture> RGBPictureSeq;
/* Cf stream_control.h */
enum PlayerStatus { PlayingStatus, PauseStatus, ForwardStatus, BackwardStatus, InitStatus, EndStatus, UndefinedStatus };
struct StreamInformation {
PlayerStatus streamstatus;
string url; /* The URL of the current media stream */
long long position; /* actual location in the stream (in ms) */
long long length; /* total length of the stream (in ms) */
};
// MediaControl interface is similar to
// ControlledStream interface in MSS.
// It can be inherited by flow endpoints or
// FlowConnection interfaces.
interface MediaControl
{
Position get_media_position(in PositionOrigin an_origin,
in PositionKey a_key)
raises (InternalException, PositionKeyNotSupported);
void set_media_position(in Position a_position)
raises (InternalException, PositionKeyNotSupported, InvalidPosition);
void start(in Position a_position)
raises (InternalException, InvalidPosition, PlaylistException);
void pause(in Position a_position)
raises (InternalException, InvalidPosition);
void resume(in Position a_position)
raises (InternalException, InvalidPosition);
void stop(in Position a_position)
raises (InternalException, InvalidPosition);
oneway void exit (); // Exits the player (not in the original spec)
void playlist_add_item (in string a_file)
raises (PlaylistException);
void playlist_clear ()
raises (PlaylistException);
// Returns the list of files in playlist
PlaylistSeq playlist_get_list ()
raises (PlaylistException);
// Returns a snapshot of the currently displayed picture
RGBPicture snapshot (in Position a_position)
raises (InternalException);
RGBPictureSeq all_snapshots ()
raises (InternalException);
// Displays the message string, between "begin" and "end" positions
void display_text (in string message, in Position begin, in Position end)
raises (InternalException);
StreamInformation get_stream_information ()
raises (InternalException);
unsigned short sound_get_volume()
raises (InternalException);
void sound_set_volume(in unsigned short volume)
raises (InternalException);
};
};
## corba module declaration
SOURCES_corba = corba.c ../../../src/control/mediacontrol_plugin.c
nodist_SOURCES_corba = \
MediaControl-common.c \
MediaControl-skels.c \
MediaControl-stubs.c \
MediaControl.h \
$(NULL)
if ENABLE_CORBA
GENERATEDFILES = MediaControl-common.c MediaControl-skels.c MediaControl.h
endif
CORBAIDLFILE = MediaControl.idl
EXTRA_DIST += $(CORBAIDLFILE)
BUILT_SOURCES += $(GENERATEDFILES)
if ENABLE_CORBA
corbaidldir = $(datadir)/idl
corbaidl_DATA = $(CORBAIDLFILE)
## orbittypelibdir = $(libdir)/orbit-2.0
orbittypelibdir = $(libdir)/advene
orbittypelib_DATA = MediaControl.so
orbittypelib_CFLAGS=`$(VLC_CONFIG) --cflags plugin corba`
orbittypelib_LIBS=`$(VLC_CONFIG) --libs plugin corba`
ORBIT_IDL=`$(PKG_CONFIG) --variable=orbit_idl ORBit-2.0`
## MediaControl.so rules
MediaControl-imodule.o: MediaControl-imodule.c
$(CC) -fPIC -o $@ -c $< $(orbittypelib_CFLAGS)
MediaControl.so: MediaControl-imodule.o
$(CC) -shared -o $@ $< $(orbittypelib_LIBS)
## We have to invoke 2 times $(ORBIT_IDL), else the --imodule
## invocation builds MediaControl-common.c without some
## glue code that is needed.
$(GENERATEDFILES): $(CORBAIDLFILE)
$(ORBIT_IDL) --imodule $<
$(ORBIT_IDL) $<
clean:
$(RM) -f $(GENERATEDFILES)
endif
* Corba module (server) side
** Dependencies
To compile the CORBA plugin, you need the orbit2 developpement files
(for Debian, install the package liborbit2-dev)
** How to run it ?
You run the CORBA module with the following command line :
vlc --intf corba
The CORBA module is initialized and saves its IOR into the file
/tmp/vlc-ior.ref
(it will soon move to $HOME/.vlc-ior.ref)
** Code architecture
The binding between VLC and the MediaControl API (at C-level) is done
through the mediacontrol-core.c file. This file implements an
object-oriented layer API accessible in C.
The corba.c itself only translates calls from CORBA to this C API,
which makes the code clearer overall. Moreover, the same
mediacontrol-core.c file is used by the vlc-python module to implement the
same API.
* Client side
A sample client code can be found at http://liris.cnrs.fr/advene/
** Dependencies
The python client uses the pyorbit library developped by James
Henstridge <james@daa.com.au>
** Typelib information
To simply access the server, you do not need any reference to the IDL
(CORBA2.0 provides introspection facilities). However, if you want to
use the structures defined in the IDL (Position, Origin, ...), you
need to use the IDL information, and compile a dynamic lib
(MediaControl.so) from the IDL.
* Interesting pointers
- GLib reference manual
http://developer.gnome.org/doc/API/glib/
- IDL quickref :
http://www.cs.rpi.edu/~musser/dsc/idl/idl-overview.html
This diff is collapsed.
......@@ -19,14 +19,12 @@ CC=mipsel-linux-gcc CXX=mipsel-linux-g++ AR=mipsel-linux-ar LD=mipsel-linux-ld R
--disable-macosx --disable-coreaudio --disable-quicktime \
--disable-qnx \
--disable-ncurses \
--disable-corba \
--disable-mozilla \
--disable-mga \
--disable-svgalib --disable-ggi --disable-glide \
--disable-aa --disable-caca \
--disable-qte --disable-qt_video \
--disable-livedotcom \
--disable-corba \
--disable-v4l \
--disable-pvr \
--disable-satellite --disable-dvb \
......
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