VocalEasel/Sources/VLSoundOut.h

53 lines
1.1 KiB
C
Raw Normal View History

2007-04-27 06:41:34 +00:00
//
// File: VLSoundOut.h - Sound output and file conversion
//
// Author(s):
//
// (MN) Matthias Neeracher
//
2008-05-29 18:54:30 +00:00
// Copyright © 2005-2008 Matthias Neeracher
2007-04-27 06:41:34 +00:00
//
2006-09-11 02:49:56 +00:00
#include "VLModel.h"
2006-11-13 04:26:09 +00:00
#import <CoreFoundation/CoreFoundation.h>
2008-05-29 18:54:30 +00:00
#include <AudioToolbox/AudioToolbox.h>
2006-09-11 02:49:56 +00:00
class VLSoundEvent {
protected:
VLSoundEvent() {}
public:
virtual ~VLSoundEvent();
virtual void Perform() {}
};
class VLSoundScheduler {
public:
virtual void Schedule(VLSoundEvent * what, float when);
virtual ~VLSoundScheduler() {}
};
2006-09-11 02:49:56 +00:00
class VLSoundOut {
public:
static VLSoundOut * Instance();
2006-11-27 07:01:38 +00:00
static VLSoundOut * FileWriter(CFURLRef file, OSType dataFormat);
static void SetScheduler(VLSoundScheduler * scheduler);
2006-09-11 02:49:56 +00:00
virtual void PlayNote(const VLNote & note) = 0;
virtual void PlayChord(const VLChord & chord) = 0;
2008-05-29 18:54:30 +00:00
void PlayFile(CFDataRef file);
virtual void PlaySequence(MusicSequence music) = 0;
2008-07-05 13:56:51 +00:00
virtual void Stop(bool pause=true) = 0;
virtual bool Playing() = 0;
2008-05-29 18:54:30 +00:00
virtual void SetPlayRate(float rate) = 0;
virtual void SetTime(MusicTimeStamp time) = 0;
2006-09-11 02:49:56 +00:00
virtual ~VLSoundOut();
};
// Local Variables:
// mode:C++
// End: