annotate audioio/AudioCallbackPlayTarget.h @ 25:4593a7ebad93

* Ensure plugin parameters for a transform are saved in the .sv file and restored in case the plugin has to be run again * Make plugin dialog offer options for mixdown/single-channel use if the file has more than one channels but the plugin only accepts one * Fix incorrect samplerate playback for second file loaded if its samplerate differed from first * Add Zoom to Fit and Select Visible Range menu options, split out Import Audio into main model and secondary model options * Add stubs for cut, copy and paste operations (not implemented yet)
author Chris Cannam
date Thu, 30 Mar 2006 13:18:11 +0000
parents ebe07d3560e6
children
rev   line source
Chris@19 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@0 2
Chris@0 3 /*
Chris@21 4 Sonic Visualiser
Chris@21 5 An audio file viewer and annotation editor.
Chris@21 6 Centre for Digital Music, Queen Mary, University of London.
Chris@21 7 This file copyright 2006 Chris Cannam.
Chris@0 8
Chris@21 9 This program is free software; you can redistribute it and/or
Chris@21 10 modify it under the terms of the GNU General Public License as
Chris@21 11 published by the Free Software Foundation; either version 2 of the
Chris@21 12 License, or (at your option) any later version. See the file
Chris@21 13 COPYING included with this distribution for more information.
Chris@0 14 */
Chris@0 15
Chris@0 16 #ifndef _AUDIO_CALLBACK_PLAY_TARGET_H_
Chris@0 17 #define _AUDIO_CALLBACK_PLAY_TARGET_H_
Chris@0 18
Chris@0 19 #include <QObject>
Chris@0 20
Chris@0 21 class AudioCallbackPlaySource;
Chris@0 22
Chris@0 23 class AudioCallbackPlayTarget : public QObject
Chris@0 24 {
Chris@0 25 Q_OBJECT
Chris@0 26
Chris@0 27 public:
Chris@0 28 AudioCallbackPlayTarget(AudioCallbackPlaySource *source);
Chris@0 29 virtual ~AudioCallbackPlayTarget();
Chris@0 30
Chris@0 31 virtual bool isOK() const = 0;
Chris@0 32
Chris@0 33 float getOutputGain() const {
Chris@0 34 return m_outputGain;
Chris@0 35 }
Chris@0 36
Chris@0 37 public slots:
Chris@0 38 /**
Chris@0 39 * Set the playback gain (0.0 = silence, 1.0 = levels unmodified)
Chris@0 40 */
Chris@0 41 virtual void setOutputGain(float gain);
Chris@0 42
Chris@1 43 /**
Chris@1 44 * The main source model (providing the playback sample rate) has
Chris@1 45 * been changed. The target should query the source's sample
Chris@1 46 * rate, set its output sample rate accordingly, and call back on
Chris@1 47 * the source's setTargetSampleRate to indicate what sample rate
Chris@1 48 * it succeeded in setting at the output. If this differs from
Chris@1 49 * the model rate, the source will resample.
Chris@1 50 */
Chris@0 51 virtual void sourceModelReplaced() = 0;
Chris@0 52
Chris@0 53 protected:
Chris@0 54 AudioCallbackPlaySource *m_source;
Chris@0 55 float m_outputGain;
Chris@0 56 };
Chris@0 57
Chris@0 58 #endif
Chris@0 59