Mercurial > hg > svapp
annotate audioio/AudioCallbackPlayTarget.h @ 187:5a40619c72d8 sv-v1.7.1
* Layer data editor window: fix sorting for columns in region model,
add Find feature
* RDF import: assign names to layers based on event types, if no suitable
labels are found in the RDF
* Add label to status bar showing the last text that was passed in current
layer (so e.g. counting 1, 2, 3, 4 if that's what beats are labelled)
* Better layout of text labels for region layers in segmentation mode when
they are close together
* Give text layer the same method for finding "nearest point" as region and
note layers, should improve its editability
author | Chris Cannam |
---|---|
date | Thu, 22 Oct 2009 15:54:21 +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 |