Adding support for writing zlib compressed set files and fixing audio
[terminatorX.git] / src / tX_event.cc
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.cc
20  
21     Description: This implements the sequencer events.
22 */ 
23
24 #include <tX_event.h>
25 #include <tX_global.h>
26
27 void tX_event :: store (FILE *rc, gzFile rz, char *indent) {
28         tX_store("%s<event pid=\"%i\" value=\"%lf\" time=\"%i\"/>\n", indent, sp->get_persistence_id(), value, timestamp);
29 }
30
31 tX_event :: tX_event (xmlDocPtr doc, xmlNodePtr node) {
32         unsigned int sp_persistence_id;
33         char *buffer;
34         
35         buffer=(char *) xmlGetProp(node, (xmlChar *) "pid");
36         if (buffer) sscanf(buffer, "%i", &sp_persistence_id);
37         
38         buffer=(char *) xmlGetProp(node, (xmlChar *) "value");
39         if (buffer) sscanf(buffer, "%f", &value);
40         
41         buffer=(char *) xmlGetProp(node, (xmlChar *) "time");
42         if (buffer) sscanf(buffer, "%i", &timestamp);
43
44         sp=tX_seqpar::get_sp_by_persistence_id(sp_persistence_id);
45         
46         if (!sp) {
47                 tX_error("fatal: couldn't resolve seq. parameter for event at %i.", timestamp);
48         }
49 }