File: trackdata_op.h

package info (click to toggle)
libofa 0.9.3-21
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 2,080 kB
  • sloc: cpp: 24,487; sh: 8,366; makefile: 47; ansic: 14
file content (85 lines) | stat: -rw-r--r-- 2,243 bytes parent folder | download | duplicates (8)
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
/* ------------------------------------------------------------------

   libofa -- the Open Fingerprint Architecture library

   Copyright (C) 2006 MusicIP Corporation
   All rights reserved.

-------------------------------------------------------------------*/
// FILE: "trackdata_op.h"
// MODULE: Specification file for track data elements
// AUTHOR: Stephen Pope
// DATE CREATED: 01/12/06

#ifndef TRACK_DATA_OP_H
#define TRACK_DATA_OP_H 1


class TrackData_op {

public:
	TrackData_op();
	TrackData_op(float time, float frequency, float amplitude, float frDur);
	~TrackData_op();

// Accessing methods

	float getTime() const { return StartTime; }
	float getAmplitude() const { return Amplitude; }
	float getPitch() const { return Pitch;}
	float getEndPitch() const { return EndPitch;}
	float getAvgAmplitude() const { return AvgAmplitude; }
	float getAvgPitch() const { return AvgPitch;}
	void setAvgAmplitude(float val) { AvgAmplitude = val; }
	void setAvgPitch(float val) { AvgPitch = val;}
	void setEndPitch(float val) { EndPitch = val;}

	float getDuration();
	float getStartTime() const { return StartTime; }

	void SetInTrack(bool in) { InTrack = in; }
	bool IsInTrack() { return InTrack; }

// Data/frame/list structure

	void linkTo(TrackData_op* pr);
	void linkPrevious(TrackData_op* pr) { previous = pr; }
	void linkNext(TrackData_op* pr) { next = pr; }

	TrackData_op* getPrev() const { return previous; }
	TrackData_op* getNext() const { return next; }
	TrackData_op* getHigher() const { return higher; }
	void linkHigher(TrackData_op* pr) { higher = pr; }
	TrackData_op* getHead();
	TrackData_op* getTail();

// Inquiry

	bool isOrphan() const { return ((previous == 0) && (next == 0)); }
	bool isHead() const { return ((previous == 0) && (next != 0)); }
	bool isTail() const { return ((previous != 0) && (next == 0)); }

private:

// Instance variables

	float Amplitude;		// single values
	float Pitch;
	float StartTime;
	float EndTime;
	float AvgAmplitude;
	float AvgPitch;
	float EndPitch;
	float FrameDur;

// Inter-item links

	TrackData_op* previous;
	TrackData_op* next;
	TrackData_op* higher;

// State
	bool InTrack;
};

#endif