AudioPlaySource.h
Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Sonic Visualiser
5  An audio file viewer and annotation editor.
6  Centre for Digital Music, Queen Mary, University of London.
7  This file copyright 2006 Chris Cannam.
8 
9  This program is free software; you can redistribute it and/or
10  modify it under the terms of the GNU General Public License as
11  published by the Free Software Foundation; either version 2 of the
12  License, or (at your option) any later version. See the file
13  COPYING included with this distribution for more information.
14 */
15 
16 #ifndef SV_AUDIO_PLAY_SOURCE_H
17 #define SV_AUDIO_PLAY_SOURCE_H
18 
19 #include "BaseTypes.h"
20 
21 #include <memory>
22 
23 struct Auditionable {
24  virtual ~Auditionable() { }
25 };
26 
36 {
37 public:
38  virtual ~AudioPlaySource() { }
39 
44  virtual void play(sv_frame_t startFrame) = 0;
45 
49  virtual void stop() = 0;
50 
54  virtual bool isPlaying() const = 0;
55 
60  virtual sv_frame_t getCurrentPlayingFrame() = 0;
61 
68  virtual bool getOutputLevels(float &left, float &right) = 0;
69 
74  virtual sv_samplerate_t getSourceSampleRate() const = 0;
75 
86  virtual sv_samplerate_t getDeviceSampleRate() const = 0;
87 
94  virtual int getTargetBlockSize() const = 0;
95 
102  virtual int getTargetChannelCount() const = 0;
103 
110  virtual void setAuditioningEffect(std::shared_ptr<Auditionable>) = 0;
111 
112 };
113 
114 #endif
double sv_samplerate_t
Sample rate.
Definition: BaseTypes.h:51
Simple interface for audio playback.
int64_t sv_frame_t
Frame index, the unit of our time axis.
Definition: BaseTypes.h:31
virtual ~Auditionable()
virtual ~AudioPlaySource()