e31b1564e9ec7ef22a351615d1595904d3d397f0
[terminatorX.git] / src / tX_event.h
1 /*
2     terminatorX - realtime audio scratching software
3     Copyright (C) 1999-2003  Alexander K├Ânig
4  
5     This program is free software; you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation; either version 2 of the License, or
8     (at your option) any later version.
9  
10     This program 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
13     GNU General Public License for more details.
14  
15     You should have received a copy of the GNU General Public License
16     along with this program; if not, write to the Free Software
17     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  
19     File: tX_event.h
20  
21     Description: Header to tX_event.cc
22 */ 
23
24 #ifndef _h_tx_event_
25 #define _h_tx_event_ 1
26
27 #include "tX_seqpar.h"
28 #include "tX_vtt.h"
29 #include <stdio.h>
30 #include <glib.h>
31 #include "tX_types.h"
32
33 #include <libxml/xmlmemory.h>
34 #include <libxml/parser.h>
35
36 class tX_event
37 {
38         private:
39         float                   value;
40         guint32                 timestamp;
41         tX_seqpar               *sp;
42         
43         public:
44         tX_event(guint32 time, float val, tX_seqpar *sp_in)
45                 {
46                         timestamp=time;
47                         value=val;
48                         sp=sp_in;
49                 }
50 #ifdef ENABLE_TX_LEGACY         
51         tX_event(FILE *input);
52 #endif          
53         tX_event(xmlDocPtr, xmlNodePtr);
54         void store(FILE *output, char *indent);
55
56         tX_seqpar *get_sp() { return sp; }
57         guint32 get_timestamp() { return timestamp; }
58         float get_value() { return value; }
59         void set_value(float val) { value=val; }
60
61         char *get_vtt_name() { return sp->get_vtt_name(); }
62         const char *get_seqpar_name() { return sp->get_name(); }
63
64         void playback()
65                 {
66                         if (sp->is_untouched()) sp->exec_value(value);
67                 }
68 };
69
70 #endif