mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2026-06-21 15:18:50 -04:00
Demod instance start/stop recording setup
This commit is contained in:
@@ -8,27 +8,28 @@ AudioSinkFileThread::AudioSinkFileThread() : AudioSinkThread() {
|
||||
}
|
||||
|
||||
AudioSinkFileThread::~AudioSinkFileThread() {
|
||||
if (outputFileHandler != nullptr) {
|
||||
outputFileHandler->closeFile();
|
||||
if (audioFileHandler != nullptr) {
|
||||
audioFileHandler->closeFile();
|
||||
}
|
||||
}
|
||||
|
||||
void AudioSinkFileThread::sink(AudioThreadInputPtr input) {
|
||||
if (!outputFileHandler) {
|
||||
if (!audioFileHandler) {
|
||||
return;
|
||||
}
|
||||
// forward to output file handler
|
||||
outputFileHandler->writeToFile(input);
|
||||
audioFileHandler->writeToFile(input);
|
||||
}
|
||||
|
||||
void AudioSinkFileThread::inputChanged(AudioThreadInput oldProps, AudioThreadInputPtr newProps) {
|
||||
// close, set new parameters, adjust file name sequence and re-open?
|
||||
if (!outputFileHandler) {
|
||||
if (!audioFileHandler) {
|
||||
return;
|
||||
}
|
||||
|
||||
audioFileHandler->closeFile();
|
||||
}
|
||||
|
||||
void AudioSinkFileThread::setOutput(AudioFile * output) {
|
||||
outputFileHandler = output;
|
||||
outputFileHandler->setOutputFileName(sinkName);
|
||||
void AudioSinkFileThread::setAudioFileHandler(AudioFile * output) {
|
||||
audioFileHandler = output;
|
||||
}
|
||||
|
||||
@@ -15,10 +15,10 @@ public:
|
||||
void sink(AudioThreadInputPtr input);
|
||||
void inputChanged(AudioThreadInput oldProps, AudioThreadInputPtr newProps);
|
||||
|
||||
void setOutput(AudioFile *output);
|
||||
void setAudioFileHandler(AudioFile *output);
|
||||
|
||||
protected:
|
||||
AudioFile *outputFileHandler = nullptr;
|
||||
AudioFile *audioFileHandler = nullptr;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -42,6 +42,8 @@ void AudioSinkThread::run() {
|
||||
inputRef.inputRate = inp->inputRate;
|
||||
inputRef.sampleRate = inp->sampleRate;
|
||||
}
|
||||
|
||||
sink(inp);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,12 +51,3 @@ void AudioSinkThread::terminate() {
|
||||
IOThread::terminate();
|
||||
inputQueuePtr->flush();
|
||||
}
|
||||
|
||||
void AudioSinkThread::setSinkName(std::string sinkName_in) {
|
||||
sinkName = sinkName_in;
|
||||
}
|
||||
|
||||
std::string AudioSinkThread::getSinkName() {
|
||||
return sinkName;
|
||||
}
|
||||
|
||||
|
||||
@@ -18,12 +18,8 @@ public:
|
||||
virtual void sink(AudioThreadInputPtr input) = 0;
|
||||
virtual void inputChanged(AudioThreadInput oldProps, AudioThreadInputPtr newProps) = 0;
|
||||
|
||||
virtual void setSinkName(std::string sinkName_in);
|
||||
virtual std::string getSinkName();
|
||||
|
||||
protected:
|
||||
std::recursive_mutex m_mutex;
|
||||
AudioThreadInputQueuePtr inputQueuePtr;
|
||||
std::string sinkName;
|
||||
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user