blob: d353249ac2009cba6a35a8822cea1af00af4b45c (
plain)
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
|
/* Starshatter: The Open Source Project
Copyright (c) 2021-2024, Starshatter: The Open Source Project Contributors
Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors
Copyright (c) 1997-2006, Destroyer Studios LLC.
AUTHOR: John DiCamillo
OVERVIEW
========
MusicTrack class
*/
#ifndef MusicTrack_h
#define MusicTrack_h
#include "Types.h"
#include "List.h"
#include "Text.h"
// +-------------------------------------------------------------------+
class Sound;
// +-------------------------------------------------------------------+
class MusicTrack
{
public:
enum STATE { NONE, FADE_IN, PLAY, FADE_OUT, STOP };
MusicTrack(const Text& name, int mode=0, int index=0);
virtual ~MusicTrack();
// Operations:
virtual void ExecFrame();
virtual void Play();
virtual void Stop();
virtual void FadeIn();
virtual void FadeOut();
// accessors / mutators
const Text& Name() const { return name; }
Sound* GetSound() const { return sound; }
int GetState() const { return state; }
int GetMode() const { return mode; }
int GetIndex() const { return index; }
int IsReady() const;
int IsPlaying() const;
int IsDone() const;
int IsLooped() const;
virtual long GetVolume() const;
virtual void SetVolume(long v);
virtual double GetTotalTime() const;
virtual double GetTimeRemaining() const;
virtual double GetTimeElapsed() const;
virtual double GetFadeTime() const { return fade_time; }
virtual void SetFadeTime(double t) { fade_time = t; }
protected:
Text name;
Sound* sound;
int state;
int mode;
int index;
double fade;
double fade_time;
};
#endif // MusicTrack_h
|