1 /**
2  * MltRepository.h - MLT Wrapper
3  * Copyright (C) 2008-2017 Meltytech, LLC
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
18  */
19 
20 #ifndef MLTPP_REPOSITORY_H
21 #define MLTPP_REPOSITORY_H
22 
23 #include "MltConfig.h"
24 
25 #ifdef SWIG
26 #define MLTPP_DECLSPEC
27 #endif
28 
29 #include <framework/mlt.h>
30 
31 namespace Mlt
32 {
33 	class Profile;
34 	class Properties;
35 
36 	class MLTPP_DECLSPEC Repository
37 	{
38 		private:
39 			mlt_repository instance;
Repository()40 			Repository( ) { }
41 		public:
42 			Repository( const char* directory );
43 			Repository( mlt_repository repository );
44 			~Repository();
45 
46 			void register_service( mlt_service_type service_type, const char *service, mlt_register_callback symbol );
47 			void *create( Profile& profile, mlt_service_type type, const char *service, void *arg );
48 			Properties *consumers( ) const;
49 			Properties *filters( ) const;
50 			Properties *links( ) const;
51 			Properties *producers( ) const;
52 			Properties *transitions( ) const;
53 			void register_metadata( mlt_service_type type, const char *service, mlt_metadata_callback, void *callback_data );
54 			Properties *metadata( mlt_service_type type, const char *service ) const;
55 			Properties *languages( ) const;
56 			static Properties *presets();
57 	};
58 }
59 
60 #endif
61