annotate audioio/AudioCallbackPlayTarget.h @ 52:43ad8d909e28

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