annotate audioio/AudioCallbackPlayTarget.h @ 132:3b61a975b47e sv1-v1.3 sv1-v1.3rc1

* Updates for 1.3
author Chris Cannam
date Thu, 10 Jul 2008 12:50:56 +0000
parents 9fc4b256c283
children
rev   line source
Chris@43 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@43 2
Chris@43 3 /*
Chris@43 4 Sonic Visualiser
Chris@43 5 An audio file viewer and annotation editor.
Chris@43 6 Centre for Digital Music, Queen Mary, University of London.
Chris@43 7 This file copyright 2006 Chris Cannam.
Chris@43 8
Chris@43 9 This program is free software; you can redistribute it and/or
Chris@43 10 modify it under the terms of the GNU General Public License as
Chris@43 11 published by the Free Software Foundation; either version 2 of the
Chris@43 12 License, or (at your option) any later version. See the file
Chris@43 13 COPYING included with this distribution for more information.
Chris@43 14 */
Chris@43 15
Chris@43 16 #ifndef _AUDIO_CALLBACK_PLAY_TARGET_H_
Chris@43 17 #define _AUDIO_CALLBACK_PLAY_TARGET_H_
Chris@43 18
Chris@43 19 #include <QObject>
Chris@43 20
Chris@43 21 class AudioCallbackPlaySource;
Chris@43 22
Chris@43 23 class AudioCallbackPlayTarget : public QObject
Chris@43 24 {
Chris@43 25 Q_OBJECT
Chris@43 26
Chris@43 27 public:
Chris@43 28 AudioCallbackPlayTarget(AudioCallbackPlaySource *source);
Chris@43 29 virtual ~AudioCallbackPlayTarget();
Chris@43 30
Chris@43 31 virtual bool isOK() const = 0;
Chris@43 32
Chris@70 33 virtual void shutdown() = 0;
Chris@70 34
Chris@91 35 virtual double getCurrentTime() const = 0;
Chris@91 36
Chris@43 37 float getOutputGain() const {
Chris@43 38 return m_outputGain;
Chris@43 39 }
Chris@43 40
Chris@43 41 public slots:
Chris@43 42 /**
Chris@43 43 * Set the playback gain (0.0 = silence, 1.0 = levels unmodified)
Chris@43 44 */
Chris@43 45 virtual void setOutputGain(float gain);
Chris@43 46
Chris@43 47 /**
Chris@43 48 * The main source model (providing the playback sample rate) has
Chris@43 49 * been changed. The target should query the source's sample
Chris@43 50 * rate, set its output sample rate accordingly, and call back on
Chris@43 51 * the source's setTargetSampleRate to indicate what sample rate
Chris@43 52 * it succeeded in setting at the output. If this differs from
Chris@43 53 * the model rate, the source will resample.
Chris@43 54 */
Chris@43 55 virtual void sourceModelReplaced() = 0;
Chris@43 56
Chris@43 57 protected:
Chris@43 58 AudioCallbackPlaySource *m_source;
Chris@43 59 float m_outputGain;
Chris@43 60 };
Chris@43 61
Chris@43 62 #endif
Chris@43 63