1 /**
2  * MltParser.h - MLT Wrapper
3  * Copyright (C) 2004-2015 Meltytech, LLC
4  * Author: Charles Yates <charles.yates@gmail.com>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
19  */
20 
21 #ifndef MLTPP_PARSER_H
22 #define MLTPP_PARSER_H
23 
24 #include "MltConfig.h"
25 
26 #include <framework/mlt.h>
27 #include "MltProperties.h"
28 
29 namespace Mlt
30 {
31 	class Properties;
32 	class Service;
33 	class Producer;
34 	class Playlist;
35 	class Tractor;
36 	class Multitrack;
37 	class Filter;
38 	class Transition;
39 
40 	class MLTPP_DECLSPEC Parser : public Properties
41 	{
42 		private:
43 			mlt_parser parser;
44 		public:
45 			Parser( );
46 			~Parser( );
47 			int start( Service &service );
48 			virtual mlt_properties get_properties( );
49 			virtual int on_invalid( Service *object );
50 			virtual int on_unknown( Service *object );
51 			virtual int on_start_producer( Producer *object );
52 			virtual int on_end_producer( Producer *object );
53 			virtual int on_start_playlist( Playlist *object );
54 			virtual int on_end_playlist( Playlist *object );
55 			virtual int on_start_tractor( Tractor *object );
56 			virtual int on_end_tractor( Tractor *object );
57 			virtual int on_start_multitrack( Multitrack *object );
58 			virtual int on_end_multitrack( Multitrack *object );
59 			virtual int on_start_track( );
60 			virtual int on_end_track( );
61 			virtual int on_start_filter( Filter *object );
62 			virtual int on_end_filter( Filter *object );
63 			virtual int on_start_transition( Transition *object );
64 			virtual int on_end_transition( Transition *object );
65 			virtual int on_start_chain( Chain *object );
66 			virtual int on_end_chain( Chain *object );
67 			virtual int on_start_link( Link *object );
68 			virtual int on_end_link( Link *object );
69 	};
70 }
71 
72 #endif
73