Improvements to Audio Recording II: Free up memory in SPAAACE!

This commit is contained in:
justburner 2021-11-29 17:50:57 +00:00 committed by manongjohn
parent 34075514d2
commit a1b7482a5b
2 changed files with 7 additions and 5 deletions

View file

@ -74,7 +74,6 @@ AudioRecordingPopup::AudioRecordingPopup()
m_playXSheetCB = new QCheckBox(tr("Sync with XSheet/Timeline"), this);
m_timer = new QElapsedTimer();
m_recordedLevels = QMap<qint64, double>();
m_oldElapsed = 0;
m_player = new QMediaPlayer(this);
m_console = FlipConsole::getCurrent();
@ -294,7 +293,6 @@ void AudioRecordingPopup::onRecordButtonPressed() {
m_comboSamplerate->setDisabled(true);
m_comboSamplefmt->setDisabled(true);
m_recordedLevels.clear();
m_oldElapsed = 0;
m_pausedTime = 0;
m_startPause = 0;
m_endPause = 0;
@ -319,6 +317,7 @@ void AudioRecordingPopup::onRecordButtonPressed() {
m_saveButton->setEnabled(true);
m_playButton->setEnabled(true);
}
m_audioWriterWAV->freeup();
m_audioLevelsDisplay->setLevel(-1);
m_recordButton->setIcon(m_recordIcon);
m_pauseRecordingButton->setDisabled(true);
@ -626,6 +625,9 @@ void AudioRecordingPopup::hideEvent(QHideEvent *event) {
if (TSystem::doesExistFileOrLevel(TFilePath(m_filePath.getQString()))) {
TSystem::removeFileOrLevel(TFilePath(m_filePath.getQString()));
}
// Free up memory used in recording
m_recordedLevels.clear();
m_audioWriterWAV->freeup();
}
//-----------------------------------------------------------------------------
@ -794,6 +796,8 @@ bool AudioWriterWAV::save(const QString &filename)
return true;
}
void AudioWriterWAV::freeup() { m_barray.clear(); }
//-----------------------------------------------------------------------------
// AudioLevelsDisplay Class
//-----------------------------------------------------------------------------

View file

@ -18,7 +18,6 @@ class QPushButton;
class QLabel;
class AudioLevelsDisplay;
class FlipConsole;
class QAudioProbe;
class QAudioBuffer;
class QMediaPlayer;
class QElapsedTimer;
@ -42,13 +41,11 @@ class AudioRecordingPopup : public DVGui::Dialog {
QCheckBox *m_playXSheetCB;
int m_currentFrame;
AudioLevelsDisplay *m_audioLevelsDisplay;
QAudioProbe *m_probe;
QMediaPlayer *m_player;
TFilePath m_filePath;
FlipConsole *m_console;
QElapsedTimer *m_timer;
QMap<qint64, double> m_recordedLevels;
qint64 m_oldElapsed;
qint64 m_startPause = 0;
qint64 m_endPause = 0;
qint64 m_pausedTime = 0;
@ -103,6 +100,7 @@ public:
void start();
void stop();
bool save(const QString &filename);
void freeup();
qint64 readData(char *data, qint64 maxlen) override;
qint64 writeData(const char *data, qint64 len) override;