annotate audioio/AudioCallbackPlayTarget.h @ 71:a8acc7841d70 1.2-stable

* Merge r884 from trunk
author Chris Cannam
date Fri, 30 Nov 2007 17:36:14 +0000
parents 3c5756fb6a68
children 9fc4b256c283
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@71 33 virtual void shutdown() = 0;
Chris@71 34
Chris@43 35 float getOutputGain() const {
Chris@43 36 return m_outputGain;
Chris@43 37 }
Chris@43 38
Chris@43 39 public slots:
Chris@43 40 /**
Chris@43 41 * Set the playback gain (0.0 = silence, 1.0 = levels unmodified)
Chris@43 42 */
Chris@43 43 virtual void setOutputGain(float gain);
Chris@43 44
Chris@43 45 /**
Chris@43 46 * The main source model (providing the playback sample rate) has
Chris@43 47 * been changed. The target should query the source's sample
Chris@43 48 * rate, set its output sample rate accordingly, and call back on
Chris@43 49 * the source's setTargetSampleRate to indicate what sample rate
Chris@43 50 * it succeeded in setting at the output. If this differs from
Chris@43 51 * the model rate, the source will resample.
Chris@43 52 */
Chris@43 53 virtual void sourceModelReplaced() = 0;
Chris@43 54
Chris@43 55 protected:
Chris@43 56 AudioCallbackPlaySource *m_source;
Chris@43 57 float m_outputGain;
Chris@43 58 };
Chris@43 59
Chris@43 60 #endif
Chris@43 61