[Mlt-devel] SF.net SVN: mlt: [1060] trunk/mlt++
Brought to you by:
ddennedy,
lilo_booter
From: <dde...@us...> - 2008-02-07 06:02:44
|
Revision: 1060 http://mlt.svn.sourceforge.net/mlt/?rev=1060&view=rev Author: ddennedy Date: 2008-02-06 22:02:34 -0800 (Wed, 06 Feb 2008) Log Message: ----------- Mlt.h, MltFactory.{h,cpp}, MltRepository.{h,cpp}, swig/mltpp.i: update to deal with changes and new capabilities in mlt_factory and mlt_repository. Modified Paths: -------------- trunk/mlt++/src/Makefile trunk/mlt++/src/Mlt.h trunk/mlt++/src/MltFactory.cpp trunk/mlt++/src/MltFactory.h trunk/mlt++/swig/mltpp.i Added Paths: ----------- trunk/mlt++/src/MltRepository.cpp trunk/mlt++/src/MltRepository.h Modified: trunk/mlt++/src/Makefile =================================================================== --- trunk/mlt++/src/Makefile 2008-02-07 05:57:43 UTC (rev 1059) +++ trunk/mlt++/src/Makefile 2008-02-07 06:02:34 UTC (rev 1060) @@ -28,6 +28,7 @@ MltProfile.o \ MltProperties.o \ MltPushConsumer.o \ + MltRepository.o \ MltResponse.o \ MltService.o \ MltTokeniser.o \ Modified: trunk/mlt++/src/Mlt.h =================================================================== --- trunk/mlt++/src/Mlt.h 2008-02-07 05:57:43 UTC (rev 1059) +++ trunk/mlt++/src/Mlt.h 2008-02-07 06:02:34 UTC (rev 1060) @@ -40,6 +40,7 @@ #include "MltProfile.h" #include "MltProperties.h" #include "MltPushConsumer.h" +#include "MltRepository.h" #ifndef WIN32 #include "MltResponse.h" #endif Modified: trunk/mlt++/src/MltFactory.cpp =================================================================== --- trunk/mlt++/src/MltFactory.cpp 2008-02-07 05:57:43 UTC (rev 1059) +++ trunk/mlt++/src/MltFactory.cpp 2008-02-07 06:02:34 UTC (rev 1060) @@ -24,11 +24,12 @@ #include "MltFilter.h" #include "MltTransition.h" #include "MltConsumer.h" +#include "MltRepository.h" using namespace Mlt; -int Factory::init( char *arg ) +Repository *Factory::init( const char *directory ) { - return mlt_factory_init( arg ); + return new Repository( mlt_factory_init( directory ) ); } Properties *Factory::event_object( ) Modified: trunk/mlt++/src/MltFactory.h =================================================================== --- trunk/mlt++/src/MltFactory.h 2008-02-07 05:57:43 UTC (rev 1059) +++ trunk/mlt++/src/MltFactory.h 2008-02-07 06:02:34 UTC (rev 1060) @@ -1,6 +1,7 @@ /** * MltFactory.h - MLT Wrapper * Copyright (C) 2004-2005 Charles Yates + * Copyright (C) 2008 Dan Dennedy <da...@de...> * Author: Charles Yates <cha...@pa...> * * This program is free software; you can redistribute it and/or modify @@ -37,11 +38,12 @@ class Transition; class Consumer; class Profile; + class Repository; class MLTPP_DECLSPEC Factory { public: - static int init( char *arg = NULL ); + static Repository *init( const char *directory = NULL ); static Properties *event_object( ); static Producer *producer( Profile& profile, char *id, char *arg = NULL ); static Filter *filter( Profile& profile, char *id, char *arg = NULL ); Added: trunk/mlt++/src/MltRepository.cpp =================================================================== --- trunk/mlt++/src/MltRepository.cpp (rev 0) +++ trunk/mlt++/src/MltRepository.cpp 2008-02-07 06:02:34 UTC (rev 1060) @@ -0,0 +1,50 @@ +/** + * MltRepository.cpp - MLT Wrapper + * Copyright (C) 2008 Dan Dennedy <da...@de...> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser 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, + * but 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include "MltRepository.h" +#include "MltProfile.h" +using namespace Mlt; + +Repository::Repository( const char* directory ) : + instance( NULL ) +{ + instance = mlt_repository_init( directory ); +} + +Repository::Repository( mlt_repository repository ) : + instance( repository ) +{ +} + +Repository::~Repository( ) +{ + if ( instance ) + mlt_repository_close( instance ); + instance = NULL; +} + +void Repository::register_service( mlt_service_type service_type, const char *service, void *symbol ) +{ + mlt_repository_register( instance, service_type, service, symbol ); +} + +void *Repository::create( Profile& profile, mlt_service_type type, const char *service, void *arg ) +{ + return mlt_repository_create( instance, profile.get_profile(), type, service, arg ); +} Added: trunk/mlt++/src/MltRepository.h =================================================================== --- trunk/mlt++/src/MltRepository.h (rev 0) +++ trunk/mlt++/src/MltRepository.h 2008-02-07 06:02:34 UTC (rev 1060) @@ -0,0 +1,50 @@ +/** + * MltRepository.h - MLT Wrapper + * Copyright (C) 2008 Dan Dennedy <da...@de...> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser 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, + * but 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef _MLTPP_REPOSITORY_H_ +#define _MLTPP_REPOSITORY_H_ + +#include "config.h" + +#ifdef SWIG +#define MLTPP_DECLSPEC +#endif + +#include <framework/mlt.h> + +namespace Mlt +{ + class Profile; + + class MLTPP_DECLSPEC Repository + { + private: + mlt_repository instance; + Repository( ) { } + public: + Repository( const char* directory ); + Repository( mlt_repository repository ); + ~Repository(); + + void register_service( mlt_service_type service_type, const char *service, void *symbol ); + void *create( Profile& profile, mlt_service_type type, const char *service, void *arg ); + }; +} + +#endif Modified: trunk/mlt++/swig/mltpp.i =================================================================== --- trunk/mlt++/swig/mltpp.i 2008-02-07 05:57:43 UTC (rev 1059) +++ trunk/mlt++/swig/mltpp.i 2008-02-07 06:02:34 UTC (rev 1060) @@ -30,6 +30,7 @@ */ namespace Mlt { +%newobject Factory::init( const char * ); %newobject Factory::producer( Profile &, char *, char * ); %newobject Factory::filter( Profile &, char *, char * ); %newobject Factory::transition( Profile &, char *, char * ); @@ -60,6 +61,7 @@ %include <framework/mlt_types.h> %include <framework/mlt_factory.h> %include <MltFactory.h> +%include <MltRepository.h> %include <MltEvent.h> %include <MltProperties.h> %include <MltFrame.h> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |