commit
c96b79bb8a
@ -88,7 +88,7 @@
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions>"/MANIFESTDEPENDENCY:type=%27win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27 processorArchitecture=%27*%27" %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>qtmaind.lib;QtCored4.lib;QtGuid4.lib;Winmm.lib;Shlwapi.lib;Wininet.lib;PowrProf.lib;psapi.lib;QKeccakHash_VS2010.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>qtmaind.lib;QtCored4.lib;QtGuid4.lib;Winmm.lib;Shlwapi.lib;Sensapi.lib;PowrProf.lib;psapi.lib;QKeccakHash_VS2010.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(QTDIR)\lib;$(QTDIR)\plugins\imageformats;$(SolutionDir)\etc\Prerequisites\VisualLeakDetector\lib\Win32;$(SolutionDir)\etc\Prerequisites\keccak\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -144,7 +144,7 @@ copy /Y "$(SolutionDir)\etc\Prerequisites\VisualLeakDetector\bin\Win32\*.manifes
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions>"/MANIFESTDEPENDENCY:type=%27win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27 processorArchitecture=%27*%27" %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>qtmain.lib;QtCore4.lib;QtGui4.lib;Winmm.lib;Shlwapi.lib;Wininet.lib;PowrProf.lib;Psapi.lib;QKeccakHash_VS2010.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>qtmain.lib;QtCore4.lib;QtGui4.lib;Winmm.lib;Shlwapi.lib;Sensapi.lib;PowrProf.lib;Psapi.lib;QKeccakHash_VS2010.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ShowProgress>LinkVerboseLib</ShowProgress>
|
||||
<Version>
|
||||
</Version>
|
||||
@ -216,10 +216,9 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions>"/MANIFESTDEPENDENCY:type=%27win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27 processorArchitecture=%27*%27" %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>qtmain.lib;QtCore.lib;QtGui.lib;QtSvg.lib;qsvg.lib;qico.lib;qtga.lib;Winmm.lib;imm32.lib;ws2_32.lib;Shlwapi.lib;Wininet.lib;PowrProf.lib;Psapi.lib;QKeccakHash_VS2010.lib;EncodePointer.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>qtmain.lib;QtCore.lib;QtGui.lib;QtSvg.lib;qsvg.lib;qico.lib;qtga.lib;Winmm.lib;imm32.lib;ws2_32.lib;Shlwapi.lib;Sensapi.lib;PowrProf.lib;Psapi.lib;QKeccakHash_VS2010.lib;EncodePointer.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ShowProgress>LinkVerboseLib</ShowProgress>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)\etc\Prerequisites\z_old\qt4_static.VS2010\lib;$(SolutionDir)\etc\Prerequisites\z_old\qt4_static.VS2010\plugins\imageformats;$(SolutionDir)\etc\Prerequisites\EncodePointer\lib;$(SolutionDir)\etc\Prerequisites\VisualLeakDetector\lib\Win32;$(SolutionDir)\etc\Prerequisites\keccak\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)\etc\Prerequisites\qt4_static.VS2010\lib;$(SolutionDir)\etc\Prerequisites\qt4_static.VS2010\plugins\imageformats;$(SolutionDir)\etc\Prerequisites\EncodePointer\lib;$(SolutionDir)\etc\Prerequisites\VisualLeakDetector\lib\Win32;$(SolutionDir)\etc\Prerequisites\keccak\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<AssemblyDebug>
|
||||
</AssemblyDebug>
|
||||
@ -282,6 +281,7 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<ClCompile Include="src\Encoder_AC3.cpp" />
|
||||
<ClCompile Include="src\Encoder_DCA.cpp" />
|
||||
<ClCompile Include="src\Encoder_FLAC.cpp" />
|
||||
<ClCompile Include="src\Encoder_MAC.cpp" />
|
||||
<ClCompile Include="src\Encoder_MP3.cpp" />
|
||||
<ClCompile Include="src\Encoder_Opus.cpp" />
|
||||
<ClCompile Include="src\Encoder_Vorbis.cpp" />
|
||||
@ -292,7 +292,12 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<ClCompile Include="src\Filter_Resample.cpp" />
|
||||
<ClCompile Include="src\Filter_ToneAdjust.cpp" />
|
||||
<ClCompile Include="src\Genres.cpp" />
|
||||
<ClCompile Include="src\Global.cpp" />
|
||||
<ClCompile Include="src\Global_IPC.cpp" />
|
||||
<ClCompile Include="src\Global_Tools.cpp" />
|
||||
<ClCompile Include="src\Global_Utils.cpp" />
|
||||
<ClCompile Include="src\Global_Version.cpp" />
|
||||
<ClCompile Include="src\Global_Win32.cpp" />
|
||||
<ClCompile Include="src\Global_Zero.cpp" />
|
||||
<ClCompile Include="src\JobObject.cpp" />
|
||||
<ClCompile Include="src\LockedFile.cpp" />
|
||||
<ClCompile Include="src\Main.cpp" />
|
||||
@ -308,6 +313,7 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<ClCompile Include="src\Registry_Decoder.cpp" />
|
||||
<ClCompile Include="src\Registry_Encoder.cpp" />
|
||||
<ClCompile Include="src\ShellIntegration.cpp" />
|
||||
<ClCompile Include="src\Thread_CheckUpdate.cpp" />
|
||||
<ClCompile Include="src\Thread_CPUObserver.cpp" />
|
||||
<ClCompile Include="src\Thread_CueSplitter.cpp" />
|
||||
<ClCompile Include="src\Thread_DiskObserver.cpp" />
|
||||
@ -340,6 +346,7 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<ClCompile Include="tmp\MOC_Encoder_AC3.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_DCA.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_FLAC.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_MAC.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_MP3.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_Opus.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_Vorbis.cpp" />
|
||||
@ -352,6 +359,7 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<ClCompile Include="tmp\MOC_Model_Progress.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Registry_Decoder.cpp" />
|
||||
<ClCompile Include="tmp\MOC_ShellIntegration.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Thread_CheckUpdate.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Thread_CPUObserver.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Thread_CueSplitter.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Thread_DiskObserver.cpp" />
|
||||
@ -369,9 +377,15 @@ 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.cpp" />
|
||||
<ClCompile Include="tmp\QRC_Tools_Misc.cpp" />
|
||||
<ClCompile Include="tmp\QRC_Tools_Encd_A.cpp" />
|
||||
<ClCompile Include="tmp\QRC_Tools_Encd_B.cpp" />
|
||||
<ClCompile Include="tmp\QRC_Tools_Encd_C.cpp" />
|
||||
<ClCompile Include="tmp\QRC_Tools_Encd_D.cpp" />
|
||||
<ClCompile Include="tmp\QRC_Tools_Misc_A.cpp" />
|
||||
<ClCompile Include="tmp\QRC_Tools_Misc_B.cpp" />
|
||||
<ClCompile Include="tmp\QRC_Tools_Misc_C.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="etc\Prerequisites\strnatcmp\include\strnatcmp.h" />
|
||||
@ -511,8 +525,30 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<ClInclude Include="src\Decoder_Opus.h" />
|
||||
<CustomBuild Include="src\Encoder_MAC.h">
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<ClInclude Include="src\JobObject.h" />
|
||||
<ClInclude Include="src\Registry_Encoder.h" />
|
||||
<CustomBuild Include="src\Thread_CheckUpdate.h">
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<ClInclude Include="src\Tools.h" />
|
||||
<CustomBuild Include="src\Tool_WaveProperties.h">
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
@ -1013,17 +1049,14 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\QRC_%(Filename).cpp" -name "%(Filename)" "%(FullPath)"
|
||||
</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)\res\localization\LameXP_DE.qm;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\QRC_%(Filename).cpp" -name "%(Filename)" "%(FullPath)"
|
||||
</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(ProjectDir)\res\localization\LameXP_DE.qm;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\QRC_%(Filename).cpp" -name "%(Filename)" "%(FullPath)"
|
||||
</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="gui\CueSheetImport.ui">
|
||||
@ -1173,29 +1206,101 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\QRC_%(Filename).cpp" -name "%(Filename)" "%(FullPath)"</Command>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Encd.qrc">
|
||||
<CustomBuild Include="res\Tools_Encd_A.qrc">
|
||||
<FileType>Document</FileType>
|
||||
<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)'=='Release_Static|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\QRC_%(Filename).cpp" -name "%(Filename)" "%(FullPath)"</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<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_Static|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>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|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_Static|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Misc.qrc">
|
||||
<CustomBuild Include="res\Tools_Encd_B.qrc">
|
||||
<FileType>Document</FileType>
|
||||
<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)'=='Release_Static|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\QRC_%(Filename).cpp" -name "%(Filename)" "%(FullPath)"</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<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_Static|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>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|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_Static|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Encd_C.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_Static|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>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|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_Static|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Encd_D.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_Static|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>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|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_Static|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Misc_A.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_Static|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>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|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_Static|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Misc_B.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_Static|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>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|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_Static|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Misc_C.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_Static|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>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|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_Static|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|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_Static|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>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">RCC "$(SolutionDir)tmp\QRC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|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_Static|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\QRC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -1,9 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\Global.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\Main.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@ -316,12 +313,6 @@
|
||||
<ClCompile Include="tmp\QRC_Tools_Decd.cpp">
|
||||
<Filter>Generated Files\QRC</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tmp\QRC_Tools_Encd.cpp">
|
||||
<Filter>Generated Files\QRC</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tmp\QRC_Tools_Misc.cpp">
|
||||
<Filter>Generated Files\QRC</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\Thread_CPUObserver.cpp">
|
||||
<Filter>Source Files\Threads</Filter>
|
||||
</ClCompile>
|
||||
@ -379,6 +370,60 @@
|
||||
<ClCompile Include="src\JobObject.cpp">
|
||||
<Filter>Source Files\Misc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tmp\QRC_Tools_Encd_A.cpp">
|
||||
<Filter>Generated Files\QRC</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tmp\QRC_Tools_Encd_B.cpp">
|
||||
<Filter>Generated Files\QRC</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tmp\QRC_Tools_Encd_C.cpp">
|
||||
<Filter>Generated Files\QRC</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tmp\QRC_Tools_Encd_D.cpp">
|
||||
<Filter>Generated Files\QRC</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tmp\QRC_Tools_Misc_A.cpp">
|
||||
<Filter>Generated Files\QRC</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tmp\QRC_Tools_Misc_B.cpp">
|
||||
<Filter>Generated Files\QRC</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tmp\QRC_Tools_Misc_C.cpp">
|
||||
<Filter>Generated Files\QRC</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\Global_IPC.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\Global_Tools.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\Global_Utils.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\Global_Version.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\Global_Win32.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\Global_Zero.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\Thread_CheckUpdate.cpp">
|
||||
<Filter>Source Files\Threads</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tmp\MOC_Thread_CheckUpdate.cpp">
|
||||
<Filter>Generated Files\MOC</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\Encoder_MAC.cpp">
|
||||
<Filter>Source Files\Encoders</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tmp\MOC_Encoder_MAC.cpp">
|
||||
<Filter>Generated Files\MOC</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tmp\QRC_Sounds.cpp">
|
||||
<Filter>Generated Files\QRC</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="src\Config.h">
|
||||
@ -668,12 +713,6 @@
|
||||
<CustomBuild Include="src\Encoder_AAC_FHG.h">
|
||||
<Filter>Header Files\Encoders</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Encd.qrc">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Misc.qrc">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Decd.qrc">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
@ -704,6 +743,36 @@
|
||||
<CustomBuild Include="gui\AboutDialog.ui">
|
||||
<Filter>Dialogs</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Misc_B.qrc">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Misc_A.qrc">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Encd_D.qrc">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Encd_C.qrc">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Encd_B.qrc">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Misc_C.qrc">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Tools_Encd_A.qrc">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Thread_CheckUpdate.h">
|
||||
<Filter>Header Files\Threads</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Encoder_MAC.h">
|
||||
<Filter>Header Files\Encoders</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="res\Sounds.qrc">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="res\MainIcon.ico" />
|
||||
|
@ -90,7 +90,7 @@
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions>"/MANIFESTDEPENDENCY:type=%27win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27 processorArchitecture=%27*%27" %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>QtCored4.lib;QtGuid4.lib;Winmm.lib;Shlwapi.lib;Sensapi.lib;PowrProf.lib;psapi.lib;QKeccakHash_VS2013.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(QTDIR)\lib;$(QTDIR)\plugins\imageformats;$(SolutionDir)\etc\Prerequisites\VisualLeakDetector\lib\Win32;$(SolutionDir)\etc\Prerequisites\keccak\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
@ -154,7 +154,7 @@ copy /Y "$(SolutionDir)\etc\Prerequisites\VisualLeakDetector\bin\Win32\*.manifes
|
||||
<ProgramDataBaseFileName />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions>"/MANIFESTDEPENDENCY:type=%27win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27 processorArchitecture=%27*%27" %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>QtCore4.lib;QtGui4.lib;Winmm.lib;Shlwapi.lib;Sensapi.lib;PowrProf.lib;psapi.lib;QKeccakHash_VS2013.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ShowProgress>LinkVerboseLib</ShowProgress>
|
||||
<Version>
|
||||
@ -234,10 +234,10 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<ProgramDataBaseFileName />
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions>"/MANIFESTDEPENDENCY:type=%27win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27 processorArchitecture=%27*%27" %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>QtCore.lib;QtGui.lib;QtSvg.lib;qtmain.lib;qsvg.lib;qico.lib;qtga.lib;Winmm.lib;imm32.lib;ws2_32.lib;Shlwapi.lib;Sensapi.lib;PowrProf.lib;psapi.lib;QKeccakHash_VS2013.lib;EncodePointer.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ShowProgress>LinkVerboseLib</ShowProgress>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)\etc\Prerequisites\qt4_static.VS2013\lib;$(SolutionDir)\etc\Prerequisites\qt4_static.VS2013\plugins\imageformats;$(SolutionDir)\etc\Prerequisites\EncodePointer\lib;$(SolutionDir)\etc\Prerequisites\VisualLeakDetector\lib\Win32;$(SolutionDir)\etc\Prerequisites\keccak\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)\etc\Prerequisites\qt4_static\lib;$(SolutionDir)\etc\Prerequisites\qt4_static\plugins\imageformats;$(SolutionDir)\etc\Prerequisites\EncodePointer\lib;$(SolutionDir)\etc\Prerequisites\VisualLeakDetector\lib\Win32;$(SolutionDir)\etc\Prerequisites\keccak\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<AssemblyDebug>
|
||||
|
@ -564,9 +564,6 @@
|
||||
<ClInclude Include="etc\Prerequisites\strnatcmp\include\strnatcmp.h">
|
||||
<Filter>Header Files\Misc\3rd Party</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\Encoder_MAC.h">
|
||||
<Filter>Header Files\Encoders</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="gui\DropBox.ui">
|
||||
@ -776,6 +773,9 @@
|
||||
<CustomBuild Include="src\Thread_CheckUpdate.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Encoder_MAC.h">
|
||||
<Filter>Header Files\Encoders</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ReadMe.txt" />
|
||||
|
@ -17,7 +17,17 @@ a:visited { color: #0000EE; }
|
||||
<body>
|
||||
<h3>LameXP - Version History</h3><br>
|
||||
|
||||
<a name="4.09"></a>Changes between v4.08 and v4.09 [<font color="darkred">unreleased</font>]:<br><ul>
|
||||
<a name="4.10"></a>Changes between v4.09 and v4.10 [<font color="darkred">unreleased</font>]:<br><ul>
|
||||
<li>Upgraded build environment to Microsoft Visual Studio 2013 with Update-2
|
||||
<li>Updated Qt runtime libraries to v4.8.6 (2014-04-25), compiled with MSVC 12.0
|
||||
<li>Updated Opus libraries v1.1.x and Opus-Tools v0.1.8 to latest Git Master (2014-04-13)
|
||||
<li>Updated MediaInfo to v0.7.69 (2014-04-26), compiled with ICL 14.0 and MSVC 12.0
|
||||
<li>Updated mpg123 decoder to v1.19.0 (2014-03-08), compiled with GCC 4.8.2
|
||||
<li>Fixed a bug that could cause the cover artwork to be lost under certain circumstances
|
||||
<li>Added command-line options to adjust the LameXP font size (see <a href="FAQ.html#c8870a0a" target="_blank">FAQ doc</a> for details)
|
||||
</ul><br>
|
||||
|
||||
<a name="4.09"></a>Changes between v4.08 and v4.09 [2014-01-26]:<br><ul>
|
||||
<li>Upgraded build environment to Microsoft Visual Studio 2013 RTM
|
||||
<li>Complete overhaul of the file analyzer, resulting in up to 2.5x faster file import speed
|
||||
<li>Reworked the application initialization code, resulting in notably faster startup speed
|
||||
@ -33,6 +43,8 @@ a:visited { color: #0000EE; }
|
||||
<li>Updated MediaInfo to v0.7.67 (2014-01-10), compiled with ICL 14.0 and MSVC 12.0
|
||||
<li>Updated GNU Wget binary to v1.14.0 (2012-08-05), compiled with GCC 4.8.1
|
||||
<li>Updated GnuPG to v1.4.16 (2013-12-13), compiled with GCC 4.8.1
|
||||
<li>Updated the QAAC add-in for LameXP to QAAC v2.33 (2014-01-14), compiled with MSVC 12.0
|
||||
<li>Updated language files (big thank-you to all contributors !!!)
|
||||
<li>Fixed a resource (file descriptor) leak in "static" builds, didn't cause much harm though
|
||||
<li>Various bugfixes and code improvements
|
||||
</ul><br>
|
||||
|
52
doc/FAQ.html
52
doc/FAQ.html
@ -41,6 +41,7 @@ a:visited { color: #0000EE; }
|
||||
<li><a href="#df406578">The LameXP startup (splash screen) takes very long on my system. What can I do?</a>
|
||||
<li><a href="#a923d407">Why is there a time limit (expiration) in my version of LameXP?</a>
|
||||
<li><a href="#900a2a6c">Is there a way to hide/show the LameXP console ("DOS Box") window?</a>
|
||||
<li><a href="#c8870a0a">How can I change the font size in the LameXP window?</a>
|
||||
<li><a href="#9b0a5c32">Why does application 'xyz' not open the Wave files created by LameXP?</a>
|
||||
<li><a href="#89cbd3d0">Why does LameXP run (only) N instances/threads in parallel on my computer?</a>
|
||||
<li><a href="#454e51dd">Why does LameXP try to connect to the web-server at 'xyz.com' secretly?</a>
|
||||
@ -504,8 +505,9 @@ QAAC encoder, then you have to install QuickTime v7.7.1 (or newer). Alternativel
|
||||
be installed. Both, QuickTime and iTunes, can be <a href="http://www.apple.com/quicktime/download/" target="_blank">downloaded for free</a> from the official Apple web-site.<br>
|
||||
<br>
|
||||
In order to enable the QAAC Encoder support you will also need the 'QAAC Encoder Add-in' for LameXP:<br><ul>
|
||||
<li><a href="http://www.mediafire.com/file/o5is7bqporboa7b/LameXP.qaac-addin.2012-08-05.zip" target="_blank">http://www.mediafire.com/file/o5is7bqporboa7b/LameXP.qaac-addin.2012-08-05.zip</a>
|
||||
<li><a href="http://muldersoft.com/misc/lamexp/add-ins/LameXP.qaac-addin.2012-08-05.zip" target="_blank">http://muldersoft.com/misc/lamexp/add-ins/LameXP.qaac-addin.2012-08-05.zip</a></ul>
|
||||
<li><a href="http://www.mediafire.com/download/38nv297501obvwv/LameXP.qaac-addin.2014-01-19.zip" target="_blank">http://www.mediafire.com/download/38nv297501obvwv/LameXP.qaac-addin.2014-01-19.zip</a>
|
||||
<li><a href="http://sf.net/projects/lamexp/files/Miscellaneous/Add-ins/qaac/LameXP.qaac-addin.2014-01-19.zip/download" target="_blank">http://sf.net/projects/lamexp/files/Miscellaneous/Add-ins/qaac/LameXP.qaac-addin.2014-01-19.zip</a>
|
||||
<li><a href="http://muldersoft.com/misc/lamexp/add-ins/LameXP.qaac-addin.2014-01-19.zip" target="_blank">http://muldersoft.com/misc/lamexp/add-ins/LameXP.qaac-addin.2014-01-19.zip</a></ul>
|
||||
<br>
|
||||
Please follow the install instructions that are included with the 'QAAC Encoder Add-in' download package!<br>
|
||||
Note that you do NOT need to install this Add-in, if you only want to use the Nero AAC Encoder.<br>
|
||||
@ -514,13 +516,15 @@ Note that you do NOT need to install this Add-in, if you only want to use the Ne
|
||||
FHG AAC Encoder<br>
|
||||
<br>
|
||||
Optionally LameXP also supports the FHG AAC Encoder now. Just like the Nero encoder, the FHG encoder can NOT<br>
|
||||
be redistributed along with LameXP. However the FHG AAC Encoder is included with Winamp v5.62, which is<br>
|
||||
be redistributed along with LameXP. However the FHG AAC Encoder is included with Winamp (v5.62+), which is<br>
|
||||
available as a free download (you don't need to buy the "Pro" version!) from the official Winamp web-site at:<br><ul>
|
||||
<li><a href="http://www.winamp.com/media-player/" target="_blank">http://www.winamp.com/media-player/</a>
|
||||
<li><a href="http://download.nullsoft.com/winamp/client/winamp5623_full_emusic-7plus_all.exe" target="_blank">http://download.nullsoft.com/winamp/client/winamp5623_full_emusic-7plus_all.exe</a></ul>
|
||||
<li><a href="http://www.winamp.com/media-player/en" target="_blank">http://www.winamp.com/media-player/en</a>
|
||||
<li><a href="http://download.nullsoft.com/winamp/client/winamp5666_full_en-us.exe" target="_blank">http://download.nullsoft.com/winamp/client/winamp5666_full_en-us.exe</a>
|
||||
<li><a href="http://www.free-codecs.com/winamp_download.htm" target="_blank">http://www.free-codecs.com/winamp_download.htm</a></ul>
|
||||
<br>
|
||||
In order to enable the FHG AAC Encoder support you will also need the 'FHG AAC Encoder Add-in' for LameXP:<br><ul>
|
||||
<li><a href="http://www.mediafire.com/file/ni7w4323pqub9x3/LameXP.fhgaacenc-addin.2012-08-06.zip" target="_blank">http://www.mediafire.com/file/ni7w4323pqub9x3/LameXP.fhgaacenc-addin.2012-08-06.zip</a>
|
||||
<li><a href="http://sf.net/projects/lamexp/files/Miscellaneous/Add-ins/fhgaac/LameXP.fhgaacenc-addin.2012-08-06.zip/download" target="_blank">http://sf.net/projects/lamexp/files/Miscellaneous/Add-ins/fhgaac/LameXP.fhgaacenc-addin.2012-08-06.zip</a>
|
||||
<li><a href="http://muldersoft.com/misc/lamexp/add-ins/LameXP.fhgaacenc-addin.2012-08-06.zip" target="_blank">http://muldersoft.com/misc/lamexp/add-ins/LameXP.fhgaacenc-addin.2012-08-06.zip</a></ul>
|
||||
<br>
|
||||
Please follow the install instructions that are included with the 'FHG AAC Encoder Add-in' download package!<br>
|
||||
@ -661,6 +665,25 @@ WARNING: Any attempt to close the LameXP console window will kill the applicatio
|
||||
|
||||
<br><br>
|
||||
|
||||
<a name="c8870a0a"></a><b>How can I change the font size in the LameXP window?</b><br>
|
||||
<br>
|
||||
Sometimes it may be required to adjust the font size, e.g. when working on a "high DPI" screen. The best way<br>
|
||||
to adjust the font size is tweaking the DPI settings of your system. On modern Windows operating systems,<br>
|
||||
this option can be found at the "Display" options at the Control Panel. Simply select, e.g., "Medium" (125%)<br>
|
||||
or "Larger" (150%) to increase the size of all GUI widgets, including larger fonts. LameXP is based on Qt and<br>
|
||||
therefore is fully "DPI aware". This means it will respect the system's DPI settings - without(!) blurring.<br>
|
||||
<br>
|
||||
In rare cases you may which to adjust the font-size only inside the LameXP window, but *not* effect any other<br>
|
||||
applications. For this particular purpose, LameXP offers the following command-line options:<br>
|
||||
<blockquote><table>
|
||||
<tr><td><font class="code">--tiny-font </font></td><td> </td><td>Enforces very small font size (75%)</td></tr>
|
||||
<tr><td><font class="code">--small-font</font></td><td> </td><td>Enforces smaller font size (87.5%)</td></tr>
|
||||
<tr><td><font class="code">--big-font </font></td><td> </td><td>Enforces larger font size (125%)</td></tr>
|
||||
<tr><td><font class="code">--huge-font </font></td><td> </td><td>Enforces very large font size (150%)</td></tr>
|
||||
</table></blockquote>
|
||||
|
||||
<br><br>
|
||||
|
||||
<a name="9b0a5c32"></a><b>Why does application 'xyz' not open the Wave files created by LameXP?</b><br>
|
||||
<br>
|
||||
Some of the decoders used in LameXP will insert an additional 'JUNK' chunk into the Wave/RIFF file, right<br>
|
||||
@ -701,7 +724,7 @@ cores, the maximum number of parallel instances is six. On systems with 16 cores
|
||||
parallel instances is eight. On systems with 32 cores, the maximum number of parallel instances is eleven.<br>
|
||||
And on systems with 64 cores, the maximum number of parallel instances is 16. 16 is the upper limit.<br>
|
||||
<br>
|
||||
<a href="http://img853.imageshack.us/img853/1428/corestoinstancesbig.png" target="_blank"><img src="http://img853.imageshack.us/img853/1428/corestoinstancesbig.th.png" border="0" alt="thumb"></a><br>
|
||||
<a href="http://i.imgur.com/QbS47Wi.png" target="_blank"><img src="http://i.imgur.com/QbS47Wis.png" border="1px" alt="thumb"></a><br>
|
||||
<br>
|
||||
You may wonder why LameXP doesn't always create one instance for each CPU core. In theory, the more instances<br>
|
||||
we run in parallel, the more CPU cores can be utilized - until all CPU cores are busy and the overall CPU<br>
|
||||
@ -832,7 +855,7 @@ filter will be applied in order to recover a continuous signal from these indivi
|
||||
reconstructed analogue signal it is possible to have voltages that are higher than the highest digital sample<br>
|
||||
in the audio track! This is illustrated in the following image (samples are represented as tiny squares):<br>
|
||||
<br>
|
||||
<a target="_blank" href="http://img3.imageshack.us/img3/9153/sine0dbfs.png"><img src="http://img3.imageshack.us/img3/9153/sine0dbfs.th.png" border="0" alt="thumb"></a><br>
|
||||
<a target="_blank" href="http://i.imgur.com/5dmIUOZ.png"><img src="http://i.imgur.com/5dmIUOZs.png" border="1px" alt="thumb"></a><br>
|
||||
<br>
|
||||
Consequently normalizing the sample values to 0dBFS is NOT a very good idea, as this may very well result in<br>
|
||||
a reconstructed analogue signal which exceeds(!) 0dBFS. And, as the analogue parts of the playback equipment<br>
|
||||
@ -959,7 +982,7 @@ switching to the 'Compatibility' tab and un-checking the 'Run this program in co
|
||||
<a name="01922741"></a><b>Why do I get the error 'LameXP.exe is not a valid Win32 application' on startup?</b><br>
|
||||
<br>
|
||||
You are trying to run LameXP on a platform that is NOT supported, such as Windows 95, Windows 98, Windows<br>
|
||||
Millennium Edition, Windows NT 4.0 or Windows 2000. There is nothing you can do about that, except for
|
||||
Millennium Edition, Windows NT 4.0 or Windows 2000. There is nothing you can do about that, except for<br>
|
||||
updating to a less antiquated OS. Running an outdated and unsupported OS is a severe security risk anyway!<br>
|
||||
<br>
|
||||
Note: This error can also occur, if your system has been configured to run LameXP in <a href="#e7c9ae2b">compatibility mode</a>.<br><br>
|
||||
@ -1002,12 +1025,14 @@ Please see the guide for translators at:<br><ul>
|
||||
<a name="8dba381f"></a><b>Where can I download the latest version of LameXP?</b><br>
|
||||
<br>
|
||||
The latest "official" release of LameXP can be found on the following mirrors:<br><ul>
|
||||
<li><a href="https://github.com/lordmulder/LameXP/releases/latest" target="_blank">https://github.com/lordmulder/LameXP/releases/latest</a>
|
||||
<li><a href="http://sourceforge.net/projects/lamexp/files/" target="_blank">http://sourceforge.net/projects/lamexp/files/</a>
|
||||
<li><a href="http://developer.berlios.de/project/showfiles.php?group_id=13288" target="_blank">http://developer.berlios.de/project/showfiles.php?group_id=13288</a>
|
||||
<li><a href="https://lamexp.codeplex.com/releases/view/113532" target="_blank">https://lamexp.codeplex.com/releases/view/113532</a>
|
||||
<li><a href="https://code.google.com/p/mulder/downloads/list" target="_blank">http://code.google.com/p/mulder/downloads/list</a>
|
||||
<li><a href="https://lamexp.codeplex.com/releases/" target="_blank">https://lamexp.codeplex.com/releases/</a>
|
||||
<li><a href="https://bitbucket.org/lord_mulder/lamexp/downloads" target="_blank">https://bitbucket.org/lord_mulder/lamexp/downloads</a>
|
||||
<li><a href="http://www.free-codecs.com/lamexp_download.htm" target="_blank">http://www.free-codecs.com/lamexp_download.htm</a></ul>
|
||||
<li><a href="https://www.assembla.com/spaces/lamexp/documents" target="_blank">https://www.assembla.com/spaces/lamexp/documents</a>
|
||||
<li><a href="http://www.free-codecs.com/lamexp_download.htm" target="_blank">http://www.free-codecs.com/lamexp_download.htm</a>
|
||||
<li><a href="http://www.videohelp.com/tools/LameXP" target="_blank">http://www.videohelp.com/tools/LameXP</a></ul>
|
||||
<br><br>
|
||||
|
||||
<a name="9c2e273d"></a><b>Where can I submit bug reports or feature requests?</b><br>
|
||||
@ -1033,10 +1058,11 @@ application framework and offers full Unicode support. For the time being LameXP
|
||||
LameXP is developed using the <a href="http://en.wikipedia.org/wiki/Git_(software)" target="_blank">Git</a> revision control system. You can access one of the public mirrors:<br><ul>
|
||||
<li><font class="code">git clone git://git.code.sf.net/p/lamexp/code lamexp-src</font> (<a href="http://sourceforge.net/p/lamexp/code/" target="_blank">Browse</a>)
|
||||
<li><font class="code">git clone git://git.berlios.de/lamexp lamexp-src</font> (<a href="http://git.berlios.de/cgi-bin/gitweb.cgi?p=lamexp" target="_blank">Browse</a>)
|
||||
<li><font class="code">git clone https://git01.codeplex.com/lamexp lamexp-src</font> (<a href="https://lamexp.codeplex.com/SourceControl/latest" target="_blank">Browse</a>)
|
||||
<li><font class="code">git clone https://github.com/lordmulder/LameXP.git lamexp-src</font> (<a href="https://github.com/lordmulder/LameXP" target="_blank">Browse</a>)
|
||||
<li><font class="code">git clone https://git01.codeplex.com/lamexp lamexp-src</font> (<a href="https://lamexp.codeplex.com/SourceControl/latest" target="_blank">Browse</a>)
|
||||
<li><font class="code">git clone https://bitbucket.org/lord_mulder/lamexp.git lamexp-src</font> (<a href="https://bitbucket.org/lord_mulder/lamexp/src" target="_blank">Browse</a>)
|
||||
<li><font class="code">git clone git://gitorious.org/lamexp/lamexp.git lamexp-src</font> (<a href="http://gitorious.org/lamexp/lamexp/trees/master" target="_blank">Browse</a>)</ul>
|
||||
<li><font class="code">git clone git://gitorious.org/lamexp/lamexp.git lamexp-src</font> (<a href="http://gitorious.org/lamexp/lamexp/trees/master" target="_blank">Browse</a>)
|
||||
<li><font class="code">git clone git://git.assembla.com/lamexp.git lamexp-src</font> (<a href="https://www.assembla.com/code/lamexp/git/nodes" target="_blank">Browse</a>)</ul>
|
||||
<br>
|
||||
In case you are new to Git or want to extend your knowledge, have a look at the <a href="http://git-scm.com/book/en" target="_blank">Pro Git</a> book by Scott Chacon!<br>
|
||||
For Windows users, we highly recommend using <a href="http://msysgit.github.com/" target="_blank">MSYS Git</a> in conjunction with the superb <a href="http://tortoisegit.googlecode.com/" target="_blank">Tortoise Git</a> front-end.<br><br>
|
||||
|
@ -27,5 +27,8 @@ Sorry, there is no LameXP user manual (yet), but we have an extensive <b><a href
|
||||
Please have a look at <b><a href="FAQ.html">F.A.Q.</a></b> document, it will probably answer your question...<br>
|
||||
<br>
|
||||
<br>
|
||||
<font style="color:darkred">Note: If you are willing to contribute an in-depth LameXP manual, then please contact us!</font><br>
|
||||
<br>
|
||||
<br>
|
||||
eof
|
||||
</body></html>
|
||||
|
@ -13,20 +13,34 @@ a:visited { color: #0000EE; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<!-- ============================= -->
|
||||
<h1>Howto: Translate LameXP</h1>
|
||||
<p><b>If you are willing to contribute a new LameXP v4.xx translation or update/fix an existing translation, then this guide will help you to do so :-)</b></p>
|
||||
<p><b>If you are willing to contribute a new LameXP v4.xx translation or improve an existing translation, then this guide will help you to do so :-)</b></p>
|
||||
<br>
|
||||
<img src="http://lamexp.sourceforge.net/lamexp.png" alt="Screenshot"><br>
|
||||
<br>
|
||||
<h3>Prerequisites:</h3>
|
||||
<p>LameXP v4.xx is a complete re-write of LameXP. This time LameXP is developed in C++ and it is based on the <a href="http://qt.nokia.com/products/" target="_blank">Qt</a> cross-platform application framework. The good news for translators is that Qt provides <i>full Unicode support</i>, which was also one of the main reasons for the re-write. Consequently there will be no more headache with different Codepages! Furthermore the Qt framework provides a sophisticated translation system, which allows for easy internationalization and localization. There even is an easy-to-use graphical tool for translating Qt application, the <a href="http://doc.qt.nokia.com/latest/linguist-manual.html" target="_blank">Qt Linguist</a>. So before you start translating, you should make yourself familiar with the <i>Qt Linguist</i> application. As a translator, having a quick look at the <a href="http://doc.qt.nokia.com/latest/linguist-translators.html" target="_blank">guide for translators</a> is sufficient.</p>
|
||||
<p>You can download <i>Qt Linguist</i> as a part of the "Qt SDK" or the "Qt libraries", which are available as a free download from the <a href="http://qt-project.org/downloads" target="_blank">Qt download site</a>. We recommend picking the "Qt SDK" and download the "Online installer" (∼15 MB), but you do <b>not</b> need to worry about a "commercial" license. In the Qt SDK Setup wizard, make sure you select the "Custom" install type. Then un-check all components, except for "Qt SDK" ⇒ "Development Tools" ⇒ "Qt Liguist". Alternatively, if you don't want to install the Qt SDK on your computer, you can find Qt Linguist for Windows as a <i>stand-alone</i> download at <a href="http://sourceforge.net/projects/lamexp/files/Miscellaneous/Qt%20Linguist/" target="_blank"><b>this</b></a> location (only ∼4 MB). This stand-alone version of Linguist has been built using <i>static</i> Qt libraries and thus should work "out of the box" <i>without</i> any dependencies - just unzip the ZIP file and run the "linguist.exe" file.</p>
|
||||
<!-- ============================= -->
|
||||
<h3>Introduction:</h3>
|
||||
<p>LameXP v4.xx is a complete re-write of LameXP. This time LameXP is developed in C++ and it is based on the <a href="http://qt-project.org/" target="_blank"><b>Qt</b></a> cross-platform application framework. The good news for translators is that Qt provides <i>full Unicode support</i>, which was also one of the main reasons for the re-write. Consequently there will be <b>no</b> more headache with different Codepages! Furthermore the Qt framework provides a sophisticated <i>translation system</i>, which allows for easy internationalization and localization. There even is an easy-to-use <i>graphical tool</i> for translating Qt application, which is called <b>Qt Linguist</b>. Consequently, before you start translating, you should make yourself familiar with the <i>Qt Linguist</i> application. As a translator, having a quick look at the <a href="http://qt-project.org/doc/qt-4.8/linguist-translators.html" target="_blank"><i>Qt Linguist manual for translators</i></a> should be sufficient.</p>
|
||||
<br>
|
||||
<!-- ============================= -->
|
||||
<h3>Prerequisites:</h3>
|
||||
<p>You can obtain the <i>Qt Linguist</i> application as a part of the <b>Qt</b> cross-platform application framework, which is available as a <i>free</i> download from the <a href="cross-platform application framework" target="_blank">Qt Project web-site</a>. We recommend choosing the "Qt libraries 4.8.6 for Windows (VS 2010)" download. Note that, in order to find the desired download link, you may need to click on the "Show Downloads" button first and then scroll down. In any case, the <i>free</i> "OpenSource" edition of Qt is perfectly sufficient, i.e. you do <b>not</b> need to buy the <i>commercial</i> edition of Qt offered by Digia Inc.</p>
|
||||
<p>Alternatively, if you do <b>not</b> want to download and install the <i>complete</i> Qt framework, you can download Qt Linguist (and some other Qt-related tools) as a <i>stand-alone</i> package at <a href="http://sourceforge.net/projects/lamexp/files/Miscellaneous/Qt%20Linguist/" target="_blank"><b>this</b></a> location. This stand-alone version will work "out of the box" <i>without</i> installation.</p>
|
||||
<br>
|
||||
<!-- ============================= -->
|
||||
<h3>Editing the language file:</h3>
|
||||
<p>LameXP v4.xx translations are created as TS (translation) files, which can be edited using the <i>Qt Linguist</i> application. For new translations an empty TS file ("Blank.ts") is provided in the LameXP Git repository. When you open the empty TS file for the first time, Qt Linguist will ask for some basic settings. Here you must keep the "Source language" options at "English" and "Any Country". Change the "Target language" options to whatever language (region) you are going to translate to. Once you have edited all (or some) text strings, you can save your work to a TS file again. It is recommended to save your work to "LameXP_XX.ts", where <i>XX</i> should be replaced with the suitable upper-case <a href="http://www.loc.gov/standards/iso639-2/php/code_list.php" target="_blank">ISO 639-1</a> Code for the representation of names of languages (for example the German translation is saved as "LameXP_DE.ts", because the corresponding ISO 639-1 code is DE). You can re-open your TS file at any time in order to continue with your work. In case you want to improve an existing LameXP translation, simply download the corresponding TS file from the LameXP Git repository and edit it using the Qt Linguist tool.</p>
|
||||
<p>The latest translation (TS) files can always be found in the LameXP Git repository at:<br>• <a href="https://github.com/lordmulder/LameXP/tree/master/etc/Translation" target="_blank">https://github.com/lordmulder/LameXP/tree/master/etc/Translation</a><br>• <a href="https://bitbucket.org/lord_mulder/lamexp/src/master/etc/Translation" target="_blank">https://bitbucket.org/lord_mulder/lamexp/src/master/etc/Translation</a><span style="font-size:0.42em"><br><br></span>After you have chosen a file from the directory tree (by left-click!), you can download the file by right-clicking on <b>"raw"</b> button/link (in the upper right corner) an choosing "Save Link As...".<br><img src="http://img192.imageshack.us/img192/803/rawy.png" alt="Raw"><br>(As people seem to have problems here: Please be sure to download the actual file content, by using the "raw" button/link. Do <i>not</i> save the page as shown in the browser, as that would only save the HTML preview of the file rather than the file itself! Also, in the directory tree view, do <i>not</i> right-click + "Save Link As..." on one of the TS files, as that would only save the HTML preview. Instead, left-click on the link to open/preview the TS file in the browser, <i>then</i> use the "raw" button/link!)</p>
|
||||
<p style="border-width:2px;border-style:solid;border-color:darkred;margin-top:2em"><font color="darkred"><b>IMPORTANT:</b> Before you start to create a new translation, always make sure you downloaded the <i>latest</i> "Blank.ts" file from the LameXP Git repository. Also before you start editing or updating an <i>existing</i> translation, including translations you have created yourself, make sure you downloaded the <i>latest</i> TS file from the LameXP Git repository. <i>Never</i> do any translations based on an old working copy (TS file) from your local system! The translation files (TS) in the Git repository will be updated/extended continuously, as the development proceeds. We cannot accept translations based on an <i>outdated</i> TS file!</font></p>
|
||||
<p>The latest translation (TS) files can always be found in the LameXP Git repository at:</p>
|
||||
<ul>
|
||||
<li><a href="https://github.com/lordmulder/LameXP/tree/master/etc/Translation" target="_blank">https://github.com/lordmulder/LameXP/tree/master/etc/Translation</a>
|
||||
<li><a href="https://bitbucket.org/lord_mulder/lamexp/src/master/etc/Translation" target="_blank">https://bitbucket.org/lord_mulder/lamexp/src/master/etc/Translation</a>
|
||||
</ul>
|
||||
<p>After you have chosen a file from the directory tree, by <i>left</i>-click, you can download the file by <i>right</i>-clicking on <b>Raw</b> button/link (in the upper right corner) an then choosing "Save Link As..." from the context menu.<br><img style="margin-top:0.25em" src="http://i.imgur.com/FYeggvn.png" alt="Raw Button"></p>
|
||||
<p>(As many people seem to have problems here: Please be sure to download the <i>actual file content</i>, by using the "Raw" button. Please do <i>not</i> save the page as shown in the browser, as that would only save the HTML preview of the file rather than the file itself! Also, in the directory tree view, do <i>not</i> right-click + "Save Link As..." on one of the TS files, as that would only save the HTML preview. Instead, <i>left</i>-click on the link to open the TS file in the browser. <i>Then</i> use the "Raw" button as described above!)</p>
|
||||
<p style="border-width:2px;border-style:solid;border-color:darkred;margin-top:2em"><font color="darkred"><b>IMPORTANT:</b> Before you start to create a new translation, <i>always</i> make sure you downloaded the <u>latest</u> "Blank.ts" file from the LameXP Git repository. Also, before you start editing or updating an <i>existing</i> translation, make sure you downloaded the <u>latest</u> TS file from the LameXP Git repository. <u>Never</u> do any translations based on some working copies that you kept on your local system! The translation files (TS) in the Git repository will be updated <i>continuously</i>, as the development proceeds. We can <b>not</b> accept translations based on an <i>outdated</i> TS file!</font></p>
|
||||
<br>
|
||||
<!-- ============================= -->
|
||||
<h3>Language file editing rules:</h3>
|
||||
Only language files that have been edited according to the following rules can be accepted:
|
||||
<ul>
|
||||
@ -40,6 +54,7 @@ Only language files that have been edited according to the following rules can b
|
||||
<li>Note that the red <font style="color:darkred;font-weight:bold">!</font> icon and the yellow <font style="color:#AA8B0F">✔</font> icon indicate that there is some problem with your translation, which needs to be resolved!
|
||||
</ul>
|
||||
<br>
|
||||
<!-- ============================= -->
|
||||
<h3>Examples:</h3>
|
||||
Here are a few examples of properly translated strings:
|
||||
<ul>
|
||||
@ -48,20 +63,24 @@ Here are a few examples of properly translated strings:
|
||||
<li><b>Example #3</b><table><tr><td>• Original:</td><td> </td><td><tt><font style="color:darkred">%n</font> minute(s)</tt></td></tr><tr><td>• Translated (Singular):</td><td> </td><td><tt><font style="color:darkred">%n</font> Minute</tt></td></tr><tr><td>• Translated (Plural):</td><td> </td><td><tt><font style="color:darkred">%n</font> Minuten</tt></td></tr></table>
|
||||
</ul>
|
||||
<br>
|
||||
<!-- ============================= -->
|
||||
<h3>Testing your translation:</h3>
|
||||
<p>LameXP v4.xx needs to be re-built from the sources in order to integrate a new translation or to update one of the "built-in" translations. However there is an easy method to test your translation file <i>without</i> re-building LameXP: Open your current translation (TS) file in the <i>Qt Linguist</i> application and go to "File" ⇒ "Release As...", which allows you to save your translation as a "release" (QM) file. Once saved as a QM file, you can load your translation in LameXP. This is <i>not</i> possible with the TS file. In LameXP, just goto "View" ⇒ "Language" ⇒ "From File..." and choose the QM file that you have saved in Linguist before. Your translation should be in effect immediately. If you notice that your translation needs further modifications, please go back to the TS file for editing (don't try to edit the QM file!), in the <i>Qt Linguist</i> application. Then, for your next test run, create a <i>new</i> QM file from the updated TS file. Also note that, in newer versions of LameXP, you can press <tt>CTRL+F5</tt> to re-load your current QM file (works only in the "Main" window!).</p>
|
||||
<p>LameXP v4.xx needs to be re-built from the sources in order to integrate a new translation or to update one of the "built-in" translations. However there is an easy method to test your translation file <i>without</i> re-building LameXP: Open your current translation (TS) file in the <i>Qt Linguist</i> application and go to "File" ⇒ "Release As...", which allows you to save your translation as a "release" (QM) file. Once saved as a QM file, you can load your translation in LameXP. This is <i>not</i> possible with the TS file. In LameXP, just goto "View" ⇒ "Language" ⇒ "From File..." and choose the QM file that you have saved in Linguist before. Your translation should be in effect immediately. If you notice that your translation needs further modifications, please go back to the TS file for editing (don't try to edit the QM file!), in the <i>Qt Linguist</i> application. Then, for your next test run, create a <i>new</i> QM file from the updated TS file. Also note that, in newer versions of LameXP, you can press <tt>CTRL+F5</tt> to re-load your current QM file (works only in the "Main" window!).</p>
|
||||
<br>
|
||||
<!-- ============================= -->
|
||||
<h3>Submitting your translation:</h3>
|
||||
<p>Once you are done with your translation (i.e. all items and all contexts have a green <font style="color:darkgreen">✔</font> icon), you can submit it, so it can be integrated into the next LameXP release. You can contact me by e-mail:<br><b><a href="mailto:mulder2%20[at]%20gmx%20[dot]%20de">mulder2<font color="dimgray">[at]</font>gmx<font color="dimgray">[dot]</font>de</a></b></p>
|
||||
<p>Please do <i>not</i> submit translations that have any items/context with <font style="color:#AA8B0F">✔</font>, <font style="color:#AA8B0F;font-weight:bold">?</font>, <font style="color:#427D7E;font-weight:bold">?</font> or even <font style="color:darkred;font-weight:bold">!</font> icon left. Also do <i>not</i> submit QM files, do <i>not</i> compress the submitted file (ZIP, RAR, etc) and do <i>not</i> attach a flag icon file. It is perfectly sufficient to submit <i>only</i> the translation (TS) file.</p>
|
||||
<p><b><u>Legal notice:</u></b> By submitting LameXP translations, all translators agree that their work will be incorporated into the LameXP software and, from then on, will be published and redistributed under the terms of the GNU General Public License. If you do <i>not</i> agree, please do <i>not</i> submit!
|
||||
<p><b><i>Legal notice:</i></b><br>By submitting LameXP translations, all translators agree that their work will be incorporated into the LameXP software. All translations will be published and redistributed under the terms of the <i>GNU General Public License</i>. If you do <b>not</b> agree, please do <b>not</b> submit!
|
||||
<p>(Advanced translators can get write-access to the Git repository, so they can keep their translations up-to-date easily. If you need Git access, just drop me a note!)</p>
|
||||
<p style="border-width:2px;border-style:solid;border-color:darkred;margin-top:2em"><font color="darkred"><b>IMPORTANT:</b> Before you start to create a new translation, always make sure you downloaded the <i>latest</i> "Blank.ts" file from the LameXP Git repository. Also before you start editing or updating an <i>existing</i> translation, including translations you have created yourself, make sure you downloaded the <i>latest</i> TS file from the LameXP Git repository. <i>Never</i> do any translations based on an old working copy (TS file) from your local system! The translation files (TS) in the Git repository will be updated/extended continuously, as the development proceeds. We cannot accept translations based on an <i>outdated</i> TS file!</font></p>
|
||||
<p style="border-width:2px;border-style:solid;border-color:darkred;margin-top:2em"><font color="darkred"><b>IMPORTANT:</b> Before you start to create a new translation, <i>always</i> make sure you downloaded the <u>latest</u> "Blank.ts" file from the LameXP Git repository. Also, before you start editing or updating an <i>existing</i> translation, make sure you downloaded the <u>latest</u> TS file from the LameXP Git repository. <u>Never</u> do any translations based on some working copies that you kept on your local system! The translation files (TS) in the Git repository will be updated <i>continuously</i>, as the development proceeds. We can <b>not</b> accept translations based on an <i>outdated</i> TS file!</font></p>
|
||||
<br>
|
||||
<!-- ============================= -->
|
||||
<h3>Personalization:</h3>
|
||||
<p>Usually all translators will be mentioned in the "About..." dialogue of LameXP. If you don't want your (nick)name and/or e-mail address to appear there, please tell us that you whish to stay anonymous!</p>
|
||||
<p>Usually all translators will be mentioned in the "About..." dialogue of LameXP. If you don't want your (nick)name and/or e-mail address to appear there, please tell us that you wish to stay anonymous!</p>
|
||||
<br>
|
||||
<br>
|
||||
Thanks in advance !!!<br><br><img src="http://forum.doom9.org/images/smilies/thanks-t.gif" alt="emoticon">
|
||||
<!-- ============================= -->
|
||||
</body>
|
||||
</html>
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -239,38 +239,6 @@
|
||||
<source>Special thanks to:</source>
|
||||
<translation>Besonderen Dank an:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Doom9's Forum</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Gleitz | German Doom9</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hydrogenaudio Forums</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RareWares</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GitHub</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SourceForge</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt Developer Network</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Marius Hudea</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>UPX - The Ultimate Packer for eXecutables</source>
|
||||
<translation></translation>
|
||||
@ -288,16 +256,8 @@
|
||||
<translation>Valdec aus den AC3Filter Tools - AC3/DTS Decoder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Codecs.com</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>BerliOS Developer</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CodePlex</source>
|
||||
<translation></translation>
|
||||
<source>Official Mirrors:</source>
|
||||
<translation>Offizielle Spiegelserver:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -31,7 +31,7 @@
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message numerus="yes">
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="779"/>
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="801"/>
|
||||
<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="783"/>
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="805"/>
|
||||
<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="787"/>
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="809"/>
|
||||
<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="791"/>
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="813"/>
|
||||
<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="3848"/>
|
||||
<location filename="../../src/Dialog_MainWindow.cpp" line="3906"/>
|
||||
<source>%n Instance(s)</source>
|
||||
<translation>
|
||||
<numerusform>%n Instance</numerusform>
|
||||
|
@ -239,38 +239,6 @@
|
||||
<source>Special thanks to:</source>
|
||||
<translation>Agradecimientos a:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Doom9's Forum</source>
|
||||
<translation>Doom9's Forum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Gleitz | German Doom9</source>
|
||||
<translation>Gleitz | German Doom9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hydrogenaudio Forums</source>
|
||||
<translation>Hydrogenaudio Forums</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RareWares</source>
|
||||
<translation>RareWares</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GitHub</source>
|
||||
<translation>GitHub</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SourceForge</source>
|
||||
<translation>SourceForge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt Developer Network</source>
|
||||
<translation>Qt Developer Network</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Marius Hudea</source>
|
||||
<translation>Marius Hudea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>UPX - The Ultimate Packer for eXecutables</source>
|
||||
<translation>UPX - The Ultimate Packer for eXecutables</translation>
|
||||
@ -288,15 +256,7 @@
|
||||
<translation>Valdec de AC3Filter Tools - Decodificador AC3/DTS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Codecs.com</source>
|
||||
<translation>Codecs.com</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>BerliOS Developer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CodePlex</source>
|
||||
<source>Official Mirrors:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
|
@ -243,38 +243,6 @@
|
||||
<source>Special thanks to:</source>
|
||||
<translation>Grand merci à :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Doom9's Forum</source>
|
||||
<translation>Forum Doom9's</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Gleitz | German Doom9</source>
|
||||
<translation>Gleitz | German Doom9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hydrogenaudio Forums</source>
|
||||
<translation>Forums Hydrogenaudi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RareWares</source>
|
||||
<translation>RareWares</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GitHub</source>
|
||||
<translation>GitHub</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SourceForge</source>
|
||||
<translation>SourceForge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt Developer Network</source>
|
||||
<translation>Qt Developer Network</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Marius Hudea</source>
|
||||
<translation>Marius Hudea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>UPX - The Ultimate Packer for eXecutables</source>
|
||||
<translation>UPX - The Ultimate Packer for eXecutable</translation>
|
||||
@ -292,15 +260,7 @@
|
||||
<translation>Valdec depuis les outils AC3Filter - Décodeur AC3/DTS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Codecs.com</source>
|
||||
<translation>Codecs.com</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>BerliOS Developer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CodePlex</source>
|
||||
<source>Official Mirrors:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@ -2024,15 +1984,15 @@ Ouvrir le dossier récursivement...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Current Encoder: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Encodeur actuel r: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading dropped files or folders, please wait...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Chargement des fichiers ou dossiers déposés, patientez...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>APE</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>APE</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2618,7 +2578,7 @@ Ouvrir le dossier récursivement...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable '%1' requires Windows XP or later.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>'%1' requiert Windows XP ou une version ultérieure.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2751,23 +2711,23 @@ Ouvrir le dossier récursivement...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Initializing, please wait...</source>
|
||||
<translation type="unfinished">Initialisation, patientez...</translation>
|
||||
<translation>Initialisation, patientez...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Discard</source>
|
||||
<translation type="unfinished">Abandonner</translation>
|
||||
<translation>Abandonner</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ignore</source>
|
||||
<translation type="unfinished">Ignorer</translation>
|
||||
<translation>Ignorer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sorry, but only users in the "Administrators" group can install updates.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Désolé, mais seuls les « Administrateurs » peuvent installer les mises à jour.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Please start application from an administrator account and try again!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Veuillez démarrer l'application depuis un compte administrateur, puis réessayez !</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
@ -239,38 +239,6 @@
|
||||
<source>Special thanks to:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Doom9's Forum</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Gleitz | German Doom9</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hydrogenaudio Forums</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RareWares</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GitHub</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SourceForge</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt Developer Network</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Marius Hudea</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>UPX - The Ultimate Packer for eXecutables</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@ -288,15 +256,7 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Codecs.com</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>BerliOS Developer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CodePlex</source>
|
||||
<source>Official Mirrors:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
|
@ -239,38 +239,6 @@
|
||||
<source>Special thanks to:</source>
|
||||
<translation type="unfinished">특별히 감사합니다:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Doom9's Forum</source>
|
||||
<translation type="unfinished">Doom9 포럼</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Gleitz | German Doom9</source>
|
||||
<translation type="unfinished">Gleitz | German Doom9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hydrogenaudio Forums</source>
|
||||
<translation type="unfinished">Hydrogenaudio 포럼</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RareWares</source>
|
||||
<translation type="unfinished">RareWares</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GitHub</source>
|
||||
<translation type="unfinished">GitHub</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SourceForge</source>
|
||||
<translation type="unfinished">SourceForge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt Developer Network</source>
|
||||
<translation type="unfinished">Qt 개발자 네트워크</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Marius Hudea</source>
|
||||
<translation type="unfinished">Marius Hudea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>UPX - The Ultimate Packer for eXecutables</source>
|
||||
<translation type="unfinished">UPX - The Ultimate Packer for eXecutables</translation>
|
||||
@ -289,15 +257,7 @@
|
||||
<translation type="unfinished">AC3Filter 도구의 Valdec - AC3/DTS Decoder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Codecs.com</source>
|
||||
<translation type="unfinished">Codecs.com</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>BerliOS Developer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CodePlex</source>
|
||||
<source>Official Mirrors:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@ -2008,15 +1968,15 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Current Encoder: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">현재 인코더: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading dropped files or folders, please wait...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">파일 또는 폴더 불러오는 중, 잠시만 기다려 주십시오...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>APE</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">APE</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2590,7 +2550,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable '%1' requires Windows XP or later.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">'%1' 실행하려면 Windows XP 또는 상위 버전이 필요합니다.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2608,7 +2568,7 @@
|
||||
<name>SplashScreen</name>
|
||||
<message>
|
||||
<source>LameXP is launching...</source>
|
||||
<translation type="unfinished">LameXP 실행중...</translation>
|
||||
<translation type="unfinished">LameXP 실행 중...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2735,11 +2695,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Sorry, but only users in the "Administrators" group can install updates.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">죄송하지만 관리자 그룹의 사용자들만 업데이트를 설치할 수 있습니다.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Please start application from an administrator account and try again!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">프로그램을 관리자 권한으로 시작한 다음 다시 시도하시기 바랍니다!</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -239,38 +239,6 @@
|
||||
<source>Special thanks to:</source>
|
||||
<translation>特別感謝:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Doom9's Forum</source>
|
||||
<translation>Doom9論壇</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Gleitz | German Doom9</source>
|
||||
<translation>格雷茲 | 德國 Doom9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hydrogenaudio Forums</source>
|
||||
<translation>Hydrogenaudio論壇</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RareWares</source>
|
||||
<translation>RareWares</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GitHub</source>
|
||||
<translation>GitHub</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SourceForge</source>
|
||||
<translation>SourceForge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt Developer Network</source>
|
||||
<translation>Qt的開發者網絡</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Marius Hudea</source>
|
||||
<translation>Marius Hudea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>UPX - The Ultimate Packer for eXecutables</source>
|
||||
<translation>UPX - 終極可執行程序文件壓縮器</translation>
|
||||
@ -288,16 +256,8 @@
|
||||
<translation>Valdec AC3Filter工具 - AC3/DTS解碼器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Codecs.com</source>
|
||||
<translation>Codecs.com</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>BerliOS Developer</source>
|
||||
<translation>BerliOS Developer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CodePlex</source>
|
||||
<translation>CodePlex</translation>
|
||||
<source>Official Mirrors:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -240,38 +240,6 @@
|
||||
<source>Special thanks to:</source>
|
||||
<translation>Окрема подяка:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Doom9's Forum</source>
|
||||
<translation>Форум Doom9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Gleitz | German Doom9</source>
|
||||
<translation>Gleitz | Німецький Doom9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hydrogenaudio Forums</source>
|
||||
<translation>Форуми Hydrogenaudio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RareWares</source>
|
||||
<translation>RareWares</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GitHub</source>
|
||||
<translation>GitHub</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SourceForge</source>
|
||||
<translation>SourceForge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt Developer Network</source>
|
||||
<translation>Мережа розробників Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Marius Hudea</source>
|
||||
<translation>Marius Hudea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>UPX - The Ultimate Packer for eXecutables</source>
|
||||
<translation>UPX - The Ultimate Packer for eXecutables</translation>
|
||||
@ -284,21 +252,13 @@
|
||||
<source>The ALAC reference implementation by Apple is available under the Apache license.</source>
|
||||
<translation>Оригінальна реалізація ALAC від Apple доступна під ліцензією Apache.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Codecs.com</source>
|
||||
<translation>Codecs.com</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Valdec from AC3Filter Tools - AC3/DTS Decoder</source>
|
||||
<translation>Valdec зі складу AC3Filter Tools - декодер AC3/DTS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>BerliOS Developer</source>
|
||||
<translation>BerliOS Developer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CodePlex</source>
|
||||
<translation>CodePlex</translation>
|
||||
<source>Official Mirrors:</source>
|
||||
<translation>Офіційні дзеркала:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -239,38 +239,6 @@
|
||||
<source>Special thanks to:</source>
|
||||
<translation>特别感谢:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Doom9's Forum</source>
|
||||
<translation>Doom9论坛</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Gleitz | German Doom9</source>
|
||||
<translation>德国 | 格雷兹 Doom9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hydrogenaudio Forums</source>
|
||||
<translation>Hydrogenaudio论坛</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RareWares</source>
|
||||
<translation>RareWares</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GitHub</source>
|
||||
<translation>GitHub</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SourceForge</source>
|
||||
<translation>SourceForge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt Developer Network</source>
|
||||
<translation>Qt的开发者网络</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Marius Hudea</source>
|
||||
<translation>Marius Hudea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>UPX - The Ultimate Packer for eXecutables</source>
|
||||
<translation>UPX - 终极可执行程序文件压缩器</translation>
|
||||
@ -288,16 +256,8 @@
|
||||
<translation>AC3Filter工具 Valdec - AC3/DTS 解码器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Codecs.com</source>
|
||||
<translation>Codecs.com</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>BerliOS Developer</source>
|
||||
<translation>BerliOS开发者平台</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CodePlex</source>
|
||||
<translation>CodePlex</translation>
|
||||
<source>Official Mirrors:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -50,6 +50,7 @@
|
||||
<file>icons/drive_link.png</file>
|
||||
<file>icons/drive_network.png</file>
|
||||
<file>icons/exclamation.png</file>
|
||||
<file>icons/exclamation_small.png</file>
|
||||
<file>icons/error.png</file>
|
||||
<file>icons/error_big.png</file>
|
||||
<file>icons/feed.png</file>
|
||||
@ -97,6 +98,7 @@
|
||||
<file>icons/script.png</file>
|
||||
<file>icons/script_edit.png</file>
|
||||
<file>icons/script_go.png</file>
|
||||
<file>icons/server_database.png</file>
|
||||
<file>icons/server_error.png</file>
|
||||
<file>icons/shield_admin.png</file>
|
||||
<file>icons/shield_blue.png</file>
|
||||
|
BIN
res/icons/exclamation_small.png
Normal file
BIN
res/icons/exclamation_small.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 415 B |
Binary file not shown.
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 86 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
12
src/Config.h
12
src/Config.h
@ -31,12 +31,12 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define VER_LAMEXP_MAJOR 4
|
||||
#define VER_LAMEXP_MINOR_HI 0
|
||||
#define VER_LAMEXP_MINOR_LO 9
|
||||
#define VER_LAMEXP_MINOR_HI 1
|
||||
#define VER_LAMEXP_MINOR_LO 0
|
||||
#define VER_LAMEXP_TYPE RC
|
||||
#define VER_LAMEXP_PATCH 1
|
||||
#define VER_LAMEXP_BUILD 1519
|
||||
#define VER_LAMEXP_CONFG 1348
|
||||
#define VER_LAMEXP_BUILD 1549
|
||||
#define VER_LAMEXP_CONFG 1528
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// LameXP Build Options
|
||||
@ -51,8 +51,8 @@
|
||||
|
||||
#define VER_LAMEXP_TOOL_NEROAAC 1540
|
||||
#define VER_LAMEXP_TOOL_FHGAACENC 20120806
|
||||
#define VER_LAMEXP_TOOL_QAAC 139
|
||||
#define VER_LAMEXP_TOOL_COREAUDIO 7710
|
||||
#define VER_LAMEXP_TOOL_QAAC 233
|
||||
#define VER_LAMEXP_TOOL_COREAUDIO 7900
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Helper macros (aka: having fun with the C pre-processor)
|
||||
|
@ -84,6 +84,46 @@ g_lamexp_translators[] =
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
//Special Thanks
|
||||
static const struct
|
||||
{
|
||||
char* pcName;
|
||||
char *pcAddress;
|
||||
}
|
||||
g_lamexp_specialThanks[] =
|
||||
{
|
||||
{ "Doom9's Forum", "http://forum.doom9.org/" },
|
||||
{ "Gleitz | German Doom9", "http://forum.gleitz.info/" },
|
||||
{ "Hydrogenaudio Forums", "http://www.hydrogenaudio.org/" },
|
||||
{ "RareWares", "http://www.rarewares.org/" },
|
||||
{ "GitHub", "http://github.com/" },
|
||||
{ "SourceForge", "http://sourceforge.net/" },
|
||||
{ "Qt Developer Network", "http://qt-project.org/" },
|
||||
{ "BerliOS Developer", "http://developer.berlios.de/" },
|
||||
{ "CodePlex", "http://www.codeplex.com/" },
|
||||
{ "Marius Hudea", "http://savedonthe.net/" },
|
||||
{ "Codecs.com", "http://www.codecs.com/" },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
//Mirrors
|
||||
static const struct
|
||||
{
|
||||
char* pcName;
|
||||
char *pcAddress;
|
||||
}
|
||||
g_lamexp_mirrors[] =
|
||||
{
|
||||
{ "GitHub.com", "https://github.com/lordmulder/LameXP" },
|
||||
{ "SourceForge.net", "http://sourceforge.net/p/lamexp/code/" },
|
||||
{ "Bitbucket.org", "https://bitbucket.org/lord_mulder/lamexp" },
|
||||
{ "Gitorious.org", "https://gitorious.org/lamexp" },
|
||||
{ "Codeplex.com", "https://lamexp.codeplex.com/SourceControl/latest" },
|
||||
{ "Berlios.de", "http://git.berlios.de/cgi-bin/gitweb.cgi?p=lamexp" },
|
||||
{ "Assembla.com", "https://www.assembla.com/spaces/lamexp/" },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
// Constructor
|
||||
////////////////////////////////////////////////////////////
|
||||
@ -575,7 +615,7 @@ void AboutDialog::initContributorsTab(void)
|
||||
QString icon = QString("<img src=\":/icons/%1.png\">").arg("user_gray");
|
||||
contributorsAboutText += QString("<tr><td valign=\"middle\">%1</td><td>%2</td>").arg(icon, spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td>").arg(tr("Project Leader"), spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td><a href=\"mailto:%2\"><%3></a></td></tr>").arg("LoRd_MuldeR", spaces, "MuldeR2@GMX.de");
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td><a href=\"mailto:%3\"><%3></a></td></tr>").arg("LoRd_MuldeR", spaces, "MuldeR2@GMX.de");
|
||||
contributorsAboutText += QString("<tr><td colspan=\"7\"><b> </b></td></tr>");
|
||||
|
||||
contributorsAboutText += QString("<tr><td colspan=\"7\"><b>%1</b>%2</td></tr>").arg(tr("Translators:"), extraVSpace);
|
||||
@ -584,35 +624,28 @@ void AboutDialog::initContributorsTab(void)
|
||||
QString flagIcon = (strlen(g_lamexp_translators[i].pcFlag) > 0) ? QString("<img src=\":/flags/%1.png\">").arg(g_lamexp_translators[i].pcFlag) : QString();
|
||||
contributorsAboutText += QString("<tr><td valign=\"middle\">%1</td><td>%2</td>").arg(flagIcon, spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td>").arg(WCHAR2QSTR(g_lamexp_translators[i].pcLanguage), spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td><a href=\"mailto:%2\"><%3></a></td></tr>").arg(WCHAR2QSTR(g_lamexp_translators[i].pcName), spaces, g_lamexp_translators[i].pcMail);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td><a href=\"mailto:%3\"><%3></a></td></tr>").arg(WCHAR2QSTR(g_lamexp_translators[i].pcName), spaces, g_lamexp_translators[i].pcMail);
|
||||
}
|
||||
|
||||
contributorsAboutText += QString("<tr><td colspan=\"7\"><b> </b></td></tr>");
|
||||
contributorsAboutText += QString("<tr><td colspan=\"7\"><b>%1</b>%2</td></tr>").arg(tr("Special thanks to:"), extraVSpace);
|
||||
|
||||
QString webIcon = QString("<img src=\":/icons/%1.png\">").arg("world");
|
||||
contributorsAboutText += QString("<tr><td valign=\"middle\">%1</td><td>%2</td>").arg(webIcon, spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td valign=\"middle\" colspan=\"3\"><a href=\"%3\">%3</td></tr>").arg(tr("Doom9's Forum"), spaces, "http://forum.doom9.org/");
|
||||
contributorsAboutText += QString("<tr><td valign=\"middle\">%1</td><td>%2</td>").arg(webIcon, spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td valign=\"middle\" colspan=\"3\"><a href=\"%3\">%3</td></tr>").arg(tr("Gleitz | German Doom9"), spaces, "http://forum.gleitz.info/");
|
||||
contributorsAboutText += QString("<tr><td valign=\"middle\">%1</td><td>%2</td>").arg(webIcon, spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td valign=\"middle\" colspan=\"3\"><a href=\"%3\">%3</td></tr>").arg(tr("Hydrogenaudio Forums"), spaces, "http://www.hydrogenaudio.org/");
|
||||
contributorsAboutText += QString("<tr><td valign=\"middle\">%1</td><td>%2</td>").arg(webIcon, spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td valign=\"middle\" colspan=\"3\"><a href=\"%3\">%3</td></tr>").arg(tr("RareWares"), spaces, "http://www.rarewares.org/");
|
||||
contributorsAboutText += QString("<tr><td valign=\"middle\">%1</td><td>%2</td>").arg(webIcon, spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td valign=\"middle\" colspan=\"3\"><a href=\"%3\">%3</td></tr>").arg(tr("GitHub"), spaces, "http://github.com/");
|
||||
contributorsAboutText += QString("<tr><td valign=\"middle\">%1</td><td>%2</td>").arg(webIcon, spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td valign=\"middle\" colspan=\"3\"><a href=\"%3\">%3</td></tr>").arg(tr("SourceForge"), spaces, "http://sourceforge.net/");
|
||||
contributorsAboutText += QString("<tr><td valign=\"middle\">%1</td><td>%2</td>").arg(webIcon, spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td valign=\"middle\" colspan=\"3\"><a href=\"%3\">%3</td></tr>").arg(tr("Qt Developer Network"), spaces, "http://qt-project.org/");
|
||||
contributorsAboutText += QString("<tr><td valign=\"middle\">%1</td><td>%2</td>").arg(webIcon, spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td valign=\"middle\" colspan=\"3\"><a href=\"%3\">%3</td></tr>").arg(tr("BerliOS Developer"), spaces, "http://developer.berlios.de/");
|
||||
contributorsAboutText += QString("<tr><td valign=\"middle\">%1</td><td>%2</td>").arg(webIcon, spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td valign=\"middle\" colspan=\"3\"><a href=\"%3\">%3</td></tr>").arg(tr("CodePlex"), spaces, "http://www.codeplex.com/");
|
||||
contributorsAboutText += QString("<tr><td valign=\"middle\">%1</td><td>%2</td>").arg(webIcon, spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td valign=\"middle\" colspan=\"3\"><a href=\"%3\">%3</td></tr>").arg(tr("Marius Hudea"), spaces, "http://savedonthe.net/");
|
||||
contributorsAboutText += QString("<tr><td valign=\"middle\">%1</td><td>%2</td>").arg(webIcon, spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td valign=\"middle\" colspan=\"3\"><a href=\"%3\">%3</td></tr>").arg(tr("Codecs.com"), spaces, "http://www.codecs.com/");
|
||||
for(int i = 0; g_lamexp_specialThanks[i].pcName; i++)
|
||||
{
|
||||
contributorsAboutText += QString("<tr><td valign=\"middle\">%1</td><td>%2</td>").arg(webIcon, spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td valign=\"middle\" colspan=\"3\"><a href=\"%3\">%3</td></tr>").arg(QString::fromLatin1(g_lamexp_specialThanks[i].pcName), spaces, QString::fromLatin1(g_lamexp_specialThanks[i].pcAddress));
|
||||
}
|
||||
|
||||
contributorsAboutText += QString("<tr><td colspan=\"7\"><b> </b></td></tr>");
|
||||
contributorsAboutText += QString("<tr><td colspan=\"7\"><b>%1</b>%2</td></tr>").arg(tr("Official Mirrors:"), extraVSpace);
|
||||
|
||||
QString serverIcon = QString("<img src=\":/icons/%1.png\">").arg("server_database");
|
||||
for(int i = 0; g_lamexp_mirrors[i].pcName; i++)
|
||||
{
|
||||
contributorsAboutText += QString("<tr><td valign=\"middle\">%1</td><td>%2</td>").arg(serverIcon, spaces);
|
||||
contributorsAboutText += QString("<td valign=\"middle\">%1</td><td>%2</td><td valign=\"middle\" colspan=\"3\"><a href=\"%3\">%3</td></tr>").arg(QString::fromLatin1(g_lamexp_mirrors[i].pcName), spaces, QString::fromLatin1(g_lamexp_mirrors[i].pcAddress));
|
||||
}
|
||||
|
||||
contributorsAboutText += "</table><br><br><br>";
|
||||
contributorsAboutText += QString("<i>%1</i><br>").arg(NOBR(tr("If you are willing to contribute a LameXP translation, feel free to contact us!")));
|
||||
|
@ -115,7 +115,7 @@ while(0)
|
||||
|
||||
#define ABORT_IF_BUSY do \
|
||||
{ \
|
||||
if(BANNER_VISIBLE || m_delayedFileTimer->isActive()) \
|
||||
if(BANNER_VISIBLE || m_delayedFileTimer->isActive() || (QApplication::activeModalWidget() != NULL)) \
|
||||
{ \
|
||||
lamexp_beep(lamexp_beep_warning); \
|
||||
return; \
|
||||
@ -198,6 +198,15 @@ while(0)
|
||||
} \
|
||||
while(0)
|
||||
|
||||
#define SHOW_CORNER_WIDGET(FLAG) do \
|
||||
{ \
|
||||
if(QWidget *cornerWidget = ui->menubar->cornerWidget()) \
|
||||
{ \
|
||||
cornerWidget->setVisible((FLAG)); \
|
||||
} \
|
||||
} \
|
||||
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()))
|
||||
@ -238,7 +247,7 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel_MetaInfo *me
|
||||
//Enabled main buttons
|
||||
connect(ui->buttonAbout, SIGNAL(clicked()), this, SLOT(aboutButtonClicked()));
|
||||
connect(ui->buttonStart, SIGNAL(clicked()), this, SLOT(encodeButtonClicked()));
|
||||
connect(ui->buttonQuit, SIGNAL(clicked()), this, SLOT(closeButtonClicked()));
|
||||
connect(ui->buttonQuit, SIGNAL(clicked()), this, SLOT(closeButtonClicked()));
|
||||
|
||||
//Setup tab widget
|
||||
ui->tabWidget->setCurrentIndex(0);
|
||||
@ -247,6 +256,17 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel_MetaInfo *me
|
||||
//Add system menu
|
||||
lamexp_append_sysmenu(this, IDM_ABOUTBOX, "About...");
|
||||
|
||||
//Setup corner widget
|
||||
QLabel *cornerWidget = new QLabel(ui->menubar);
|
||||
m_evenFilterCornerWidget = new CustomEventFilter;
|
||||
cornerWidget->setText("N/A");
|
||||
cornerWidget->setFixedHeight(ui->menubar->height());
|
||||
cornerWidget->setCursor(QCursor(Qt::PointingHandCursor));
|
||||
cornerWidget->hide();
|
||||
cornerWidget->installEventFilter(m_evenFilterCornerWidget);
|
||||
connect(m_evenFilterCornerWidget, SIGNAL(eventOccurred(QWidget*, QEvent*)), this, SLOT(cornerWidgetEventOccurred(QWidget*, QEvent*)));
|
||||
ui->menubar->setCornerWidget(cornerWidget);
|
||||
|
||||
//--------------------------------
|
||||
// Setup "Source" tab
|
||||
//--------------------------------
|
||||
@ -268,23 +288,24 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel_MetaInfo *me
|
||||
m_exportCsvContextAction = m_sourceFilesContextMenu->addAction(QIcon(":/icons/table_save.png"), "N/A");
|
||||
m_importCsvContextAction = m_sourceFilesContextMenu->addAction(QIcon(":/icons/folder_table.png"), "N/A");
|
||||
SET_FONT_BOLD(m_showDetailsContextAction, true);
|
||||
connect(ui->buttonAddFiles, SIGNAL(clicked()), this, SLOT(addFilesButtonClicked()));
|
||||
connect(ui->buttonRemoveFile, SIGNAL(clicked()), this, SLOT(removeFileButtonClicked()));
|
||||
connect(ui->buttonClearFiles, SIGNAL(clicked()), this, SLOT(clearFilesButtonClicked()));
|
||||
connect(ui->buttonFileUp, SIGNAL(clicked()), this, SLOT(fileUpButtonClicked()));
|
||||
connect(ui->buttonFileDown, SIGNAL(clicked()), this, SLOT(fileDownButtonClicked()));
|
||||
connect(ui->buttonShowDetails, SIGNAL(clicked()), this, SLOT(showDetailsButtonClicked()));
|
||||
connect(m_fileListModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(sourceModelChanged()));
|
||||
connect(m_fileListModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(sourceModelChanged()));
|
||||
connect(m_fileListModel, SIGNAL(modelReset()), this, SLOT(sourceModelChanged()));
|
||||
connect(ui->sourceFileView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(sourceFilesContextMenu(QPoint)));
|
||||
connect(ui->sourceFileView->verticalScrollBar(), SIGNAL(sliderMoved(int)), this, SLOT(sourceFilesScrollbarMoved(int)));
|
||||
connect(ui->sourceFileView->verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(sourceFilesScrollbarMoved(int)));
|
||||
connect(m_showDetailsContextAction, SIGNAL(triggered(bool)), this, SLOT(showDetailsButtonClicked()));
|
||||
connect(m_previewContextAction, SIGNAL(triggered(bool)), this, SLOT(previewContextActionTriggered()));
|
||||
connect(m_findFileContextAction, SIGNAL(triggered(bool)), this, SLOT(findFileContextActionTriggered()));
|
||||
connect(m_exportCsvContextAction, SIGNAL(triggered(bool)), this, SLOT(exportCsvContextActionTriggered()));
|
||||
connect(m_importCsvContextAction, SIGNAL(triggered(bool)), this, SLOT(importCsvContextActionTriggered()));
|
||||
|
||||
connect(ui->buttonAddFiles, SIGNAL(clicked()), this, SLOT(addFilesButtonClicked()));
|
||||
connect(ui->buttonRemoveFile, SIGNAL(clicked()), this, SLOT(removeFileButtonClicked()));
|
||||
connect(ui->buttonClearFiles, SIGNAL(clicked()), this, SLOT(clearFilesButtonClicked()));
|
||||
connect(ui->buttonFileUp, SIGNAL(clicked()), this, SLOT(fileUpButtonClicked()));
|
||||
connect(ui->buttonFileDown, SIGNAL(clicked()), this, SLOT(fileDownButtonClicked()));
|
||||
connect(ui->buttonShowDetails, SIGNAL(clicked()), this, SLOT(showDetailsButtonClicked()));
|
||||
connect(m_fileListModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(sourceModelChanged()));
|
||||
connect(m_fileListModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(sourceModelChanged()));
|
||||
connect(m_fileListModel, SIGNAL(modelReset()), this, SLOT(sourceModelChanged()));
|
||||
connect(ui->sourceFileView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(sourceFilesContextMenu(QPoint)));
|
||||
connect(ui->sourceFileView->verticalScrollBar(), SIGNAL(sliderMoved(int)), this, SLOT(sourceFilesScrollbarMoved(int)));
|
||||
connect(ui->sourceFileView->verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(sourceFilesScrollbarMoved(int)));
|
||||
connect(m_showDetailsContextAction, SIGNAL(triggered(bool)), this, SLOT(showDetailsButtonClicked()));
|
||||
connect(m_previewContextAction, SIGNAL(triggered(bool)), this, SLOT(previewContextActionTriggered()));
|
||||
connect(m_findFileContextAction, SIGNAL(triggered(bool)), this, SLOT(findFileContextActionTriggered()));
|
||||
connect(m_exportCsvContextAction, SIGNAL(triggered(bool)), this, SLOT(exportCsvContextActionTriggered()));
|
||||
connect(m_importCsvContextAction, SIGNAL(triggered(bool)), this, SLOT(importCsvContextActionTriggered()));
|
||||
|
||||
//--------------------------------
|
||||
// Setup "Output" tab
|
||||
@ -714,6 +735,7 @@ MainWindow::~MainWindow(void)
|
||||
LAMEXP_DELETE(m_outputFolderFavoritesMenu);
|
||||
LAMEXP_DELETE(m_outputFolderContextMenu);
|
||||
LAMEXP_DELETE(m_dropBox);
|
||||
LAMEXP_DELETE(m_evenFilterCornerWidget);
|
||||
LAMEXP_DELETE(m_evenFilterCustumParamsHelp);
|
||||
LAMEXP_DELETE(m_evenFilterOutputFolderMouse);
|
||||
LAMEXP_DELETE(m_evenFilterOutputFolderView);
|
||||
@ -864,6 +886,7 @@ bool MainWindow::checkForUpdates(void)
|
||||
|
||||
if(updateDialog->getSuccess())
|
||||
{
|
||||
SHOW_CORNER_WIDGET(false);
|
||||
m_settings->autoUpdateLastCheck(QDate::currentDate().toString(Qt::ISODate));
|
||||
bReadyToInstall = updateDialog->updateReadyToInstall();
|
||||
}
|
||||
@ -1005,78 +1028,93 @@ void MainWindow::showEvent(QShowEvent *event)
|
||||
*/
|
||||
void MainWindow::changeEvent(QEvent *e)
|
||||
{
|
||||
if(e->type() == QEvent::LanguageChange)
|
||||
QMainWindow::changeEvent(e);
|
||||
if(e->type() != QEvent::LanguageChange)
|
||||
{
|
||||
/*qWarning("\nMainWindow::changeEvent()\n");*/
|
||||
|
||||
int comboBoxIndex[8];
|
||||
|
||||
//Backup combobox indices, as retranslateUi() resets
|
||||
comboBoxIndex[0] = ui->comboBoxMP3ChannelMode->currentIndex();
|
||||
comboBoxIndex[1] = ui->comboBoxSamplingRate->currentIndex();
|
||||
comboBoxIndex[2] = ui->comboBoxAACProfile->currentIndex();
|
||||
comboBoxIndex[3] = ui->comboBoxAftenCodingMode->currentIndex();
|
||||
comboBoxIndex[4] = ui->comboBoxAftenDRCMode->currentIndex();
|
||||
comboBoxIndex[5] = ui->comboBoxNormalizationMode->currentIndex();
|
||||
comboBoxIndex[6] = 0; //comboBoxOpusOptimize->currentIndex();
|
||||
comboBoxIndex[7] = ui->comboBoxOpusFramesize->currentIndex();
|
||||
|
||||
//Re-translate from UIC
|
||||
ui->retranslateUi(this);
|
||||
|
||||
//Restore combobox indices
|
||||
ui->comboBoxMP3ChannelMode->setCurrentIndex(comboBoxIndex[0]);
|
||||
ui->comboBoxSamplingRate->setCurrentIndex(comboBoxIndex[1]);
|
||||
ui->comboBoxAACProfile->setCurrentIndex(comboBoxIndex[2]);
|
||||
ui->comboBoxAftenCodingMode->setCurrentIndex(comboBoxIndex[3]);
|
||||
ui->comboBoxAftenDRCMode->setCurrentIndex(comboBoxIndex[4]);
|
||||
ui->comboBoxNormalizationMode->setCurrentIndex(comboBoxIndex[5]);
|
||||
//comboBoxOpusOptimize->setCurrentIndex(comboBoxIndex[6]);
|
||||
ui->comboBoxOpusFramesize->setCurrentIndex(comboBoxIndex[7]);
|
||||
|
||||
//Update the window title
|
||||
if(LAMEXP_DEBUG)
|
||||
{
|
||||
setWindowTitle(QString("%1 [!!! DEBUG BUILD !!!]").arg(windowTitle()));
|
||||
}
|
||||
else if(lamexp_version_demo())
|
||||
{
|
||||
setWindowTitle(QString("%1 [%2]").arg(windowTitle(), tr("DEMO VERSION")));
|
||||
}
|
||||
|
||||
//Manually re-translate widgets that UIC doesn't handle
|
||||
m_outputFolderNoteBox->setText(tr("Initializing directory outline, please be patient..."));
|
||||
m_dropNoteLabel->setText(QString("<br><img src=\":/images/DropZone.png\"><br><br>%1").arg(tr("You can drop in audio files here!")));
|
||||
m_showDetailsContextAction->setText(tr("Show Details"));
|
||||
m_previewContextAction->setText(tr("Open File in External Application"));
|
||||
m_findFileContextAction->setText(tr("Browse File Location"));
|
||||
m_showFolderContextAction->setText(tr("Browse Selected Folder"));
|
||||
m_refreshFolderContextAction->setText(tr("Refresh Directory Outline"));
|
||||
m_goUpFolderContextAction->setText(tr("Go To Parent Directory"));
|
||||
m_addFavoriteFolderAction->setText(tr("Bookmark Current Output Folder"));
|
||||
m_exportCsvContextAction->setText(tr("Export Meta Tags to CSV File"));
|
||||
m_importCsvContextAction->setText(tr("Import Meta Tags from CSV File"));
|
||||
|
||||
//Force GUI update
|
||||
m_metaInfoModel->clearData();
|
||||
m_metaInfoModel->setData(m_metaInfoModel->index(4, 1), m_settings->metaInfoPosition());
|
||||
updateEncoder(m_settings->compressionEncoder());
|
||||
updateLameAlgoQuality(ui->sliderLameAlgoQuality->value());
|
||||
updateMaximumInstances(ui->sliderMaxInstances->value());
|
||||
renameOutputPatternChanged(ui->lineEditRenamePattern->text(), true);
|
||||
|
||||
//Re-install shell integration
|
||||
if(m_settings->shellIntegrationEnabled())
|
||||
{
|
||||
ShellIntegration::install();
|
||||
}
|
||||
|
||||
//Translate system menu
|
||||
lamexp_update_sysmenu(this, IDM_ABOUTBOX, ui->buttonAbout->text());
|
||||
|
||||
//Force resize, if needed
|
||||
tabPageChanged(ui->tabWidget->currentIndex(), true);
|
||||
return;
|
||||
}
|
||||
|
||||
int comboBoxIndex[8];
|
||||
|
||||
//Backup combobox indices, as retranslateUi() resets
|
||||
comboBoxIndex[0] = ui->comboBoxMP3ChannelMode->currentIndex();
|
||||
comboBoxIndex[1] = ui->comboBoxSamplingRate->currentIndex();
|
||||
comboBoxIndex[2] = ui->comboBoxAACProfile->currentIndex();
|
||||
comboBoxIndex[3] = ui->comboBoxAftenCodingMode->currentIndex();
|
||||
comboBoxIndex[4] = ui->comboBoxAftenDRCMode->currentIndex();
|
||||
comboBoxIndex[5] = ui->comboBoxNormalizationMode->currentIndex();
|
||||
comboBoxIndex[6] = 0; //comboBoxOpusOptimize->currentIndex();
|
||||
comboBoxIndex[7] = ui->comboBoxOpusFramesize->currentIndex();
|
||||
|
||||
//Re-translate from UIC
|
||||
ui->retranslateUi(this);
|
||||
|
||||
//Restore combobox indices
|
||||
ui->comboBoxMP3ChannelMode->setCurrentIndex(comboBoxIndex[0]);
|
||||
ui->comboBoxSamplingRate->setCurrentIndex(comboBoxIndex[1]);
|
||||
ui->comboBoxAACProfile->setCurrentIndex(comboBoxIndex[2]);
|
||||
ui->comboBoxAftenCodingMode->setCurrentIndex(comboBoxIndex[3]);
|
||||
ui->comboBoxAftenDRCMode->setCurrentIndex(comboBoxIndex[4]);
|
||||
ui->comboBoxNormalizationMode->setCurrentIndex(comboBoxIndex[5]);
|
||||
//comboBoxOpusOptimize->setCurrentIndex(comboBoxIndex[6]);
|
||||
ui->comboBoxOpusFramesize->setCurrentIndex(comboBoxIndex[7]);
|
||||
|
||||
//Update the window title
|
||||
if(LAMEXP_DEBUG)
|
||||
{
|
||||
setWindowTitle(QString("%1 [!!! DEBUG BUILD !!!]").arg(windowTitle()));
|
||||
}
|
||||
else if(lamexp_version_demo())
|
||||
{
|
||||
setWindowTitle(QString("%1 [%2]").arg(windowTitle(), tr("DEMO VERSION")));
|
||||
}
|
||||
|
||||
//Manually re-translate widgets that UIC doesn't handle
|
||||
m_outputFolderNoteBox->setText(tr("Initializing directory outline, please be patient..."));
|
||||
m_dropNoteLabel->setText(QString("<br><img src=\":/images/DropZone.png\"><br><br>%1").arg(tr("You can drop in audio files here!")));
|
||||
if(QLabel *cornerWidget = dynamic_cast<QLabel*>(ui->menubar->cornerWidget()))
|
||||
{
|
||||
cornerWidget->setText(QString("<nobr><img src=\":/icons/exclamation_small.png\"> <b style=\"color:darkred\">%1</b> </nobr>").arg(tr("Check for Updates")));
|
||||
}
|
||||
m_showDetailsContextAction->setText(tr("Show Details"));
|
||||
m_previewContextAction->setText(tr("Open File in External Application"));
|
||||
m_findFileContextAction->setText(tr("Browse File Location"));
|
||||
m_showFolderContextAction->setText(tr("Browse Selected Folder"));
|
||||
m_refreshFolderContextAction->setText(tr("Refresh Directory Outline"));
|
||||
m_goUpFolderContextAction->setText(tr("Go To Parent Directory"));
|
||||
m_addFavoriteFolderAction->setText(tr("Bookmark Current Output Folder"));
|
||||
m_exportCsvContextAction->setText(tr("Export Meta Tags to CSV File"));
|
||||
m_importCsvContextAction->setText(tr("Import Meta Tags from CSV File"));
|
||||
|
||||
//Force GUI update
|
||||
m_metaInfoModel->clearData();
|
||||
m_metaInfoModel->setData(m_metaInfoModel->index(4, 1), m_settings->metaInfoPosition());
|
||||
updateEncoder(m_settings->compressionEncoder());
|
||||
updateLameAlgoQuality(ui->sliderLameAlgoQuality->value());
|
||||
updateMaximumInstances(ui->sliderMaxInstances->value());
|
||||
renameOutputPatternChanged(ui->lineEditRenamePattern->text(), true);
|
||||
|
||||
//Re-install shell integration
|
||||
if(m_settings->shellIntegrationEnabled())
|
||||
{
|
||||
ShellIntegration::install();
|
||||
}
|
||||
|
||||
//Translate system menu
|
||||
lamexp_update_sysmenu(this, IDM_ABOUTBOX, ui->buttonAbout->text());
|
||||
|
||||
//Force resize event
|
||||
QApplication::postEvent(this, new QResizeEvent(this->size(), QSize()));
|
||||
for(QObjectList::ConstIterator iter = this->children().constBegin(); iter != this->children().constEnd(); iter++)
|
||||
{
|
||||
if(QWidget *child = dynamic_cast<QWidget*>(*iter))
|
||||
{
|
||||
QApplication::postEvent(child, new QResizeEvent(child->size(), QSize()));
|
||||
}
|
||||
}
|
||||
|
||||
//Force tabe page change
|
||||
tabPageChanged(ui->tabWidget->currentIndex(), true);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1135,7 +1173,7 @@ void MainWindow::resizeEvent(QResizeEvent *event)
|
||||
m_dropNoteLabel->setGeometry(port->geometry());
|
||||
}
|
||||
|
||||
if (QWidget *port = ui->outputFolderView->viewport())
|
||||
if(QWidget *port = ui->outputFolderView->viewport())
|
||||
{
|
||||
m_outputFolderNoteBox->setGeometry(16, (port->height() - 64) / 2, port->width() - 32, 64);
|
||||
}
|
||||
@ -1331,6 +1369,7 @@ void MainWindow::windowShown(void)
|
||||
if(lamexp_current_date_safe() >= lamexp_version_date().addYears(1))
|
||||
{
|
||||
qWarning("Binary is more than a year old, time to update!");
|
||||
SHOW_CORNER_WIDGET(true);
|
||||
int ret = QMessageBox::warning(this, tr("Urgent Update"), NOBR(tr("Your version of LameXP is more than a year old. Time for an update!")), tr("Check for Updates"), tr("Exit Program"), tr("Ignore"));
|
||||
switch(ret)
|
||||
{
|
||||
@ -1351,17 +1390,21 @@ void MainWindow::windowShown(void)
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(m_settings->autoUpdateEnabled())
|
||||
else
|
||||
{
|
||||
QDate lastUpdateCheck = QDate::fromString(m_settings->autoUpdateLastCheck(), Qt::ISODate);
|
||||
if(!firstRun && (!lastUpdateCheck.isValid() || lamexp_current_date_safe() >= lastUpdateCheck.addDays(14)))
|
||||
if((!firstRun) && ((!lastUpdateCheck.isValid()) || (lamexp_current_date_safe() >= lastUpdateCheck.addDays(14))))
|
||||
{
|
||||
if(QMessageBox::information(this, tr("Update Reminder"), NOBR(lastUpdateCheck.isValid() ? tr("Your last update check was more than 14 days ago. Check for updates now?") : tr("Your did not check for LameXP updates yet. Check for updates now?")), tr("Check for Updates"), tr("Postpone")) == 0)
|
||||
SHOW_CORNER_WIDGET(true);
|
||||
if(m_settings->autoUpdateEnabled())
|
||||
{
|
||||
if(checkForUpdates())
|
||||
if(QMessageBox::information(this, tr("Update Reminder"), NOBR(lastUpdateCheck.isValid() ? tr("Your last update check was more than 14 days ago. Check for updates now?") : tr("Your did not check for LameXP updates yet. Check for updates now?")), tr("Check for Updates"), tr("Postpone")) == 0)
|
||||
{
|
||||
QApplication::quit();
|
||||
return;
|
||||
if(checkForUpdates())
|
||||
{
|
||||
QApplication::quit();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1727,6 +1770,21 @@ void MainWindow::tabActionActivated(QAction *action)
|
||||
}
|
||||
}
|
||||
|
||||
// =========================================================
|
||||
// Menubar slots
|
||||
// =========================================================
|
||||
|
||||
/*
|
||||
* Handle corner widget Event
|
||||
*/
|
||||
void MainWindow::cornerWidgetEventOccurred(QWidget *sender, QEvent *event)
|
||||
{
|
||||
if(event->type() == QEvent::MouseButtonPress)
|
||||
{
|
||||
QTimer::singleShot(0, this, SLOT(checkUpdatesActionActivated()));
|
||||
}
|
||||
}
|
||||
|
||||
// =========================================================
|
||||
// View menu slots
|
||||
// =========================================================
|
||||
|
@ -85,6 +85,7 @@ private slots:
|
||||
void clearMetaButtonClicked(void);
|
||||
void closeButtonClicked(void);
|
||||
void compressionTabEventOccurred(QWidget*, QEvent*);
|
||||
void cornerWidgetEventOccurred(QWidget *sender, QEvent *event);
|
||||
void customParamsChanged(void);
|
||||
void customParamsHelpRequested(QWidget *obj, QEvent *event);
|
||||
void customTempFolderChanged(const QString &text);
|
||||
@ -231,6 +232,7 @@ private:
|
||||
QButtonGroup *m_modeButtonGroup;
|
||||
QButtonGroup *m_overwriteButtonGroup;
|
||||
|
||||
CustomEventFilter *m_evenFilterCornerWidget;
|
||||
CustomEventFilter *m_evenFilterCustumParamsHelp;
|
||||
CustomEventFilter *m_evenFilterOutputFolderMouse;
|
||||
CustomEventFilter *m_evenFilterOutputFolderView;
|
||||
|
@ -152,6 +152,7 @@ ProcessingDialog::ProcessingDialog(FileListModel *fileListModel, const AudioFile
|
||||
m_ramObserver(NULL),
|
||||
m_progressViewFilter(-1),
|
||||
m_initThreads(0),
|
||||
m_defaultColor(new QColor()),
|
||||
m_firstShow(true)
|
||||
{
|
||||
//Init the dialog, from the .ui file
|
||||
@ -348,6 +349,7 @@ ProcessingDialog::~ProcessingDialog(void)
|
||||
LAMEXP_DELETE(m_contextMenu);
|
||||
LAMEXP_DELETE(m_progressModel);
|
||||
LAMEXP_DELETE(m_threadPool);
|
||||
LAMEXP_DELETE(m_defaultColor);
|
||||
|
||||
WinSevenTaskbar::setOverlayIcon(this, NULL);
|
||||
WinSevenTaskbar::setTaskbarState(this, WinSevenTaskbar::WinSevenTaskbarNoState);
|
||||
@ -407,21 +409,19 @@ void ProcessingDialog::closeEvent(QCloseEvent *event)
|
||||
|
||||
bool ProcessingDialog::eventFilter(QObject *obj, QEvent *event)
|
||||
{
|
||||
static QColor defaultColor = QColor();
|
||||
|
||||
if(obj == ui->label_versionInfo)
|
||||
{
|
||||
if(event->type() == QEvent::Enter)
|
||||
{
|
||||
QPalette palette = ui->label_versionInfo->palette();
|
||||
defaultColor = palette.color(QPalette::Normal, QPalette::WindowText);
|
||||
*m_defaultColor = palette.color(QPalette::Normal, QPalette::WindowText);
|
||||
palette.setColor(QPalette::Normal, QPalette::WindowText, Qt::red);
|
||||
ui->label_versionInfo->setPalette(palette);
|
||||
}
|
||||
else if(event->type() == QEvent::Leave)
|
||||
{
|
||||
QPalette palette = ui->label_versionInfo->palette();
|
||||
palette.setColor(QPalette::Normal, QPalette::WindowText, defaultColor);
|
||||
palette.setColor(QPalette::Normal, QPalette::WindowText, *m_defaultColor);
|
||||
ui->label_versionInfo->setPalette(palette);
|
||||
}
|
||||
else if(event->type() == QEvent::MouseButtonPress)
|
||||
|
@ -136,4 +136,5 @@ private:
|
||||
DiskObserverThread *m_diskObserver;
|
||||
qint64 m_timerStart;
|
||||
int m_progressViewFilter;
|
||||
QColor *m_defaultColor;
|
||||
};
|
||||
|
@ -109,7 +109,7 @@ class QAACEncoderInfo : public AbstractEncoderInfo
|
||||
|
||||
virtual const char *description(void) const
|
||||
{
|
||||
static const char* s_description = "QAAC/QuickTime (\x0C2\x0A9 Appel)";
|
||||
static const char* s_description = "QAAC/QuickTime (\x0C2\x0A9 Apple Inc.)";
|
||||
return s_description;
|
||||
}
|
||||
}
|
||||
@ -121,10 +121,11 @@ static const g_qaacEncoderInfo;
|
||||
|
||||
QAACEncoder::QAACEncoder(void)
|
||||
:
|
||||
m_binary_enc(lamexp_lookup_tool("qaac.exe")),
|
||||
m_binary_dll(lamexp_lookup_tool("libsoxrate.dll"))
|
||||
m_binary_qaac(lamexp_lookup_tool("qaac.exe")),
|
||||
m_binary_soxr(lamexp_lookup_tool("libsoxr.dll")),
|
||||
m_binary_soxc(lamexp_lookup_tool("libsoxconvolver.dll"))
|
||||
{
|
||||
if(m_binary_enc.isEmpty() || m_binary_dll.isEmpty())
|
||||
if(m_binary_qaac.isEmpty() || m_binary_soxr.isEmpty() || m_binary_soxc.isEmpty())
|
||||
{
|
||||
THROW("Error initializing QAAC. Tool 'qaac.exe' is not registred!");
|
||||
}
|
||||
@ -189,7 +190,7 @@ bool QAACEncoder::encode(const QString &sourceFile, const AudioFileModel_MetaInf
|
||||
args << "-o" << QDir::toNativeSeparators(outputFile);
|
||||
args << QDir::toNativeSeparators(sourceFile);
|
||||
|
||||
if(!startProcess(process, m_binary_enc, args))
|
||||
if(!startProcess(process, m_binary_qaac, args))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -45,7 +45,8 @@ public:
|
||||
static const AbstractEncoderInfo *getEncoderInfo(void);
|
||||
|
||||
private:
|
||||
const QString m_binary_enc;
|
||||
const QString m_binary_dll;
|
||||
const QString m_binary_qaac;
|
||||
const QString m_binary_soxr;
|
||||
const QString m_binary_soxc;
|
||||
int m_configProfile;
|
||||
};
|
||||
|
@ -186,6 +186,7 @@ bool lamexp_install_translator_from_file(const QString &qmFile);
|
||||
void lamexp_invalid_param_handler(const wchar_t*, const wchar_t*, const wchar_t*, unsigned int, uintptr_t);
|
||||
void lamexp_ipc_read(unsigned int *command, char* message, size_t buffSize);
|
||||
void lamexp_ipc_send(unsigned int command, const char* message);
|
||||
bool lamexp_is_executable(const QString &path);
|
||||
bool lamexp_is_hibernation_supported(void);
|
||||
const QString &lamexp_known_folder(lamexp_known_folder_t folder_id);
|
||||
const QString lamexp_lookup_tool(const QString &toolName);
|
||||
|
@ -106,8 +106,10 @@ static const unsigned int g_lamexp_toolver_coreaudio = VER_LAMEXP_TOOL_COREAUDIO
|
||||
#if (_MSC_VER == 1800)
|
||||
#if (_MSC_FULL_VER < 180021005)
|
||||
static const char *g_lamexp_version_compiler = "MSVC 2013-Beta";
|
||||
#elif (_MSC_FULL_VER == 180021005)
|
||||
#elif (_MSC_FULL_VER < 180030501)
|
||||
static const char *g_lamexp_version_compiler = "MSVC 2013";
|
||||
#elif (_MSC_FULL_VER == 180030501)
|
||||
static const char *g_lamexp_version_compiler = "MSVC 2013.2";
|
||||
#else
|
||||
#error Compiler version is not supported yet!
|
||||
#endif
|
||||
@ -311,7 +313,7 @@ bool lamexp_portable_mode(void)
|
||||
QString baseName = QFileInfo(QApplication::applicationFilePath()).completeBaseName();
|
||||
int idx1 = baseName.indexOf("lamexp", 0, Qt::CaseInsensitive);
|
||||
int idx2 = baseName.lastIndexOf("portable", -1, Qt::CaseInsensitive);
|
||||
g_lamexp_portable.bPortableModeEnabled = (idx1 >= 0) && (idx2 >= 0) && (idx1 < idx2);
|
||||
g_lamexp_portable.bPortableModeEnabled = ((idx1 >= 0) && (idx2 >= 0) && (idx1 < idx2));
|
||||
}
|
||||
g_lamexp_portable.bInitialized = true;
|
||||
}
|
||||
|
@ -1101,6 +1101,20 @@ bool lamexp_init_qt(int argc, char* argv[])
|
||||
}
|
||||
}
|
||||
|
||||
//Enable larger/smaller font size
|
||||
double fontScaleFactor = 1.0;
|
||||
if(arguments.contains("--huge-font", Qt::CaseInsensitive)) fontScaleFactor = 1.500;
|
||||
if(arguments.contains("--big-font", Qt::CaseInsensitive)) fontScaleFactor = 1.250;
|
||||
if(arguments.contains("--small-font", Qt::CaseInsensitive)) fontScaleFactor = 0.875;
|
||||
if(arguments.contains("--tiny-font", Qt::CaseInsensitive)) fontScaleFactor = 0.750;
|
||||
if(!qFuzzyCompare(fontScaleFactor, 1.0))
|
||||
{
|
||||
qWarning("Application font scale factor set to: %.3f\n", fontScaleFactor);
|
||||
QFont appFont = application->font();
|
||||
appFont.setPointSizeF(appFont.pointSizeF() * fontScaleFactor);
|
||||
application->setFont(appFont);
|
||||
}
|
||||
|
||||
//Add the default translations
|
||||
lamexp_translation_init();
|
||||
|
||||
@ -2253,6 +2267,20 @@ bool lamexp_user_is_admin(void)
|
||||
return isAdmin;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check if file is a valid Win32/Win64 executable
|
||||
*/
|
||||
bool lamexp_is_executable(const QString &path)
|
||||
{
|
||||
bool bIsExecutable = false;
|
||||
DWORD binaryType;
|
||||
if(GetBinaryType(QWCHAR(QDir::toNativeSeparators(path)), &binaryType))
|
||||
{
|
||||
bIsExecutable = (binaryType == SCS_32BIT_BINARY || binaryType == SCS_64BIT_BINARY);
|
||||
}
|
||||
return bIsExecutable;
|
||||
}
|
||||
|
||||
/*
|
||||
* Fatal application exit
|
||||
*/
|
||||
|
@ -41,7 +41,7 @@ public:
|
||||
void setFilePath(const QString &newPath, bool isOwner = true);
|
||||
void clear(void);
|
||||
|
||||
inline bool isEmpty(void) const { return (m_data != NULL); }
|
||||
inline bool isEmpty(void) const { return (m_data == NULL); }
|
||||
|
||||
private:
|
||||
const QString m_nullString;
|
||||
|
@ -45,6 +45,32 @@ while(0)
|
||||
} \
|
||||
while(0)
|
||||
|
||||
//if((!(OTHER.NAME.isEmpty())) && ((FORCE) || (this.NAME.isEmpty()))) /*this.NAME = OTHER.NAME;*/ \
|
||||
|
||||
#define UPDATE_STR(OTHER, FORCE, NAME) do \
|
||||
{ \
|
||||
if(!(((OTHER).NAME).isEmpty())) \
|
||||
{ \
|
||||
if((FORCE) || ((this->NAME).isEmpty())) (this->NAME) = ((OTHER).NAME); \
|
||||
} \
|
||||
} \
|
||||
while(0)
|
||||
|
||||
#define UPDATE_INT(OTHER, FORCE, NAME) do \
|
||||
{ \
|
||||
if(((OTHER).NAME) > 0) \
|
||||
{ \
|
||||
if((FORCE) || ((this->NAME) == 0)) (this->NAME) = ((OTHER).NAME); \
|
||||
} \
|
||||
} \
|
||||
while(0)
|
||||
|
||||
#define ASSIGN_VAL(OTHER, NAME) do \
|
||||
{ \
|
||||
(this->NAME) = ((OTHER).NAME); \
|
||||
} \
|
||||
while(0)
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Audio File - Meta Info
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
@ -56,40 +82,42 @@ AudioFileModel_MetaInfo::AudioFileModel_MetaInfo(void)
|
||||
|
||||
AudioFileModel_MetaInfo::AudioFileModel_MetaInfo(const AudioFileModel_MetaInfo &model)
|
||||
{
|
||||
m_titel = model.m_titel;
|
||||
m_artist = model.m_artist;
|
||||
m_album = model.m_album;
|
||||
m_genre = model.m_genre;
|
||||
m_comment = model.m_comment;
|
||||
m_cover = model.m_cover;
|
||||
m_year = model.m_year;
|
||||
m_position = model.m_position;
|
||||
ASSIGN_VAL(model, m_titel);
|
||||
ASSIGN_VAL(model, m_artist);
|
||||
ASSIGN_VAL(model, m_album);
|
||||
ASSIGN_VAL(model, m_genre);
|
||||
ASSIGN_VAL(model, m_comment);
|
||||
ASSIGN_VAL(model, m_cover);
|
||||
ASSIGN_VAL(model, m_year);
|
||||
ASSIGN_VAL(model, m_position);
|
||||
}
|
||||
|
||||
AudioFileModel_MetaInfo &AudioFileModel_MetaInfo::operator=(const AudioFileModel_MetaInfo &model)
|
||||
{
|
||||
m_titel = model.m_titel;
|
||||
m_artist = model.m_artist;
|
||||
m_album = model.m_album;
|
||||
m_genre = model.m_genre;
|
||||
m_comment = model.m_comment;
|
||||
m_cover = model.m_cover;
|
||||
m_year = model.m_year;
|
||||
m_position = model.m_position;
|
||||
ASSIGN_VAL(model, m_titel);
|
||||
ASSIGN_VAL(model, m_artist);
|
||||
ASSIGN_VAL(model, m_album);
|
||||
ASSIGN_VAL(model, m_genre);
|
||||
ASSIGN_VAL(model, m_comment);
|
||||
ASSIGN_VAL(model, m_cover);
|
||||
ASSIGN_VAL(model, m_year);
|
||||
ASSIGN_VAL(model, m_position);
|
||||
|
||||
return (*this);
|
||||
}
|
||||
|
||||
#define IS_EMPTY(X) ((X).isEmpty() ? "YES" : "NO")
|
||||
|
||||
void AudioFileModel_MetaInfo::update(const AudioFileModel_MetaInfo &model, const bool replace)
|
||||
{
|
||||
if((!model.m_titel.isEmpty()) && (replace || m_titel.isEmpty())) m_titel = model.m_titel;
|
||||
if((!model.m_artist.isEmpty()) && (replace || m_artist.isEmpty())) m_artist = model.m_artist;
|
||||
if((!model.m_album.isEmpty()) && (replace || m_album.isEmpty())) m_album = model.m_album;
|
||||
if((!model.m_genre.isEmpty()) && (replace || m_genre.isEmpty())) m_genre = model.m_genre;
|
||||
if((!model.m_comment.isEmpty()) && (replace || m_comment.isEmpty())) m_comment = model.m_comment;
|
||||
if((!model.m_cover.isEmpty()) && (replace || m_cover.isEmpty())) m_cover = model.m_cover;
|
||||
if((model.m_year > 0) && (replace || (m_year == 0))) m_year = model.m_year;
|
||||
if((model.m_position > 0) && (replace || (m_position == 0))) m_position = model.m_position;
|
||||
UPDATE_STR(model, replace, m_titel);
|
||||
UPDATE_STR(model, replace, m_artist);
|
||||
UPDATE_STR(model, replace, m_album);
|
||||
UPDATE_STR(model, replace, m_genre);
|
||||
UPDATE_STR(model, replace, m_comment);
|
||||
UPDATE_STR(model, replace, m_cover);
|
||||
UPDATE_INT(model, replace, m_year);
|
||||
UPDATE_INT(model, replace, m_position);
|
||||
}
|
||||
|
||||
AudioFileModel_MetaInfo::~AudioFileModel_MetaInfo(void)
|
||||
@ -132,34 +160,34 @@ AudioFileModel_TechInfo::AudioFileModel_TechInfo(void)
|
||||
|
||||
AudioFileModel_TechInfo::AudioFileModel_TechInfo(const AudioFileModel_TechInfo &model)
|
||||
{
|
||||
m_containerType = model.m_containerType;
|
||||
m_containerProfile = model.m_containerProfile;
|
||||
m_audioType = model.m_audioType;
|
||||
m_audioProfile = model.m_audioProfile;
|
||||
m_audioVersion = model.m_audioVersion;
|
||||
m_audioEncodeLib = model.m_audioEncodeLib;
|
||||
m_audioSamplerate = model.m_audioSamplerate;
|
||||
m_audioChannels = model.m_audioChannels;
|
||||
m_audioBitdepth = model.m_audioBitdepth;
|
||||
m_audioBitrate = model.m_audioBitrate;
|
||||
m_audioBitrateMode = model.m_audioBitrateMode;
|
||||
m_duration = model.m_duration;
|
||||
ASSIGN_VAL(model, m_containerType);
|
||||
ASSIGN_VAL(model, m_containerProfile);
|
||||
ASSIGN_VAL(model, m_audioType);
|
||||
ASSIGN_VAL(model, m_audioProfile);
|
||||
ASSIGN_VAL(model, m_audioVersion);
|
||||
ASSIGN_VAL(model, m_audioEncodeLib);
|
||||
ASSIGN_VAL(model, m_audioSamplerate);
|
||||
ASSIGN_VAL(model, m_audioChannels);
|
||||
ASSIGN_VAL(model, m_audioBitdepth);
|
||||
ASSIGN_VAL(model, m_audioBitrate);
|
||||
ASSIGN_VAL(model, m_audioBitrateMode);
|
||||
ASSIGN_VAL(model, m_duration);
|
||||
}
|
||||
|
||||
AudioFileModel_TechInfo &AudioFileModel_TechInfo::operator=(const AudioFileModel_TechInfo &model)
|
||||
{
|
||||
m_containerType = model.m_containerType;
|
||||
m_containerProfile = model.m_containerProfile;
|
||||
m_audioType = model.m_audioType;
|
||||
m_audioProfile = model.m_audioProfile;
|
||||
m_audioVersion = model.m_audioVersion;
|
||||
m_audioEncodeLib = model.m_audioEncodeLib;
|
||||
m_audioSamplerate = model.m_audioSamplerate;
|
||||
m_audioChannels = model.m_audioChannels;
|
||||
m_audioBitdepth = model.m_audioBitdepth;
|
||||
m_audioBitrate = model.m_audioBitrate;
|
||||
m_audioBitrateMode = model.m_audioBitrateMode;
|
||||
m_duration = model.m_duration;
|
||||
ASSIGN_VAL(model, m_containerType);
|
||||
ASSIGN_VAL(model, m_containerProfile);
|
||||
ASSIGN_VAL(model, m_audioType);
|
||||
ASSIGN_VAL(model, m_audioProfile);
|
||||
ASSIGN_VAL(model, m_audioVersion);
|
||||
ASSIGN_VAL(model, m_audioEncodeLib);
|
||||
ASSIGN_VAL(model, m_audioSamplerate);
|
||||
ASSIGN_VAL(model, m_audioChannels);
|
||||
ASSIGN_VAL(model, m_audioBitdepth);
|
||||
ASSIGN_VAL(model, m_audioBitrate);
|
||||
ASSIGN_VAL(model, m_audioBitrateMode);
|
||||
ASSIGN_VAL(model, m_duration);
|
||||
|
||||
return (*this);
|
||||
}
|
||||
@ -199,16 +227,16 @@ AudioFileModel::AudioFileModel(const QString &path)
|
||||
|
||||
AudioFileModel::AudioFileModel(const AudioFileModel &model)
|
||||
{
|
||||
m_filePath = model.m_filePath;
|
||||
m_metaInfo = model.m_metaInfo;
|
||||
m_techInfo = model.m_techInfo;
|
||||
ASSIGN_VAL(model, m_filePath);
|
||||
ASSIGN_VAL(model, m_metaInfo);
|
||||
ASSIGN_VAL(model, m_techInfo);
|
||||
}
|
||||
|
||||
AudioFileModel &AudioFileModel::operator=(const AudioFileModel &model)
|
||||
{
|
||||
m_filePath = model.m_filePath;
|
||||
m_metaInfo = model.m_metaInfo;
|
||||
m_techInfo = model.m_techInfo;
|
||||
ASSIGN_VAL(model, m_filePath);
|
||||
ASSIGN_VAL(model, m_metaInfo);
|
||||
ASSIGN_VAL(model, m_techInfo);
|
||||
|
||||
return (*this);
|
||||
}
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "Model_Settings.h"
|
||||
|
||||
#include "Global.h"
|
||||
#include "Registry_Encoder.h"
|
||||
|
||||
#include <QSettings>
|
||||
#include <QDesktopServices>
|
||||
@ -379,18 +380,12 @@ void SettingsModel::validate(void)
|
||||
CHECK_RCMODE(Aften);
|
||||
CHECK_RCMODE(OpusEnc);
|
||||
|
||||
if(!(lamexp_check_tool("neroAacEnc.exe") && lamexp_check_tool("neroAacDec.exe") && lamexp_check_tool("neroAacTag.exe")))
|
||||
if(EncoderRegistry::getAacEncoder() == AAC_ENCODER_NONE)
|
||||
{
|
||||
if(!(lamexp_check_tool("fhgaacenc.exe") && lamexp_check_tool("enc_fhgaac.dll")))
|
||||
if(this->compressionEncoder() == SettingsModel::AACEncoder)
|
||||
{
|
||||
if(!(lamexp_check_tool("qaac.exe") && lamexp_check_tool("libsoxrate.dll")))
|
||||
{
|
||||
if(this->compressionEncoder() == SettingsModel::AACEncoder)
|
||||
{
|
||||
qWarning("AAC encoder selected, but not available any more. Reverting to MP3!");
|
||||
this->compressionEncoder(SettingsModel::MP3Encoder);
|
||||
}
|
||||
}
|
||||
qWarning("AAC encoder selected, but not available any more. Reverting to MP3!");
|
||||
this->compressionEncoder(SettingsModel::MP3Encoder);
|
||||
}
|
||||
}
|
||||
|
||||
@ -566,7 +561,7 @@ LAMEXP_MAKE_OPTION_I(aftenExponentSearchSize, 8)
|
||||
LAMEXP_MAKE_OPTION_B(aftenFastBitAllocation, false)
|
||||
LAMEXP_MAKE_OPTION_B(antivirNotificationsEnabled, true)
|
||||
LAMEXP_MAKE_OPTION_B(autoUpdateCheckBeta, false)
|
||||
LAMEXP_MAKE_OPTION_B(autoUpdateEnabled, true)
|
||||
LAMEXP_MAKE_OPTION_B(autoUpdateEnabled, (!lamexp_portable_mode()));
|
||||
LAMEXP_MAKE_OPTION_S(autoUpdateLastCheck, "Never")
|
||||
LAMEXP_MAKE_OPTION_B(bitrateManagementEnabled, false)
|
||||
LAMEXP_MAKE_OPTION_I(bitrateManagementMaxRate, 500)
|
||||
|
@ -476,7 +476,7 @@ void EncoderRegistry::resetAllEncoders(SettingsModel *settings)
|
||||
|
||||
int EncoderRegistry::getAacEncoder(void)
|
||||
{
|
||||
if(lamexp_check_tool("qaac.exe") && lamexp_check_tool("libsoxrate.dll"))
|
||||
if(lamexp_check_tool("qaac.exe") && lamexp_check_tool("libsoxr.dll") && lamexp_check_tool("libsoxconvolver.dll"))
|
||||
{
|
||||
return SettingsModel::AAC_ENCODER_QAAC;
|
||||
}
|
||||
|
@ -57,7 +57,6 @@ static const char *update_mirrors_prim[] =
|
||||
"http://muldersoft.kilu.de/",
|
||||
"http://muldersoft.zxq.net/",
|
||||
"http://lamexp.sourceforge.net/",
|
||||
"http://lamexp.berlios.de/",
|
||||
"http://lordmulder.github.io/LameXP/",
|
||||
"http://lord_mulder.bitbucket.org/",
|
||||
"http://www.tricksoft.de/",
|
||||
@ -253,6 +252,7 @@ void UpdateCheckThread::checkForUpdates(void)
|
||||
// ----- Test Internet Connection ----- //
|
||||
|
||||
int connectionScore = 0;
|
||||
int maxConnectTries = (3 * MIN_CONNSCORE) / 2;
|
||||
|
||||
log("Checking internet connection...");
|
||||
setStatus(UpdateStatus_CheckingConnection);
|
||||
@ -277,32 +277,22 @@ void UpdateCheckThread::checkForUpdates(void)
|
||||
}
|
||||
|
||||
lamexp_seed_rand();
|
||||
while(!hostList.isEmpty())
|
||||
|
||||
while(!(hostList.isEmpty() || (connectionScore >= MIN_CONNSCORE) || (maxConnectTries < 1)))
|
||||
{
|
||||
QString currentHost = hostList.takeAt(lamexp_rand() % hostList.count());
|
||||
if(connectionScore < MIN_CONNSCORE)
|
||||
switch(tryContactHost(hostList.takeAt(lamexp_rand() % hostList.count())))
|
||||
{
|
||||
log("", "Testing host:", currentHost);
|
||||
QString outFile = QString("%1/%2.htm").arg(lamexp_temp_folder2(), lamexp_rand_str());
|
||||
bool httpOk = false;
|
||||
if(getFile(currentHost, outFile, 0, &httpOk))
|
||||
{
|
||||
connectionScore++;
|
||||
setProgress(qBound(1, connectionScore + 1, MIN_CONNSCORE + 1));
|
||||
lamexp_sleep(64);
|
||||
}
|
||||
if(httpOk)
|
||||
{
|
||||
connectionScore++;
|
||||
setProgress(qBound(1, connectionScore + 1, MIN_CONNSCORE + 1));
|
||||
lamexp_sleep(64);
|
||||
}
|
||||
QFile::remove(outFile);
|
||||
case 01: connectionScore += 1; break;
|
||||
case 02: connectionScore += 2; break;
|
||||
default: maxConnectTries -= 1; break;
|
||||
}
|
||||
setProgress(qBound(1, connectionScore + 1, MIN_CONNSCORE + 1));
|
||||
lamexp_sleep(64);
|
||||
}
|
||||
|
||||
if(connectionScore < MIN_CONNSCORE)
|
||||
{
|
||||
log("", "Connectivity test has failed: Internet connection appears to be broken!");
|
||||
setProgress(m_maxProgress);
|
||||
setStatus(UpdateStatus_ErrorConnectionTestFailed);
|
||||
return;
|
||||
@ -441,6 +431,35 @@ void UpdateCheckThread::log(const QString &str1, const QString &str2, const QStr
|
||||
if(!str4.isNull()) emit messageLogged(str4);
|
||||
}
|
||||
|
||||
int UpdateCheckThread::tryContactHost(const QString &url)
|
||||
{
|
||||
int result = -1; bool httpOkay = false;
|
||||
const QString outFile = QString("%1/%2.htm").arg(lamexp_temp_folder2(), lamexp_rand_str());
|
||||
log("", "Testing host:", url);
|
||||
|
||||
if(getFile(url, outFile, 0, &httpOkay))
|
||||
{
|
||||
log("Connection to host was established successfully.");
|
||||
result = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(httpOkay)
|
||||
{
|
||||
log("Connection to host timed out after HTTP OK was received.");
|
||||
result = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
log("Connection failed: The host could not be reached!");
|
||||
result = 0;
|
||||
}
|
||||
}
|
||||
|
||||
QFile::remove(outFile);
|
||||
return result;
|
||||
}
|
||||
|
||||
bool UpdateCheckThread::tryUpdateMirror(UpdateInfo *updateInfo, const QString &url)
|
||||
{
|
||||
bool success = false;
|
||||
@ -499,7 +518,7 @@ bool UpdateCheckThread::getFile(const QString &url, const QString &outFile, unsi
|
||||
lamexp_init_process(process, output.absolutePath());
|
||||
|
||||
QStringList args;
|
||||
args << "--no-cache" << "--no-dns-cache" << QString().sprintf("--max-redirect=%u", maxRedir);
|
||||
args << "-T" << "15" << "--no-cache" << "--no-dns-cache" << QString().sprintf("--max-redirect=%u", maxRedir);
|
||||
args << QString("--referer=%1://%2/").arg(QUrl(url).scheme(), QUrl(url).host()) << "-U" << USER_AGENT_STR;
|
||||
args << "-O" << output.fileName() << url;
|
||||
|
||||
@ -524,10 +543,10 @@ bool UpdateCheckThread::getFile(const QString &url, const QString &outFile, unsi
|
||||
|
||||
timer.start();
|
||||
|
||||
while(process.state() == QProcess::Running)
|
||||
while(process.state() != QProcess::NotRunning)
|
||||
{
|
||||
loop.exec();
|
||||
bool bTimeOut = (!timer.isActive());
|
||||
const bool bTimeOut = (!timer.isActive());
|
||||
while(process.canReadLine())
|
||||
{
|
||||
QString line = QString::fromLatin1(process.readLine()).simplified();
|
||||
|
@ -102,6 +102,7 @@ private:
|
||||
inline void log(const QString &str1, const QString &str2 = QString(), const QString &str3 = QString(), const QString &str4 = QString());
|
||||
|
||||
bool getFile(const QString &url, const QString &outFile, unsigned int maxRedir = 5, bool *httpOk = NULL);
|
||||
int tryContactHost(const QString &url);
|
||||
bool tryUpdateMirror(UpdateInfo *updateInfo, const QString &url);
|
||||
bool checkSignature(const QString &file, const QString &signature);
|
||||
bool parseVersionInfo(const QString &file, UpdateInfo *updateInfo);
|
||||
|
@ -546,15 +546,24 @@ void InitializationThread::initNeroAac(void)
|
||||
bool neroFilesFound = true;
|
||||
for(int i = 0; i < 3; i++) { if(!neroFileInfo[i].exists()) neroFilesFound = false; }
|
||||
|
||||
//Lock the Nero binaries
|
||||
if(!neroFilesFound)
|
||||
{
|
||||
qDebug("Nero encoder binaries not found -> AAC encoding support will be disabled!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
for(int i = 0; i < 3; i++)
|
||||
{
|
||||
if(!lamexp_is_executable(neroFileInfo[i].canonicalFilePath()))
|
||||
{
|
||||
qDebug("%s executbale is invalid -> AAC encoding support will be disabled!\n", QUTF8(neroFileInfo[i].fileName()));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
qDebug("Found Nero AAC encoder binary:\n%s\n", QUTF8(neroFileInfo[0].canonicalFilePath()));
|
||||
|
||||
//Lock the Nero binaries
|
||||
LockedFile *neroBin[3];
|
||||
for(int i = 0; i < 3; i++) neroBin[i] = NULL;
|
||||
|
||||
@ -651,16 +660,22 @@ void InitializationThread::initFhgAac(void)
|
||||
bool fhgFilesFound = true;
|
||||
for(int i = 0; i < 5; i++) { if(!fhgFileInfo[i].exists()) fhgFilesFound = false; }
|
||||
|
||||
//Lock the FhgAacEnc binaries
|
||||
if(!fhgFilesFound)
|
||||
{
|
||||
qDebug("FhgAacEnc binaries not found -> FhgAacEnc support will be disabled!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if(!lamexp_is_executable(fhgFileInfo[0].canonicalFilePath()))
|
||||
{
|
||||
qDebug("FhgAacEnc executbale is invalid -> FhgAacEnc support will be disabled!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
qDebug("Found FhgAacEnc cli_exe:\n%s\n", QUTF8(fhgFileInfo[0].canonicalFilePath()));
|
||||
qDebug("Found FhgAacEnc enc_dll:\n%s\n", QUTF8(fhgFileInfo[1].canonicalFilePath()));
|
||||
|
||||
//Lock the FhgAacEnc binaries
|
||||
LockedFile *fhgBin[5];
|
||||
for(int i = 0; i < 5; i++) fhgBin[i] = NULL;
|
||||
|
||||
@ -743,35 +758,43 @@ void InitializationThread::initQAac(void)
|
||||
{
|
||||
const QString appPath = QDir(QCoreApplication::applicationDirPath()).canonicalPath();
|
||||
|
||||
QFileInfo qaacFileInfo[2];
|
||||
QFileInfo qaacFileInfo[4];
|
||||
qaacFileInfo[0] = QFileInfo(QString("%1/qaac.exe").arg(appPath));
|
||||
qaacFileInfo[1] = QFileInfo(QString("%1/libsoxrate.dll").arg(appPath));
|
||||
qaacFileInfo[1] = QFileInfo(QString("%1/libsoxr.dll").arg(appPath));
|
||||
qaacFileInfo[2] = QFileInfo(QString("%1/libsoxconvolver.dll").arg(appPath));
|
||||
qaacFileInfo[3] = QFileInfo(QString("%1/libgcc_s_sjlj-1.dll").arg(appPath));
|
||||
|
||||
bool qaacFilesFound = true;
|
||||
for(int i = 0; i < 2; i++) { if(!qaacFileInfo[i].exists()) qaacFilesFound = false; }
|
||||
for(int i = 0; i < 4; i++) { if(!qaacFileInfo[i].exists()) qaacFilesFound = false; }
|
||||
|
||||
//Lock the QAAC binaries
|
||||
if(!qaacFilesFound)
|
||||
{
|
||||
qDebug("QAAC binaries not found -> QAAC support will be disabled!\n");
|
||||
qDebug("QAAC binary or companion DLL's not found -> QAAC support will be disabled!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if(!lamexp_is_executable(qaacFileInfo[0].canonicalFilePath()))
|
||||
{
|
||||
qDebug("QAAC executbale is invalid -> QAAC support will be disabled!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
qDebug("Found QAAC encoder:\n%s\n", QUTF8(qaacFileInfo[0].canonicalFilePath()));
|
||||
|
||||
LockedFile *qaacBin[2];
|
||||
for(int i = 0; i < 2; i++) qaacBin[i] = NULL;
|
||||
//Lock the required QAAC binaries
|
||||
LockedFile *qaacBin[4];
|
||||
for(int i = 0; i < 4; i++) qaacBin[i] = NULL;
|
||||
|
||||
try
|
||||
{
|
||||
for(int i = 0; i < 2; i++)
|
||||
for(int i = 0; i < 4; i++)
|
||||
{
|
||||
qaacBin[i] = new LockedFile(qaacFileInfo[i].canonicalFilePath());
|
||||
}
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
for(int i = 0; i < 2; i++) LAMEXP_DELETE(qaacBin[i]);
|
||||
for(int i = 0; i < 4; i++) LAMEXP_DELETE(qaacBin[i]);
|
||||
qWarning("Failed to get excluive lock to QAAC binary -> QAAC support will be disabled!");
|
||||
return;
|
||||
}
|
||||
@ -787,14 +810,19 @@ void InitializationThread::initQAac(void)
|
||||
qWarning("Error message: \"%s\"\n", process.errorString().toLatin1().constData());
|
||||
process.kill();
|
||||
process.waitForFinished(-1);
|
||||
for(int i = 0; i < 2; i++) LAMEXP_DELETE(qaacBin[i]);
|
||||
for(int i = 0; i < 4; i++) LAMEXP_DELETE(qaacBin[i]);
|
||||
return;
|
||||
}
|
||||
|
||||
QRegExp qaacEncSig("qaac (\\d)\\.(\\d)(\\d)", Qt::CaseInsensitive);
|
||||
QRegExp coreEncSig("CoreAudioToolbox (\\d)\\.(\\d)\\.(\\d)\\.(\\d)", Qt::CaseInsensitive);
|
||||
QRegExp soxrEncSig("libsoxr-\\d\\.\\d\\.\\d", Qt::CaseInsensitive);
|
||||
QRegExp soxcEncSig("libsoxconvolver \\d\\.\\d\\.\\d", Qt::CaseInsensitive);
|
||||
|
||||
unsigned int qaacVersion = 0;
|
||||
unsigned int coreVersion = 0;
|
||||
bool soxrFound = false;
|
||||
bool soxcFound = false;
|
||||
|
||||
while(process.state() != QProcess::NotRunning)
|
||||
{
|
||||
@ -804,7 +832,7 @@ void InitializationThread::initQAac(void)
|
||||
qWarning("QAAC process time out -> killing!");
|
||||
process.kill();
|
||||
process.waitForFinished(-1);
|
||||
for(int i = 0; i < 2; i++) LAMEXP_DELETE(qaacBin[i]);
|
||||
for(int i = 0; i < 4; i++) LAMEXP_DELETE(qaacBin[i]);
|
||||
return;
|
||||
}
|
||||
while(process.bytesAvailable() > 0)
|
||||
@ -835,6 +863,8 @@ void InitializationThread::initQAac(void)
|
||||
coreVersion = (qBound(0U, tmp[0], 9U) * 1000) + (qBound(0U, tmp[1], 9U) * 100) + (qBound(0U, tmp[2], 9U) * 10) + qBound(0U, tmp[3], 9U);
|
||||
}
|
||||
}
|
||||
if(soxcEncSig.lastIndexIn(line) >= 0) { soxcFound = true; }
|
||||
if(soxrEncSig.lastIndexIn(line) >= 0) { soxrFound = true; }
|
||||
}
|
||||
}
|
||||
|
||||
@ -843,33 +873,41 @@ void InitializationThread::initQAac(void)
|
||||
if(!(qaacVersion > 0))
|
||||
{
|
||||
qWarning("QAAC version couldn't be determined -> QAAC support will be disabled!");
|
||||
for(int i = 0; i < 2; i++) LAMEXP_DELETE(qaacBin[i]);
|
||||
for(int i = 0; i < 4; i++) LAMEXP_DELETE(qaacBin[i]);
|
||||
return;
|
||||
}
|
||||
else if(qaacVersion < lamexp_toolver_qaacenc())
|
||||
{
|
||||
qWarning("QAAC version is too much outdated (%s) -> QAAC support will be disabled!", lamexp_version2string("v?.??", qaacVersion, "N/A").toLatin1().constData());
|
||||
qWarning("Minimum required QAAC version currently is: %s.\n", lamexp_version2string("v?.??", lamexp_toolver_qaacenc(), "N/A").toLatin1().constData());
|
||||
for(int i = 0; i < 2; i++) LAMEXP_DELETE(qaacBin[i]);
|
||||
for(int i = 0; i < 4; i++) LAMEXP_DELETE(qaacBin[i]);
|
||||
return;
|
||||
}
|
||||
|
||||
if(!(coreVersion > 0))
|
||||
{
|
||||
qWarning("CoreAudioToolbox version couldn't be determined -> QAAC support will be disabled!");
|
||||
for(int i = 0; i < 2; i++) LAMEXP_DELETE(qaacBin[i]);
|
||||
for(int i = 0; i < 4; i++) LAMEXP_DELETE(qaacBin[i]);
|
||||
return;
|
||||
}
|
||||
else if(coreVersion < lamexp_toolver_coreaudio())
|
||||
{
|
||||
qWarning("CoreAudioToolbox version is too much outdated (%s) -> QAAC support will be disabled!", lamexp_version2string("v?.?.?.?", coreVersion, "N/A").toLatin1().constData());
|
||||
qWarning("Minimum required CoreAudioToolbox version currently is: %s.\n", lamexp_version2string("v?.??", lamexp_toolver_coreaudio(), "N/A").toLatin1().constData());
|
||||
for(int i = 0; i < 2; i++) LAMEXP_DELETE(qaacBin[i]);
|
||||
for(int i = 0; i < 4; i++) LAMEXP_DELETE(qaacBin[i]);
|
||||
return;
|
||||
}
|
||||
|
||||
if(!(soxrFound && soxcFound))
|
||||
{
|
||||
qWarning("libsoxr and/or libsoxconvolver not available -> QAAC support will be disabled!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
lamexp_register_tool(qaacFileInfo[0].fileName(), qaacBin[0], qaacVersion);
|
||||
lamexp_register_tool(qaacFileInfo[1].fileName(), qaacBin[1], qaacVersion);
|
||||
lamexp_register_tool(qaacFileInfo[2].fileName(), qaacBin[2], qaacVersion);
|
||||
lamexp_register_tool(qaacFileInfo[3].fileName(), qaacBin[3], qaacVersion);
|
||||
}
|
||||
|
||||
void InitializationThread::selfTest(void)
|
||||
|
14
src/Tools.h
14
src/Tools.h
@ -66,18 +66,18 @@ g_lamexp_tools[] =
|
||||
{"53cfab3896a47d48f523315f475fa07856d468ad1aefcc8cce19c18cdf509e2f92840dab92a442995df36d941cb7a6ca", CPU_TYPE_ALL_GEN, "lame.i386.exe", 3995, "Final"},
|
||||
{"9511e7ef2ad10de05386eedf7f14d637edab894a53dacd2f8f15c6f8ed582f12c25fb5bf88438e62c46b8eb92e7634b2", CPU_TYPE_ALL_SSE, "lame.sse2.exe", 3995, "Final"},
|
||||
{"fdbeb978025b9a5345300f37bb56446c31c7db594cf29407afdcc9ce20f4a5cec6eb8c03962c247d4f45b83c465ac705", CPU_TYPE_ALL_ALL, "mac.exe", 412, ""},
|
||||
{"b0cf3fdee3231f92035b83ade52427ffd95bd1210f4f83f8ae6c2ea069b772a93415563e787987638ebbd14b5a2f9120", CPU_TYPE_X86_ALL, "mediainfo.i386.exe", 767, ""},
|
||||
{"6d6db3e9ffb78784ac5f45f0fa98bfbd48af43b3400d7127038898c0b6b980a849f21f75fbfc94a54f050a7a3935f111", CPU_TYPE_X64_ALL, "mediainfo.x64.exe", 767, ""},
|
||||
{"975408454231ac8c51960907a7eea1dd4ef8f7e1269816737e8c072ab695de32d3dae433bc667f8d1343a60e95ddb38d", CPU_TYPE_X86_ALL, "mediainfo.i386.exe", 769, ""},
|
||||
{"3c049cb7e149413129cfc17588346bfa455554da6a6aec549a7b8e2a6f0953fa2a7f5d3425e6f41a26ed6b379c514687", CPU_TYPE_X64_ALL, "mediainfo.x64.exe", 769, ""},
|
||||
{"7e6346a057634ff07b2e1f427035324f7f02100cc996425990f87f71d767fce4c7b101588c7d944ba49cb2d7e51c9bdb", CPU_TYPE_ALL_ALL, "mpcdec.exe", 475, ""},
|
||||
{"8f844060ed60b4d3fb8c2f2f28e13304a69fa97cde3859ee5c62fef46aea6f500e4dc74114ded901ee9231bbb5d2af64", CPU_TYPE_ALL_ALL, "mpg123.exe", 1160, ""},
|
||||
{"96c6e22928f34a514d824f3d6e2fdc2cc1dcfb3e074ab109c989f54654e80c68f5f81648d1eca4199654289fd511df7f", CPU_TYPE_ALL_ALL, "mpg123.exe", 1190, ""},
|
||||
{"75c39861ac82d7fc8392fbddff9f5b785e7abee29f8c1843706a9b225966e05ef4be2a160f98f389beaf5238c5de121c", CPU_TYPE_ALL_ALL, "oggdec.exe", UINT_MAX, ""},
|
||||
{"8b68461f38410421be30cc895e94e63184daa6f2cb20eb110b66b376b48141838a09bc920efeb1c49de79dd0770ce41b", CPU_TYPE_X86_GEN, "oggenc2.i386.exe", 287603, "Beta"},
|
||||
{"20648f83cc637cada481143d48c437ced8423e9a0aae01dbce860cd97fb1ce4000e314f3a5395d1eafd8e154a8e74d08", CPU_TYPE_X86_SSE, "oggenc2.sse2.exe", 287603, "Beta"},
|
||||
{"53766251d69e0695ae7d0cbc4f19aafdce90bfebde0815e2216a5b34955f151271d97d23a00be5ce280a502b718753cc", CPU_TYPE_X64_ALL, "oggenc2.x64.exe", 287603, "Beta"},
|
||||
{"d0899fa678b1d41aa59952e6f5790b30a6dac961390cbfaa3559c302c0da74907b39a348f79014d2ede088338f60a1f1", CPU_TYPE_ALL_GEN, "opusdec.i386.exe", 20131205, "v1.1"},
|
||||
{"1ffce4de07b81a9a07746a2eb169acfac527e1f450509997283dd2ebfc534ab7516b251fc1f81873759a8e363fd7a953", CPU_TYPE_ALL_SSE, "opusdec.sse2.exe", 20131205, "v1.1"},
|
||||
{"bd97b7edb69a81edf8441d07a516b16d2876e22882e302e0c8e730f860ad6d070d124e06034b9b4132022889a6d13d5f", CPU_TYPE_ALL_GEN, "opusenc.i386.exe", 20131205, "v1.1"},
|
||||
{"63beefa4c2481f1e6f260bb3ef62aadc4d838665569145697f42774aa4d343636f8e657b3fa6126155a93e71b3f44203", CPU_TYPE_ALL_SSE, "opusenc.sse2.exe", 20131205, "v1.1"},
|
||||
{"b8f8167ee344ada98d6cca831145c0f8f97a25875f34f8ee03395a5ac5203bfefca4e472f4c8ae5b9999bd2ded83bd7e", CPU_TYPE_ALL_GEN, "opusdec.i386.exe", 20140413, "v1.1"},
|
||||
{"262549c5f349c984e94451666419eaff4c0f5558719a729568f9131306c6455420d2551c956d8ba2edc2bce533103d8a", CPU_TYPE_ALL_SSE, "opusdec.sse2.exe", 20140413, "v1.1"},
|
||||
{"2127979169db9a1fbfeb71fb88b59f5f85047855b25bb3e5bff6ffadc1bc31a8369cd1902ea9e9efd184a94ce1be92bd", CPU_TYPE_ALL_GEN, "opusenc.i386.exe", 20140413, "v1.1"},
|
||||
{"b38e61a5c1d57f31349d035d3891038a0ca2c9a5a8252e3ae91ad98e23436d7c9c69cedfae26043fadf6ea215b2de5de", CPU_TYPE_ALL_SSE, "opusenc.sse2.exe", 20140413, "v1.1"},
|
||||
{"bdfa8dec142b6327a33af6bb314d7beb924588d1b73f2ef3f46b31fa6046fe2f4e64ca78b025b7eb9290a78320e2aa57", CPU_TYPE_ALL_ALL, "refalac.exe", 56, ""},
|
||||
{"d041b60de6c5c6e77cbad84440db57bbeb021af59dd0f7bebd3ede047d9e2ddc2a0c14179472687ba91063743d23e337", CPU_TYPE_ALL_ALL, "shorten.exe", 361, ""},
|
||||
{"cf988bfbb53e77a1dcaefbd5c08789abb4d67cc210723f1f8ba7850f17d34ebb7d0c426b67b963e7d2290a2744865244", CPU_TYPE_ALL_ALL, "sox.exe", 1441, ""},
|
||||
|
Loading…
Reference in New Issue
Block a user