-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathScorePlayer.h
88 lines (64 loc) · 2.22 KB
/
ScorePlayer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
//////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1999 The Regents of the University of California
// Permission to use, copy, modify, and distribute this software and
// its documentation for any purpose, without fee, and without a
// written agreement is hereby granted, provided that the above copyright
// notice and this paragraph and the following two paragraphs appear in
// all copies.
//
// IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
// DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
// LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION,
// EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
// SUCH DAMAGE.
//
// THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
// AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON
// AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO
// PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
//
//////////////////////////////////////////////////////////////////////////////
//
// BRASS source file
//
// SCORE visualization player
//
//////////////////////////////////////////////////////////////////////////////
#ifndef _ScorePlayer_H
#define _ScorePlayer_H
#include <stdio.h>
#include <vector>
//#include <LEDA/stl_headers.h>
using std::vector;
class PlayerIndexItem {
public:
PlayerIndexItem() : diskOffset(-1), timeSlice(0) {}
~PlayerIndexItem() {}
long diskOffset;
unsigned int timeSlice;
};
class ScorePlayer {
public:
ScorePlayer() : currentFrame(0), dataFile(0), need_update(true) {}
~ScorePlayer();
bool Init(char *filename);
bool BuildIndex();
bool Go(int frame_number);
bool Forward(int delta);
bool Back(int delta);
bool Search(unsigned int timeslice);
void Display();
void Run();
void set_child_pid(pid_t id) { child_pid = id; }
void makeDummyFile();
void printHelpMsg();
private:
vector <PlayerIndexItem*> index;
int currentFrame;
FILE *dataFile;
pid_t child_pid;
bool need_update;
};
#endif // _ScoreStateGraph_H