bd5ff02a88e65abfa6f78f454e450631adb44ee1
[terminatorX.git] / src / tX_event.h
1 /*
2     terminatorX - realtime audio scratching software
3     Copyright (C) 1999-2002  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 class tX_event
34 {
35         private:
36         float                   value;
37         guint32                 timestamp;
38         tX_seqpar               *sp;
39         
40         public:
41         tX_event(guint32 time, float val, tX_seqpar *sp_in)
42                 {
43                         timestamp=time;
44                         value=val;
45                         sp=sp_in;
46                 }
47         tX_event(FILE *input);
48         void store(FILE *output);
49
50         tX_seqpar *get_sp() { return sp; }
51         guint32 get_timestamp() { return timestamp; }
52         float get_value() { return value; }
53         void set_value(float val) { value=val; }
54
55         char *get_vtt_name() { return sp->get_vtt_name(); }
56         const char *get_seqpar_name() { return sp->get_name(); }
57
58         void playback()
59                 {
60                         if (sp->is_untouched()) sp->exec_value(value);
61                 }
62 };
63
64 #endif