Mercurial > hg > svcore
changeset 1338:8541563f1fd3 3.0-integration
Wire up record monitoring
author | Chris Cannam |
---|---|
date | Wed, 04 Jan 2017 16:03:12 +0000 |
parents | 3dcd83595bc8 |
children | df59bf0b4236 |
files | base/AudioPlaySource.h base/AudioRecordTarget.h base/ViewManagerBase.h files.pri |
diffstat | 4 files changed, 58 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/base/AudioPlaySource.h Wed Jan 04 14:22:39 2017 +0000 +++ b/base/AudioPlaySource.h Wed Jan 04 16:03:12 2017 +0000 @@ -13,8 +13,8 @@ COPYING included with this distribution for more information. */ -#ifndef _AUDIO_PLAY_SOURCE_H_ -#define _AUDIO_PLAY_SOURCE_H_ +#ifndef SV_AUDIO_PLAY_SOURCE_H +#define SV_AUDIO_PLAY_SOURCE_H #include "BaseTypes.h" @@ -59,7 +59,9 @@ /** * Return the current (or thereabouts) output levels in the range - * 0.0 -> 1.0, for metering purposes. + * 0.0 -> 1.0, for metering purposes. The values returned are + * peak values since the last call to this function was made + * (i.e. calling this function also resets them). */ virtual bool getOutputLevels(float &left, float &right) = 0;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base/AudioRecordTarget.h Wed Jan 04 16:03:12 2017 +0000 @@ -0,0 +1,50 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* + Sonic Visualiser + An audio file viewer and annotation editor. + Centre for Digital Music, Queen Mary, University of London. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. +*/ + +#ifndef SV_AUDIO_RECORD_TARGET_H +#define SV_AUDIO_RECORD_TARGET_H + +#include "BaseTypes.h" + +/** + * The record target API used by the view manager. See also AudioPlaySource. + */ +class AudioRecordTarget +{ +public: + virtual ~AudioRecordTarget() { } + + /** + * Return whether recording is currently happening. + */ + virtual bool isRecording() const = 0; + + /** + * Return the approximate duration of the audio recording so far. + */ + virtual sv_frame_t getRecordDuration() const = 0; + + /** + * Return the current (or thereabouts) input levels in the range + * 0.0 -> 1.0, for metering purposes. Only valid while recording. + * The values returned are peak values since the last call to this + * function was made (i.e. calling this function also resets them). + */ + virtual bool getInputLevels(float &left, float &right) = 0; +}; + +#endif + + +
--- a/base/ViewManagerBase.h Wed Jan 04 14:22:39 2017 +0000 +++ b/base/ViewManagerBase.h Wed Jan 04 16:03:12 2017 +0000 @@ -21,6 +21,7 @@ #include "Selection.h" class AudioPlaySource; +class AudioRecordTarget; /** * Base class for ViewManager, with no GUI content. This should @@ -36,6 +37,7 @@ virtual ~ViewManagerBase(); virtual void setAudioPlaySource(AudioPlaySource *source) = 0; + virtual void setAudioRecordTarget(AudioRecordTarget *target) = 0; virtual sv_frame_t alignPlaybackFrameToReference(sv_frame_t) const = 0; virtual sv_frame_t alignReferenceToPlaybackFrame(sv_frame_t) const = 0;