1 /**
2  * MltEvent.cpp - MLT Wrapper
3  * Copyright (C) 2004-2021 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 #include "MltEvent.h"
21 #include "MltFrame.h"
22 using namespace Mlt;
23 
24 
Event(mlt_event event)25 Event::Event( mlt_event event ) :
26 	instance( event )
27 {
28 	mlt_event_inc_ref( instance );
29 }
30 
Event(Event & event)31 Event::Event( Event &event ) :
32 	instance( event.get_event( ) )
33 {
34 	mlt_event_inc_ref( instance );
35 }
36 
~Event()37 Event::~Event( )
38 {
39 	mlt_event_close( instance );
40 }
41 
get_event()42 mlt_event Event::get_event( )
43 {
44 	return instance;
45 }
46 
is_valid()47 bool Event::is_valid( )
48 {
49 	return instance != NULL;
50 }
51 
block()52 void Event::block( )
53 {
54 	mlt_event_block( get_event( ) );
55 }
56 
unblock()57 void Event::unblock( )
58 {
59 	mlt_event_unblock( get_event( ) );
60 }
61 
62 
EventData(mlt_event_data data)63 EventData::EventData(mlt_event_data data)
64 	: instance(data)
65 {
66 }
67 
EventData(EventData & data)68 EventData::EventData(EventData& data)
69 	: instance(data.get_event_data())
70 {
71 }
72 
EventData(const EventData & data)73 EventData::EventData(const EventData& data)
74 	: instance(data.get_event_data())
75 {
76 }
77 
operator =(const EventData & data)78 EventData& EventData::operator=(const EventData& data)
79 {
80 	instance = data.get_event_data();
81 	return *this;
82 }
83 
get_event_data() const84 mlt_event_data EventData::get_event_data() const
85 {
86 	return instance;
87 }
88 
to_int() const89 int EventData::to_int() const
90 {
91 	return mlt_event_data_to_int(instance);
92 }
93 
to_string() const94 const char* EventData::to_string() const
95 {
96 	return mlt_event_data_to_string(instance);
97 }
98 
to_frame() const99 Frame EventData::to_frame() const
100 {
101 	return Frame(mlt_event_data_to_frame(instance));
102 }
103 
to_object() const104 void* EventData::to_object() const
105 {
106 	return mlt_event_data_to_object(instance);
107 }
108