Moved all sound effects into Qt-style resources. Sound files can be played back directly from program memory by passing a pointer to the WAVE data into PlaySound as the first argument (and using the SND_MEMORY flag), it's just not documented very well.
This commit is contained in:
parent
6800711b6a
commit
b05a7ac3ef
21
LameXP.rc
21
LameXP.rc
@ -102,25 +102,6 @@ END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// WAVE
|
||||
//
|
||||
|
||||
IDR_WAVE_ABOUT WAVE "res\\sounds\\uuaarrgh.wav"
|
||||
IDR_WAVE_SUCCESS WAVE "res\\sounds\\success.wav"
|
||||
IDR_WAVE_ERROR WAVE "res\\sounds\\error.wav"
|
||||
IDR_WAVE_ABORTED WAVE "res\\sounds\\aborted.wav"
|
||||
IDR_WAVE_WHAMMY WAVE "res\\sounds\\whammy.wav"
|
||||
IDR_WAVE_WOOHOO WAVE "res\\sounds\\woohoo.wav"
|
||||
IDR_WAVE_SHUTDOWN WAVE "res\\sounds\\shutdown.wav"
|
||||
IDR_WAVE_BEEP WAVE "res\\sounds\\beep.wav"
|
||||
IDR_WAVE_BEEP_LONG WAVE "res\\sounds\\beep2.wav"
|
||||
IDR_WAVE_WAITING WAVE "res\\sounds\\waiting.wav"
|
||||
IDR_WAVE_BLAST WAVE "res\\sounds\\blast.wav"
|
||||
IDR_WAVE_TICK WAVE "res\\sounds\\tick.wav"
|
||||
IDR_WAVE_DROP WAVE "res\\sounds\\drop.wav"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
@ -134,7 +115,6 @@ IDI_ICON2 ICON "res\\FolderIcon.ico"
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
@ -144,4 +124,3 @@ IDI_ICON2 ICON "res\\FolderIcon.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
|
@ -412,6 +412,7 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<ClCompile Include="tmp\QRC_Icons.cpp" />
|
||||
<ClCompile Include="tmp\QRC_Images.cpp" />
|
||||
<ClCompile Include="tmp\QRC_Localization.cpp" />
|
||||
<ClCompile Include="tmp\QRC_Sounds.cpp" />
|
||||
<ClCompile Include="tmp\QRC_Tools_Decd.cpp" />
|
||||
<ClCompile Include="tmp\QRC_Tools_Encd_A.cpp" />
|
||||
<ClCompile Include="tmp\QRC_Tools_Encd_B.cpp" />
|
||||
@ -1326,6 +1327,18 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Sounds.qrc">
|
||||
<FileType>Document</FileType>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\QRC_%(Filename).cpp" -name "%(Filename)" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\QRC_%(Filename).cpp" -name "%(Filename)" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\QRC_%(Filename).cpp" -name "%(Filename)" "%(FullPath)"</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="LameXP.rc">
|
||||
|
@ -421,6 +421,9 @@
|
||||
<ClCompile Include="src\Global_Zero.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tmp\QRC_Sounds.cpp">
|
||||
<Filter>Generated Files\QRC</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="src\Config.h">
|
||||
@ -758,7 +761,12 @@
|
||||
<CustomBuild Include="res\Tools_Misc_C.qrc">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Thread_CheckUpdate.h" />
|
||||
<CustomBuild Include="res\Sounds.qrc">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Thread_CheckUpdate.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ReadMe.txt" />
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -31,7 +31,7 @@
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="773"/>
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="778"/>
|
||||
<source>%n file(s) have been rejected, because read access was not granted!</source>
|
||||
<translation>
|
||||
<numerusform>%n file have been rejected, because read access was not granted!</numerusform>
|
||||
@ -39,7 +39,7 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="777"/>
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="782"/>
|
||||
<source>%n file(s) have been rejected, because they are dummy CDDA files!</source>
|
||||
<translation>
|
||||
<numerusform>%n file have been rejected, because they are dummy CDDA files!</numerusform>
|
||||
@ -47,7 +47,7 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="781"/>
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="786"/>
|
||||
<source>%n file(s) have been rejected, because they appear to be Cue Sheet images!</source>
|
||||
<translation>
|
||||
<numerusform>%n file have been rejected, because they appear to be Cue Sheet images!</numerusform>
|
||||
@ -55,7 +55,7 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="785"/>
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="790"/>
|
||||
<source>%n file(s) have been rejected, because the file format could not be recognized!</source>
|
||||
<translation>
|
||||
<numerusform>%n file have been rejected, because the file format could not be recognized!</numerusform>
|
||||
@ -63,7 +63,7 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="3845"/>
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="3846"/>
|
||||
<source>%n Instance(s)</source>
|
||||
<translation>
|
||||
<numerusform>%n Instance</numerusform>
|
||||
@ -74,7 +74,7 @@
|
||||
<context>
|
||||
<name>ProcessingDialog</name>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="668"/>
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="673"/>
|
||||
<source>Encoding: %n file(s) of %1 completed so far, please wait...</source>
|
||||
<translation>
|
||||
<numerusform>Encoding: %n file of %1 completed so far, please wait...</numerusform>
|
||||
@ -82,7 +82,7 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="700"/>
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="705"/>
|
||||
<source>Process was aborted by the user after %n file(s)!</source>
|
||||
<translation>
|
||||
<numerusform>Process was aborted by the user after %n file!</numerusform>
|
||||
@ -90,7 +90,7 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="729"/>
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="731"/>
|
||||
<source>Error: %1 of %n file(s) failed (%2). Double-click failed items for detailed information!</source>
|
||||
<translation>
|
||||
<numerusform>Error: %1 of %n file failed (%2). Double-click failed items for detailed information!</numerusform>
|
||||
@ -98,7 +98,7 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="729"/>
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="731"/>
|
||||
<source>%n file(s) skipped</source>
|
||||
<translation>
|
||||
<numerusform>%n file skipped</numerusform>
|
||||
@ -106,7 +106,7 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="733"/>
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="735"/>
|
||||
<source>Error: %1 of %n file(s) failed. Double-click failed items for detailed information!</source>
|
||||
<translation>
|
||||
<numerusform>Error: %1 of %n file failed. Double-click failed items for detailed information!</numerusform>
|
||||
@ -114,7 +114,7 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="747"/>
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="749"/>
|
||||
<source>All files completed successfully. Skipped %n file(s).</source>
|
||||
<translation>
|
||||
<numerusform>All files completed successfully. Skipped %n file.</numerusform>
|
||||
@ -122,7 +122,7 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="1171"/>
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="1170"/>
|
||||
<source>%n hour(s)</source>
|
||||
<translation>
|
||||
<numerusform>%n hour</numerusform>
|
||||
@ -130,8 +130,8 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="1172"/>
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="1176"/>
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="1171"/>
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="1175"/>
|
||||
<source>%n minute(s)</source>
|
||||
<translation>
|
||||
<numerusform>%n minute</numerusform>
|
||||
@ -139,8 +139,8 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="1177"/>
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="1181"/>
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="1176"/>
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="1180"/>
|
||||
<source>%n second(s)</source>
|
||||
<translation>
|
||||
<numerusform>%n second</numerusform>
|
||||
@ -148,7 +148,7 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="1182"/>
|
||||
<location filename="../../src/Dialog_Processing.cpp" line="1181"/>
|
||||
<source>%n millisecond(s)</source>
|
||||
<translation>
|
||||
<numerusform>%n millisecond</numerusform>
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -143,13 +143,13 @@
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>48</width>
|
||||
<height>45</height>
|
||||
<height>48</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>48</width>
|
||||
<height>45</height>
|
||||
<height>48</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
|
18
res/Sounds.qrc
Normal file
18
res/Sounds.qrc
Normal file
@ -0,0 +1,18 @@
|
||||
<!DOCTYPE RCC>
|
||||
<RCC version="1.0">
|
||||
<qresource>
|
||||
<file>sounds/aborted.wav</file>
|
||||
<file>sounds/beep.wav</file>
|
||||
<file>sounds/beep2.wav</file>
|
||||
<file>sounds/blast.wav</file>
|
||||
<file>sounds/drop.wav</file>
|
||||
<file>sounds/error.wav</file>
|
||||
<file>sounds/shutdown.wav</file>
|
||||
<file>sounds/success.wav</file>
|
||||
<file>sounds/tick.wav</file>
|
||||
<file>sounds/uuaarrgh.wav</file>
|
||||
<file>sounds/waiting.wav</file>
|
||||
<file>sounds/whammy.wav</file>
|
||||
<file>sounds/woohoo.wav</file>
|
||||
</qresource>
|
||||
</RCC>
|
Binary file not shown.
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 10 KiB |
@ -35,7 +35,7 @@
|
||||
#define VER_LAMEXP_MINOR_LO 9
|
||||
#define VER_LAMEXP_TYPE Alpha
|
||||
#define VER_LAMEXP_PATCH 9
|
||||
#define VER_LAMEXP_BUILD 1495
|
||||
#define VER_LAMEXP_BUILD 1499
|
||||
#define VER_LAMEXP_CONFG 1348
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -25,7 +25,6 @@
|
||||
#include "../tmp/UIC_AboutDialog.h"
|
||||
|
||||
#include "Global.h"
|
||||
#include "Resource.h"
|
||||
#include "Model_Settings.h"
|
||||
|
||||
#include <math.h>
|
||||
@ -214,12 +213,12 @@ int AboutDialog::exec()
|
||||
{
|
||||
if(!lamexp_play_sound_file("imageres.dll", 5080, true))
|
||||
{
|
||||
lamexp_play_sound(0, true, L"SystemStart");
|
||||
lamexp_play_sound_alias("SystemStart", true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lamexp_play_sound(IDR_WAVE_ABOUT, true);
|
||||
lamexp_play_sound("uuaarrgh", true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -291,7 +290,7 @@ void AboutDialog::tabChanged(int index, const bool silent)
|
||||
//Play tick sound
|
||||
if(m_settings->soundsEnabled() && (!silent))
|
||||
{
|
||||
lamexp_play_sound(IDR_WAVE_TICK, true);
|
||||
lamexp_play_sound("tick", true);
|
||||
}
|
||||
|
||||
//Scroll to the top
|
||||
|
@ -27,7 +27,6 @@
|
||||
|
||||
//LameXP includes
|
||||
#include "Global.h"
|
||||
#include "Resource.h"
|
||||
#include "Dialog_WorkingBanner.h"
|
||||
#include "Dialog_MetaInfo.h"
|
||||
#include "Dialog_About.h"
|
||||
@ -193,6 +192,12 @@ while(0)
|
||||
} \
|
||||
while(0)
|
||||
|
||||
#define PLAY_SOUND_OPTIONAL(NAME, ASYNC) do \
|
||||
{ \
|
||||
if(m_settings->soundsEnabled()) lamexp_play_sound((NAME), (ASYNC)); \
|
||||
} \
|
||||
while(0)
|
||||
|
||||
#define LINK(URL) QString("<a href=\"%1\">%2</a>").arg(URL).arg(QString(URL).replace("-", "−"))
|
||||
#define FSLINK(PATH) QString("<a href=\"file:///%1\">%2</a>").arg(PATH).arg(QString(PATH).replace("-", "−"))
|
||||
#define CENTER_CURRENT_OUTPUT_FOLDER_DELAYED QTimer::singleShot(125, this, SLOT(centerOutputFolderModel()))
|
||||
@ -1095,7 +1100,7 @@ void MainWindow::dropEvent(QDropEvent *event)
|
||||
(*m_droppedFileList) << event->mimeData()->urls();
|
||||
if(!m_droppedFileList->isEmpty())
|
||||
{
|
||||
if(m_settings->soundsEnabled()) lamexp_play_sound(IDR_WAVE_DROP, true);
|
||||
PLAY_SOUND_OPTIONAL("drop", true);
|
||||
QTimer::singleShot(0, this, SLOT(handleDroppedFiles()));
|
||||
}
|
||||
}
|
||||
@ -1270,7 +1275,7 @@ void MainWindow::windowShown(void)
|
||||
m_settings->licenseAccepted(++iAccepted);
|
||||
m_settings->syncNow();
|
||||
QApplication::processEvents();
|
||||
lamexp_play_sound(IDR_WAVE_WHAMMY, false);
|
||||
lamexp_play_sound("whammy", false);
|
||||
QMessageBox::critical(this, tr("License Declined"), tr("You have declined the license. Consequently the application will exit now!"), tr("Goodbye!"));
|
||||
QFileInfo uninstallerInfo = QFileInfo(QString("%1/Uninstall.exe").arg(QApplication::applicationDirPath()));
|
||||
if(uninstallerInfo.exists())
|
||||
@ -1286,7 +1291,7 @@ void MainWindow::windowShown(void)
|
||||
return;
|
||||
}
|
||||
|
||||
lamexp_play_sound(IDR_WAVE_WOOHOO, false);
|
||||
lamexp_play_sound("woohoo", false);
|
||||
m_settings->licenseAccepted(1);
|
||||
m_settings->syncNow();
|
||||
if(lamexp_version_demo()) showAnnounceBox();
|
||||
@ -1298,7 +1303,7 @@ void MainWindow::windowShown(void)
|
||||
if(lamexp_current_date_safe() >= lamexp_version_expires())
|
||||
{
|
||||
qWarning("Binary has expired !!!");
|
||||
lamexp_play_sound(IDR_WAVE_WHAMMY, false);
|
||||
lamexp_play_sound("whammy", false);
|
||||
if(QMessageBox::warning(this, tr("LameXP - Expired"), QString("%1<br>%2").arg(NOBR(tr("This demo (pre-release) version of LameXP has expired at %1.").arg(lamexp_version_expires().toString(Qt::ISODate))), NOBR(tr("LameXP is free software and release versions won't expire."))), tr("Check for Updates"), tr("Exit Program")) == 0)
|
||||
{
|
||||
checkForUpdates();
|
||||
@ -1340,7 +1345,7 @@ void MainWindow::windowShown(void)
|
||||
return;
|
||||
default:
|
||||
QEventLoop loop; QTimer::singleShot(7000, &loop, SLOT(quit()));
|
||||
lamexp_play_sound(IDR_WAVE_WAITING, true);
|
||||
lamexp_play_sound("waiting", true);
|
||||
SHOW_BANNER_ARG(tr("Skipping update check this time, please be patient..."), &loop);
|
||||
break;
|
||||
}
|
||||
@ -1543,7 +1548,7 @@ void MainWindow::encodeButtonClicked(void)
|
||||
{
|
||||
QStringList tempFolderParts = tempFolder.split("/", QString::SkipEmptyParts, Qt::CaseInsensitive);
|
||||
tempFolderParts.takeLast();
|
||||
if(m_settings->soundsEnabled()) lamexp_play_sound(IDR_WAVE_WHAMMY, false);
|
||||
PLAY_SOUND_OPTIONAL("whammy", false);
|
||||
QString lowDiskspaceMsg = QString("%1<br>%2<br><br>%3<br>%4<br>").arg
|
||||
(
|
||||
NOBR(tr("There are less than %1 GB of free diskspace available on your system's TEMP folder.").arg(QString::number(minimumFreeDiskspaceMultiplier))),
|
||||
@ -1649,9 +1654,9 @@ void MainWindow::tabPageChanged(int idx, const bool silent)
|
||||
}
|
||||
|
||||
//Play tick sound
|
||||
if(m_settings->soundsEnabled() && (!silent))
|
||||
if(!silent)
|
||||
{
|
||||
lamexp_play_sound(IDR_WAVE_TICK, true);
|
||||
PLAY_SOUND_OPTIONAL("tick", true);
|
||||
}
|
||||
|
||||
int initialWidth = this->width();
|
||||
@ -3496,11 +3501,7 @@ void MainWindow::compressionTabEventOccurred(QWidget *sender, QEvent *event)
|
||||
}
|
||||
else if((sender == ui->labelResetEncoders) && (event->type() == QEvent::MouseButtonPress))
|
||||
{
|
||||
if(m_settings->soundsEnabled())
|
||||
{
|
||||
lamexp_play_sound(IDR_WAVE_BLAST, true);
|
||||
}
|
||||
|
||||
PLAY_SOUND_OPTIONAL("blast", true);
|
||||
EncoderRegistry::resetAllEncoders(m_settings);
|
||||
m_settings->compressionEncoder(SettingsModel::MP3Encoder);
|
||||
ui->radioButtonEncoderMP3->setChecked(true);
|
||||
@ -4024,10 +4025,7 @@ void MainWindow::overwriteModeChanged(int id)
|
||||
*/
|
||||
void MainWindow::resetAdvancedOptionsButtonClicked(void)
|
||||
{
|
||||
if(m_settings->soundsEnabled())
|
||||
{
|
||||
lamexp_play_sound(IDR_WAVE_BLAST, true);
|
||||
}
|
||||
PLAY_SOUND_OPTIONAL("blast", true);
|
||||
|
||||
ui->sliderLameAlgoQuality->setValue(m_settings->lameAlgoQualityDefault());
|
||||
ui->spinBoxBitrateManagementMin->setValue(m_settings->bitrateManagementMinRateDefault());
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include "../tmp/UIC_ProcessingDialog.h"
|
||||
|
||||
#include "Global.h"
|
||||
#include "Resource.h"
|
||||
#include "Model_FileList.h"
|
||||
#include "Model_Progress.h"
|
||||
#include "Model_Settings.h"
|
||||
@ -113,6 +112,12 @@ while(0)
|
||||
} \
|
||||
while(0)
|
||||
|
||||
#define PLAY_SOUND_OPTIONAL(NAME, ASYNC) do \
|
||||
{ \
|
||||
if(m_settings->soundsEnabled()) lamexp_play_sound((NAME), (ASYNC)); \
|
||||
} \
|
||||
while(0)
|
||||
|
||||
#define IS_VBR(RC_MODE) ((RC_MODE) == SettingsModel::VBRMode)
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
@ -694,17 +699,14 @@ void ProcessingDialog::doneEncoding(void)
|
||||
|
||||
if(m_userAborted)
|
||||
{
|
||||
CHANGE_BACKGROUND_COLOR(ui->frame_header, QColor("#FFF3BA"));
|
||||
CHANGE_BACKGROUND_COLOR(ui->frame_header, QColor("#FFFFE0"));
|
||||
WinSevenTaskbar::setTaskbarState(this, WinSevenTaskbar::WinSevenTaskbarErrorState);
|
||||
WinSevenTaskbar::setOverlayIcon(this, &QIcon(":/icons/error.png"));
|
||||
SET_PROGRESS_TEXT((m_succeededJobs.count() > 0) ? tr("Process was aborted by the user after %n file(s)!", "", m_succeededJobs.count()) : tr("Process was aborted prematurely by the user!"));
|
||||
m_systemTray->showMessage(tr("LameXP - Aborted"), tr("Process was aborted by the user."), QSystemTrayIcon::Warning);
|
||||
m_systemTray->setIcon(QIcon(":/icons/cd_delete.png"));
|
||||
qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
|
||||
if(m_settings->soundsEnabled() && (!m_forcedAbort))
|
||||
{
|
||||
lamexp_play_sound(IDR_WAVE_ABORTED, false);
|
||||
}
|
||||
if(!m_forcedAbort) PLAY_SOUND_OPTIONAL("aborted", false);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -721,7 +723,7 @@ void ProcessingDialog::doneEncoding(void)
|
||||
|
||||
if(m_failedJobs.count() > 0)
|
||||
{
|
||||
CHANGE_BACKGROUND_COLOR(ui->frame_header, QColor("#FFBABA"));
|
||||
CHANGE_BACKGROUND_COLOR(ui->frame_header, QColor("#FFF0F0"));
|
||||
WinSevenTaskbar::setTaskbarState(this, WinSevenTaskbar::WinSevenTaskbarErrorState);
|
||||
WinSevenTaskbar::setOverlayIcon(this, &QIcon(":/icons/exclamation.png"));
|
||||
if(m_skippedJobs.count() > 0)
|
||||
@ -735,11 +737,11 @@ void ProcessingDialog::doneEncoding(void)
|
||||
m_systemTray->showMessage(tr("LameXP - Error"), tr("At least one file has failed!"), QSystemTrayIcon::Critical);
|
||||
m_systemTray->setIcon(QIcon(":/icons/cd_delete.png"));
|
||||
qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
|
||||
if(m_settings->soundsEnabled()) lamexp_play_sound(IDR_WAVE_ERROR, false);
|
||||
PLAY_SOUND_OPTIONAL("error", false);
|
||||
}
|
||||
else
|
||||
{
|
||||
CHANGE_BACKGROUND_COLOR(ui->frame_header, QColor("#E0FFE2"));
|
||||
CHANGE_BACKGROUND_COLOR(ui->frame_header, QColor("#F0FFF0"));
|
||||
WinSevenTaskbar::setTaskbarState(this, WinSevenTaskbar::WinSevenTaskbarNormalState);
|
||||
WinSevenTaskbar::setOverlayIcon(this, &QIcon(":/icons/accept.png"));
|
||||
if(m_skippedJobs.count() > 0)
|
||||
@ -753,7 +755,7 @@ void ProcessingDialog::doneEncoding(void)
|
||||
m_systemTray->showMessage(tr("LameXP - Done"), tr("All files completed successfully."), QSystemTrayIcon::Information);
|
||||
m_systemTray->setIcon(QIcon(":/icons/cd_add.png"));
|
||||
qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
|
||||
if(m_settings->soundsEnabled()) lamexp_play_sound(IDR_WAVE_SUCCESS, false);
|
||||
PLAY_SOUND_OPTIONAL("success", false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1123,12 +1125,9 @@ bool ProcessingDialog::shutdownComputer(void)
|
||||
|
||||
qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
|
||||
|
||||
if(m_settings->soundsEnabled())
|
||||
{
|
||||
QApplication::setOverrideCursor(Qt::WaitCursor);
|
||||
lamexp_play_sound(IDR_WAVE_SHUTDOWN, false);
|
||||
QApplication::restoreOverrideCursor();
|
||||
}
|
||||
QApplication::setOverrideCursor(Qt::WaitCursor);
|
||||
PLAY_SOUND_OPTIONAL("shutdown", false);
|
||||
QApplication::restoreOverrideCursor();
|
||||
|
||||
QTimer timer;
|
||||
timer.setInterval(1000);
|
||||
@ -1150,7 +1149,7 @@ bool ProcessingDialog::shutdownComputer(void)
|
||||
progressDialog.setLabelText(text.arg(iTimeout-i));
|
||||
if(iTimeout-i == 3) progressDialog.setCancelButton(NULL);
|
||||
qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
|
||||
lamexp_play_sound(((i < iTimeout) ? IDR_WAVE_BEEP : IDR_WAVE_BEEP_LONG), false);
|
||||
PLAY_SOUND_OPTIONAL(((i < iTimeout) ? "beep" : "beep2"), false);
|
||||
}
|
||||
|
||||
progressDialog.close();
|
||||
|
@ -27,7 +27,6 @@
|
||||
|
||||
//LameXP includes
|
||||
#include "Global.h"
|
||||
#include "Resource.h"
|
||||
#include "Thread_CheckUpdate.h"
|
||||
#include "Dialog_LogView.h"
|
||||
#include "Model_Settings.h"
|
||||
@ -338,7 +337,7 @@ void UpdateDialog::threadFinished(void)
|
||||
|
||||
if(!bSuccess)
|
||||
{
|
||||
if(m_settings->soundsEnabled()) lamexp_play_sound(IDR_WAVE_ERROR, true);
|
||||
if(m_settings->soundsEnabled()) lamexp_play_sound("error", true);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -89,9 +89,9 @@ WorkingBanner::WorkingBanner(QWidget *parent)
|
||||
{
|
||||
m_style = new QWindowsVistaStyle();
|
||||
this->setStyle(m_style);
|
||||
ui->labelStatus->setStyle(m_style);
|
||||
ui->progressBar->setStyle(m_style);
|
||||
ui->labelStatus->setStyleSheet("background-color: rgb(255, 255, 255);");
|
||||
ui->labelStatus->setStyle(m_style);
|
||||
ui->labelStatus->setStyleSheet("background-color: #FFFFFF;");
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -99,7 +99,6 @@ WorkingBanner::WorkingBanner(QWidget *parent)
|
||||
m_working = new QMovie(":/images/Busy.gif");
|
||||
m_working->setCacheMode(QMovie::CacheAll);
|
||||
ui->labelWorking->setMovie(m_working);
|
||||
m_working->start();
|
||||
}
|
||||
|
||||
//Set Opacity
|
||||
@ -256,9 +255,29 @@ bool WorkingBanner::winEvent(MSG *message, long *result)
|
||||
|
||||
void WorkingBanner::showEvent(QShowEvent *event)
|
||||
{
|
||||
QDialog::showEvent(event);
|
||||
if(!event->spontaneous())
|
||||
{
|
||||
if(m_working)
|
||||
{
|
||||
m_working->start();
|
||||
}
|
||||
}
|
||||
QTimer::singleShot(25, this, SLOT(windowShown()));
|
||||
}
|
||||
|
||||
void WorkingBanner::hideEvent(QHideEvent *event)
|
||||
{
|
||||
QDialog::hideEvent(event);
|
||||
if(!event->spontaneous())
|
||||
{
|
||||
if(m_working)
|
||||
{
|
||||
m_working->stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
// SLOTS
|
||||
////////////////////////////////////////////////////////////
|
||||
|
@ -69,6 +69,7 @@ protected:
|
||||
virtual void closeEvent(QCloseEvent *event);
|
||||
virtual bool winEvent(MSG *message, long *result);
|
||||
virtual void showEvent(QShowEvent *event);
|
||||
virtual void hideEvent(QHideEvent *event);
|
||||
|
||||
QFontMetrics *m_metrics;
|
||||
QStyle *m_style;
|
||||
|
@ -197,8 +197,9 @@ bool lamexp_open_media_file(const QString &mediaFilePath);
|
||||
QString lamexp_path_to_short(const QString &longPath);
|
||||
__int64 lamexp_perfcounter_frequ(void);
|
||||
__int64 lamexp_perfcounter_value(void);
|
||||
bool lamexp_play_sound(const unsigned short uiSoundIdx, const bool bAsync, const wchar_t *alias = NULL);
|
||||
bool lamexp_play_sound(const QString &name, const bool bAsync);
|
||||
bool lamexp_play_sound_file(const QString &library, const unsigned short uiSoundIdx, const bool bAsync);
|
||||
bool lamexp_play_sound_alias(const QString &alias, const bool bAsync);
|
||||
bool lamexp_portable_mode(void);
|
||||
unsigned long lamexp_process_id(const QProcess *proc);
|
||||
QStringList lamexp_query_translations(void);
|
||||
|
@ -61,6 +61,7 @@
|
||||
#include <QTimer>
|
||||
#include <QTranslator>
|
||||
#include <QUuid>
|
||||
#include <QResource>
|
||||
|
||||
//LameXP includes
|
||||
#define LAMEXP_INC_CONFIG
|
||||
@ -190,6 +191,14 @@ static struct
|
||||
}
|
||||
g_lamexp_dwmapi;
|
||||
|
||||
//Sound file cache
|
||||
static struct
|
||||
{
|
||||
QHash<const QString, const unsigned char*> *sound_db;
|
||||
QReadWriteLock lock;
|
||||
}
|
||||
g_lamexp_sounds;
|
||||
|
||||
//Image formats
|
||||
static const char *g_lamexp_imageformats[] = {"bmp", "png", "jpg", "gif", "ico", "xpm", NULL}; //"svg"
|
||||
|
||||
@ -1537,44 +1546,84 @@ bool lamexp_beep(int beepType)
|
||||
/*
|
||||
* Play a sound (from resources)
|
||||
*/
|
||||
bool lamexp_play_sound(const unsigned short uiSoundIdx, const bool bAsync, const wchar_t *alias)
|
||||
bool lamexp_play_sound(const QString &name, const bool bAsync)
|
||||
{
|
||||
if(alias)
|
||||
const unsigned char *data = NULL;
|
||||
|
||||
//Try to look-up the sound in the cache first
|
||||
if(!name.isEmpty())
|
||||
{
|
||||
return PlaySound(alias, GetModuleHandle(NULL), (SND_ALIAS | (bAsync ? SND_ASYNC : SND_SYNC))) == TRUE;
|
||||
QReadLocker readLock(&g_lamexp_sounds.lock);
|
||||
if(g_lamexp_sounds.sound_db && g_lamexp_sounds.sound_db->contains(name))
|
||||
{
|
||||
data = g_lamexp_sounds.sound_db->value(name);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
//If data not found in cache, try to load from resource!
|
||||
if((!data) && (!name.isEmpty()))
|
||||
{
|
||||
return PlaySound(MAKEINTRESOURCE(uiSoundIdx), GetModuleHandle(NULL), (SND_RESOURCE | (bAsync ? SND_ASYNC : SND_SYNC))) == TRUE;
|
||||
QResource resource(QString(":/sounds/%1.wav").arg(name));
|
||||
if(resource.isValid() && (data = resource.data()))
|
||||
{
|
||||
QWriteLocker writeLock(&g_lamexp_sounds.lock);
|
||||
if(!g_lamexp_sounds.sound_db)
|
||||
{
|
||||
g_lamexp_sounds.sound_db = new QHash<const QString, const unsigned char*>();
|
||||
}
|
||||
g_lamexp_sounds.sound_db->insert(name, data);
|
||||
}
|
||||
else
|
||||
{
|
||||
qWarning("Sound effect \"%s\" not found!", QUTF8(name));
|
||||
}
|
||||
}
|
||||
|
||||
//Play the sound, if availbale
|
||||
if(data)
|
||||
{
|
||||
return PlaySound(LPCWSTR(data), NULL, (SND_MEMORY | (bAsync ? SND_ASYNC : SND_SYNC))) != FALSE;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Play a sound (from resources)
|
||||
* Play a sound (system alias)
|
||||
*/
|
||||
bool lamexp_play_sound_alias(const QString &alias, const bool bAsync)
|
||||
{
|
||||
return PlaySound(QWCHAR(alias), GetModuleHandle(NULL), (SND_ALIAS | (bAsync ? SND_ASYNC : SND_SYNC))) != FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Play a sound (from external DLL)
|
||||
*/
|
||||
bool lamexp_play_sound_file(const QString &library, const unsigned short uiSoundIdx, const bool bAsync)
|
||||
{
|
||||
bool result = false;
|
||||
HMODULE module = NULL;
|
||||
|
||||
QFileInfo libraryFile(library);
|
||||
if(!libraryFile.isAbsolute())
|
||||
{
|
||||
unsigned int buffSize = GetSystemDirectoryW(NULL, NULL) + 1;
|
||||
wchar_t *buffer = (wchar_t*) _malloca(buffSize * sizeof(wchar_t));
|
||||
unsigned int result = GetSystemDirectory(buffer, buffSize);
|
||||
if(result > 0 && result < buffSize)
|
||||
const QString &systemDir = lamexp_known_folder(lamexp_folder_systemfolder);
|
||||
if(!systemDir.isEmpty())
|
||||
{
|
||||
libraryFile.setFile(QString("%1/%2").arg(QDir::fromNativeSeparators(QString::fromUtf16(reinterpret_cast<const unsigned short*>(buffer))), library));
|
||||
libraryFile.setFile(QDir(systemDir), libraryFile.fileName());
|
||||
}
|
||||
_freea(buffer);
|
||||
}
|
||||
|
||||
module = LoadLibraryW(QWCHAR(QDir::toNativeSeparators(libraryFile.absoluteFilePath())));
|
||||
if(module)
|
||||
if(libraryFile.exists() && libraryFile.isFile())
|
||||
{
|
||||
result = (PlaySound(MAKEINTRESOURCE(uiSoundIdx), module, (SND_RESOURCE | (bAsync ? SND_ASYNC : SND_SYNC))) == TRUE);
|
||||
FreeLibrary(module);
|
||||
if(HMODULE module = LoadLibraryW(QWCHAR(QDir::toNativeSeparators(libraryFile.canonicalFilePath()))))
|
||||
{
|
||||
result = (PlaySound(MAKEINTRESOURCE(uiSoundIdx), module, (SND_RESOURCE | (bAsync ? SND_ASYNC : SND_SYNC))) != FALSE);
|
||||
FreeLibrary(module);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
qWarning("PlaySound: File \"%s\" could not be found!", QUTF8(libraryFile.absoluteFilePath()));
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -2202,6 +2251,7 @@ extern "C" void _lamexp_global_init_win32(void)
|
||||
LAMEXP_ZERO_MEMORY(g_lamexp_wine);
|
||||
LAMEXP_ZERO_MEMORY(g_lamexp_themes_enabled);
|
||||
LAMEXP_ZERO_MEMORY(g_lamexp_dwmapi);
|
||||
LAMEXP_ZERO_MEMORY(g_lamexp_sounds);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
@ -2245,6 +2295,9 @@ extern "C" void _lamexp_global_free_win32(void)
|
||||
g_lamexp_log_file = NULL;
|
||||
}
|
||||
|
||||
//Clear sound cache
|
||||
LAMEXP_DELETE(g_lamexp_sounds.sound_db);
|
||||
|
||||
//Free CLI Arguments
|
||||
LAMEXP_DELETE(g_lamexp_argv.list);
|
||||
}
|
||||
|
@ -25,19 +25,6 @@
|
||||
*/
|
||||
#define IDI_ICON1 106
|
||||
#define IDI_ICON2 107
|
||||
#define IDR_WAVE_ABOUT 666
|
||||
#define IDR_WAVE_SUCCESS 667
|
||||
#define IDR_WAVE_ERROR 668
|
||||
#define IDR_WAVE_ABORTED 669
|
||||
#define IDR_WAVE_WHAMMY 670
|
||||
#define IDR_WAVE_WOOHOO 671
|
||||
#define IDR_WAVE_SHUTDOWN 672
|
||||
#define IDR_WAVE_BEEP 673
|
||||
#define IDR_WAVE_BEEP_LONG 674
|
||||
#define IDR_WAVE_WAITING 675
|
||||
#define IDR_WAVE_BLAST 676
|
||||
#define IDR_WAVE_TICK 677
|
||||
#define IDR_WAVE_DROP 678
|
||||
|
||||
/*
|
||||
* Next default values for new objects
|
||||
|
Loading…
Reference in New Issue
Block a user