Mercurial > hg > svapp
diff framework/MainWindowBase.cpp @ 483:493f2af85497 recording
Add audio record mode (option to replace session) and support for browsing to record directory
author | Chris Cannam |
---|---|
date | Tue, 15 Sep 2015 16:34:08 +0100 |
parents | 6f475df6f833 |
children | 01aeda073720 3dbc964f5907 |
line wrap: on
line diff
--- a/framework/MainWindowBase.cpp Wed Aug 19 17:21:40 2015 +0100 +++ b/framework/MainWindowBase.cpp Tue Sep 15 16:34:08 2015 +0100 @@ -157,6 +157,7 @@ m_lastPlayStatusSec(0), m_initialDarkBackground(false), m_defaultFfwdRwdStep(2, 0), + m_audioRecordMode(RecordCreateAdditionalModel), m_statusLabel(0), m_menuShortcutMapper(0) { @@ -613,7 +614,7 @@ emit canMeasureLayer(haveCurrentLayer); emit canSelect(haveMainModel && haveCurrentPane); emit canPlay(haveMainModel && havePlayTarget); - emit canRecord(m_soundOptions & WithAudioInput); // always possible then + emit canRecord(m_recordTarget != 0); emit canFfwd(haveMainModel); emit canRewind(haveMainModel); emit canPaste(haveClipboardContents); @@ -2685,6 +2686,10 @@ return; } + if (m_audioRecordMode == RecordReplaceSession) { + if (!checkSaveModified()) return; + } + WritableWaveFileModel *model = m_recordTarget->startRecording(); if (!model) { cerr << "ERROR: MainWindowBase::record: Recording failed" << endl; @@ -2700,8 +2705,8 @@ } PlayParameterRepository::getInstance()->addPlayable(model); - - if (!getMainModel()) { + + if (m_audioRecordMode == RecordReplaceSession || !getMainModel()) { //!!! duplication with openAudio here @@ -3616,4 +3621,30 @@ #endif } - +void +MainWindowBase::openLocalFolder(QString path) +{ + QDir d(path); + if (d.exists()) { + QStringList args; + QString path = d.canonicalPath(); +#if defined Q_OS_WIN32 + // Although the Win32 API is quite happy to have + // forward slashes as directory separators, Windows + // Explorer is not + path = path.replace('/', '\\'); + args << path; + QProcess::execute("c:/windows/explorer.exe", args); +#else + args << path; + QProcess::execute( +#if defined Q_OS_MAC + "/usr/bin/open", +#else + "/usr/bin/xdg-open", +#endif + args); +#endif + } +} +