"Overwrite Mode" should actually be working now.

This commit is contained in:
LoRd_MuldeR 2012-11-08 21:19:45 +01:00
parent 4d3bce8fc3
commit 977f4d4213
22 changed files with 509 additions and 167 deletions

View File

@ -17,6 +17,10 @@ a:visited { color: #0000EE; }
<body>
<h3>LameXP - Version History</h3><br>
<a name="4.07"></a>Changes between v4.06 and v4.07 [<font color="darkred">unreleased</font>]:<br><ul>
<li>Added option to select the "overwrite mode" to advanced options
</ul><br>
<a name="4.06"></a>Changes between v4.05 and v4.06 [2012-11-04]:<br><ul>
<li>Updated Opus encoder/decoder libraries to v1.0.1 and Opus-Tools to v0.1.5 (2012-09-22)
<li>Updated mpg123 decoder to v1.14.4+ (2012-09-24), compiled with GCC 4.7.1

View File

@ -2877,121 +2877,146 @@
<context>
<name>ProcessThread</name>
<message>
<location filename="../../src/Thread_Process.cpp" line="125"/>
<location filename="../../src/Thread_Process.cpp" line="127"/>
<source>Starting...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="133"/>
<location filename="../../src/Thread_Process.cpp" line="140"/>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="145"/>
<source>Not found!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="166"/>
<location filename="../../src/Thread_Process.cpp" line="178"/>
<source>WARNING: Decoded file size exceeds 4 GB, problems might occur!
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="174"/>
<location filename="../../src/Thread_Process.cpp" line="186"/>
<source>The format of this file is NOT supported:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="174"/>
<location filename="../../src/Thread_Process.cpp" line="186"/>
<source>Container Format:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="174"/>
<location filename="../../src/Thread_Process.cpp" line="186"/>
<source>Audio Format:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="175"/>
<location filename="../../src/Thread_Process.cpp" line="187"/>
<source>Unsupported!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="253"/>
<location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Aborted!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="253"/>
<location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Done.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="253"/>
<location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="270"/>
<location filename="../../src/Thread_Process.cpp" line="282"/>
<source>Encoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="273"/>
<location filename="../../src/Thread_Process.cpp" line="285"/>
<source>Analyzing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="276"/>
<location filename="../../src/Thread_Process.cpp" line="288"/>
<source>Filtering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="279"/>
<location filename="../../src/Thread_Process.cpp" line="291"/>
<source>Decoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="302"/>
<location filename="../../src/Thread_Process.cpp" line="315"/>
<source>The source audio file could not be found:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="309"/>
<location filename="../../src/Thread_Process.cpp" line="323"/>
<source>The source audio file could not be opened for reading:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="335"/>
<location filename="../../src/Thread_Process.cpp" line="351"/>
<source>The target output directory doesn&apos;t exist and could NOT be created:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="343"/>
<location filename="../../src/Thread_Process.cpp" line="360"/>
<source>The target output directory is NOT writable:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="353"/>
<location filename="../../src/Thread_Process.cpp" line="371"/>
<source>Unknown File Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="355"/>
<location filename="../../src/Thread_Process.cpp" line="373"/>
<source>Unknown Title</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="356"/>
<location filename="../../src/Thread_Process.cpp" line="374"/>
<source>Unknown Artist</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="357"/>
<location filename="../../src/Thread_Process.cpp" line="375"/>
<source>Unknown Album</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="359"/>
<location filename="../../src/Thread_Process.cpp" line="377"/>
<source>Unknown Comment</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="386"/>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="387"/>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="394"/>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="404"/>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProcessingDialog</name>
@ -3069,111 +3094,111 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="450"/>
<location filename="../../src/Dialog_Processing.cpp" line="451"/>
<source>Aborted! Waiting for running jobs to terminate...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="465"/>
<location filename="../../src/Dialog_Processing.cpp" line="466"/>
<source>Encoding: %1 files of %2 completed so far, please wait...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="493"/>
<location filename="../../src/Dialog_Processing.cpp" line="494"/>
<source>Creating the playlist file, please wait...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="503"/>
<location filename="../../src/Dialog_Processing.cpp" line="504"/>
<source>Process was aborted by the user after %1 file(s)!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="503"/>
<location filename="../../src/Dialog_Processing.cpp" line="504"/>
<source>Process was aborted prematurely by the user!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="504"/>
<location filename="../../src/Dialog_Processing.cpp" line="505"/>
<source>LameXP - Aborted</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="504"/>
<location filename="../../src/Dialog_Processing.cpp" line="505"/>
<source>Process was aborted by the user.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="520"/>
<location filename="../../src/Dialog_Processing.cpp" line="521"/>
<source>Process finished after %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="529"/>
<location filename="../../src/Dialog_Processing.cpp" line="530"/>
<source>Error: %1 of %2 files failed. Double-click failed items for detailed information!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="530"/>
<location filename="../../src/Dialog_Processing.cpp" line="531"/>
<source>LameXP - Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="530"/>
<location filename="../../src/Dialog_Processing.cpp" line="531"/>
<source>At least one file has failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="540"/>
<location filename="../../src/Dialog_Processing.cpp" line="541"/>
<location filename="../../src/Dialog_Processing.cpp" line="542"/>
<source>All files completed successfully.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="541"/>
<location filename="../../src/Dialog_Processing.cpp" line="542"/>
<source>LameXP - Done</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="967"/>
<location filename="../../src/Dialog_Processing.cpp" line="978"/>
<source>Playlist creation failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="967"/>
<location filename="../../src/Dialog_Processing.cpp" line="978"/>
<source>The playlist file could not be created:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1037"/>
<location filename="../../src/Dialog_Processing.cpp" line="1048"/>
<source>Warning: Computer will shutdown in %1 seconds...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1041"/>
<location filename="../../src/Dialog_Processing.cpp" line="1042"/>
<location filename="../../src/Dialog_Processing.cpp" line="1052"/>
<location filename="../../src/Dialog_Processing.cpp" line="1053"/>
<source>Cancel Shutdown</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1097"/>
<location filename="../../src/Dialog_Processing.cpp" line="1108"/>
<source>hour(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1098"/>
<location filename="../../src/Dialog_Processing.cpp" line="1102"/>
<location filename="../../src/Dialog_Processing.cpp" line="1109"/>
<location filename="../../src/Dialog_Processing.cpp" line="1113"/>
<source>minute(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1103"/>
<location filename="../../src/Dialog_Processing.cpp" line="1107"/>
<location filename="../../src/Dialog_Processing.cpp" line="1114"/>
<location filename="../../src/Dialog_Processing.cpp" line="1118"/>
<source>second(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1108"/>
<location filename="../../src/Dialog_Processing.cpp" line="1119"/>
<source>millisecond(s)</source>
<translation type="unfinished"></translation>
</message>
@ -3181,12 +3206,12 @@
<context>
<name>ProgressModel</name>
<message>
<location filename="../../src/Model_Progress.cpp" line="118"/>
<location filename="../../src/Model_Progress.cpp" line="122"/>
<source>Job</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Model_Progress.cpp" line="121"/>
<location filename="../../src/Model_Progress.cpp" line="125"/>
<source>Status</source>
<translation type="unfinished"></translation>
</message>

View File

@ -2315,6 +2315,26 @@
</source>
<translation>WARNUNG: Dekodierte Dateigröße übersteigt 4 GB, Probleme sind vorprogrammiert!</translation>
</message>
<message>
<source>Skipped.</source>
<translation>Übersprungen.</translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation>Zieldatei existiert bereits, die Datei wird übersprungen:</translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation>Wenn existierende Dateien nicht übersprungen werden sollen, ändern Sie bitte den Überschreiben-Modus!</translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation>Zieldatei existiert bereits, die Datei wird gelöscht und überschrieben:</translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation>Die existierende Datei konnte nicht gelöscht werden, ein anderer Dateiname wird gewählt!</translation>
</message>
</context>
<context>
<name>ProcessingDialog</name>

View File

@ -2314,6 +2314,26 @@
</source>
<translation>ADVERTENCIA: ¡El tamaño del archivo decodificado supera los 4 GB, pueden producirse problemas!</translation>
</message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProcessingDialog</name>

View File

@ -2324,6 +2324,26 @@ Ouvrir le dossier récursivement...</translation>
</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProcessingDialog</name>

View File

@ -2315,6 +2315,26 @@
</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProcessingDialog</name>

View File

@ -2314,6 +2314,26 @@
</source>
<translation type="unfinished">알림: 디코드 4GB , !</translation>
</message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProcessingDialog</name>

View File

@ -2878,121 +2878,146 @@
<context>
<name>ProcessThread</name>
<message>
<location filename="../../src/Thread_Process.cpp" line="125"/>
<location filename="../../src/Thread_Process.cpp" line="127"/>
<source>Starting...</source>
<translation type="unfinished">Rozpoczynanie...</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="133"/>
<location filename="../../src/Thread_Process.cpp" line="140"/>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="145"/>
<source>Not found!</source>
<translation type="unfinished">Nie znaleziono!</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="166"/>
<location filename="../../src/Thread_Process.cpp" line="178"/>
<source>WARNING: Decoded file size exceeds 4 GB, problems might occur!
</source>
<translation type="unfinished">UWAGA: Plik po zdekodowaniu przekracza 4 GB, mogą wystąpić problemy!</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="174"/>
<location filename="../../src/Thread_Process.cpp" line="186"/>
<source>The format of this file is NOT supported:</source>
<translation type="unfinished">Format tego pliku NIE jest obsługiwany:</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="174"/>
<location filename="../../src/Thread_Process.cpp" line="186"/>
<source>Container Format:</source>
<translation type="unfinished">Format kontenera:</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="174"/>
<location filename="../../src/Thread_Process.cpp" line="186"/>
<source>Audio Format:</source>
<translation type="unfinished">Format dźwięku:</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="175"/>
<location filename="../../src/Thread_Process.cpp" line="187"/>
<source>Unsupported!</source>
<translation type="unfinished">Nieobsługiwany!</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="253"/>
<location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Done.</source>
<translation type="unfinished">Zrobione.</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="253"/>
<location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Aborted!</source>
<translation type="unfinished">Przerwane!</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="253"/>
<location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Failed!</source>
<translation type="unfinished">Niepowodzenie!</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="270"/>
<location filename="../../src/Thread_Process.cpp" line="282"/>
<source>Encoding</source>
<translation type="unfinished">Kompresowanie</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="273"/>
<location filename="../../src/Thread_Process.cpp" line="285"/>
<source>Analyzing</source>
<translation type="unfinished">Analizowanie</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="276"/>
<location filename="../../src/Thread_Process.cpp" line="288"/>
<source>Filtering</source>
<translation type="unfinished">Filtrowanie</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="279"/>
<location filename="../../src/Thread_Process.cpp" line="291"/>
<source>Decoding</source>
<translation type="unfinished">Dekodowanie</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="302"/>
<location filename="../../src/Thread_Process.cpp" line="315"/>
<source>The source audio file could not be found:</source>
<translation type="unfinished">Źródłowy plik dźwiękowy nie został odnaleziony:</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="309"/>
<location filename="../../src/Thread_Process.cpp" line="323"/>
<source>The source audio file could not be opened for reading:</source>
<translation type="unfinished">Źródłowy plik dźwiękowy nie mógł zostać otworzony:</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="335"/>
<location filename="../../src/Thread_Process.cpp" line="351"/>
<source>The target output directory doesn&apos;t exist and could NOT be created:</source>
<translation type="unfinished">Lokalizacja docelowa nie istnieje lu NIE mogła zostać utworzona:</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="343"/>
<location filename="../../src/Thread_Process.cpp" line="360"/>
<source>The target output directory is NOT writable:</source>
<translation type="unfinished">Nie można zapisać do lokalizacji docelowej:</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="353"/>
<location filename="../../src/Thread_Process.cpp" line="371"/>
<source>Unknown File Name</source>
<translation type="unfinished">Nieznana nazwa pliku</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="355"/>
<location filename="../../src/Thread_Process.cpp" line="373"/>
<source>Unknown Title</source>
<translation type="unfinished">Nieznany Tytuł</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="356"/>
<location filename="../../src/Thread_Process.cpp" line="374"/>
<source>Unknown Artist</source>
<translation type="unfinished">Nieznany Artysta</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="357"/>
<location filename="../../src/Thread_Process.cpp" line="375"/>
<source>Unknown Album</source>
<translation type="unfinished">Nieznany Album</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="359"/>
<location filename="../../src/Thread_Process.cpp" line="377"/>
<source>Unknown Comment</source>
<translation type="unfinished">Nieznany Komentarz</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="386"/>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="387"/>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="394"/>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="404"/>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProcessingDialog</name>
@ -3070,111 +3095,111 @@
<translation type="unfinished">Wielowątkowosć włączona: Równolegle wykonywanych jest %1 kodowań!</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="450"/>
<location filename="../../src/Dialog_Processing.cpp" line="451"/>
<source>Aborted! Waiting for running jobs to terminate...</source>
<translation type="unfinished">Przerwano! Czekanie na wyłączenie procesu...</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="465"/>
<location filename="../../src/Dialog_Processing.cpp" line="466"/>
<source>Encoding: %1 files of %2 completed so far, please wait...</source>
<translation type="unfinished">Kompresja: Prosze czekać, jak dotąd wykonano %1 z %2 plików...</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="493"/>
<location filename="../../src/Dialog_Processing.cpp" line="494"/>
<source>Creating the playlist file, please wait...</source>
<translation type="unfinished">Tworzenie pliku playlisty, prosze czekać...</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="503"/>
<location filename="../../src/Dialog_Processing.cpp" line="504"/>
<source>Process was aborted by the user after %1 file(s)!</source>
<translation type="unfinished">Proces został przerwany przez użytkownika po wykonaniu %1 plików!</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="503"/>
<location filename="../../src/Dialog_Processing.cpp" line="504"/>
<source>Process was aborted prematurely by the user!</source>
<translation type="unfinished">Proces został przedwcześnie zakończony przez użytkownika!</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="504"/>
<location filename="../../src/Dialog_Processing.cpp" line="505"/>
<source>LameXP - Aborted</source>
<translation type="unfinished">LameXP - Przerwano</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="504"/>
<location filename="../../src/Dialog_Processing.cpp" line="505"/>
<source>Process was aborted by the user.</source>
<translation type="unfinished">Proces został przerwany przez użytkownika.</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="520"/>
<location filename="../../src/Dialog_Processing.cpp" line="521"/>
<source>Process finished after %1.</source>
<translation type="unfinished">Proces został zakończony po %1.</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="529"/>
<location filename="../../src/Dialog_Processing.cpp" line="530"/>
<source>Error: %1 of %2 files failed. Double-click failed items for detailed information!</source>
<translation type="unfinished">Błąd: %1 z %2 plików nie zostało skompresowanych. Kliknij dwukrotnie na plik aby zobaczyć szczegóły!</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="530"/>
<location filename="../../src/Dialog_Processing.cpp" line="531"/>
<source>LameXP - Error</source>
<translation type="unfinished">LameXP - Błąd</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="530"/>
<location filename="../../src/Dialog_Processing.cpp" line="531"/>
<source>At least one file has failed!</source>
<translation type="unfinished">Przynajmniej jeden plik nie został skompresowany!</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="540"/>
<location filename="../../src/Dialog_Processing.cpp" line="541"/>
<location filename="../../src/Dialog_Processing.cpp" line="542"/>
<source>All files completed successfully.</source>
<translation type="unfinished">Kompresja wszystkich plików zakończona powodzeniem.</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="541"/>
<location filename="../../src/Dialog_Processing.cpp" line="542"/>
<source>LameXP - Done</source>
<translation type="unfinished">LameXP - Zrobione</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="967"/>
<location filename="../../src/Dialog_Processing.cpp" line="978"/>
<source>Playlist creation failed</source>
<translation type="unfinished">Tworzenie playlisty zakończone niepowodzeniem</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="967"/>
<location filename="../../src/Dialog_Processing.cpp" line="978"/>
<source>The playlist file could not be created:</source>
<translation type="unfinished">Playlista nie mogła zostać utworzona:</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1037"/>
<location filename="../../src/Dialog_Processing.cpp" line="1048"/>
<source>Warning: Computer will shutdown in %1 seconds...</source>
<translation type="unfinished">Ostrzeżenie: Komputer zostanie zamknięty za %1 sekund/y...</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1041"/>
<location filename="../../src/Dialog_Processing.cpp" line="1042"/>
<location filename="../../src/Dialog_Processing.cpp" line="1052"/>
<location filename="../../src/Dialog_Processing.cpp" line="1053"/>
<source>Cancel Shutdown</source>
<translation type="unfinished">Anuluj wyłączenie komputera</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1097"/>
<location filename="../../src/Dialog_Processing.cpp" line="1108"/>
<source>hour(s)</source>
<translation type="unfinished">godzinie/ach</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1098"/>
<location filename="../../src/Dialog_Processing.cpp" line="1102"/>
<location filename="../../src/Dialog_Processing.cpp" line="1109"/>
<location filename="../../src/Dialog_Processing.cpp" line="1113"/>
<source>minute(s)</source>
<translation type="unfinished">minutach</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1103"/>
<location filename="../../src/Dialog_Processing.cpp" line="1107"/>
<location filename="../../src/Dialog_Processing.cpp" line="1114"/>
<location filename="../../src/Dialog_Processing.cpp" line="1118"/>
<source>second(s)</source>
<translation type="unfinished">sekundach</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1108"/>
<location filename="../../src/Dialog_Processing.cpp" line="1119"/>
<source>millisecond(s)</source>
<translation type="unfinished">milisekundach</translation>
</message>
@ -3182,12 +3207,12 @@
<context>
<name>ProgressModel</name>
<message>
<location filename="../../src/Model_Progress.cpp" line="118"/>
<location filename="../../src/Model_Progress.cpp" line="122"/>
<source>Job</source>
<translation type="unfinished">Zadanie</translation>
</message>
<message>
<location filename="../../src/Model_Progress.cpp" line="121"/>
<location filename="../../src/Model_Progress.cpp" line="125"/>
<source>Status</source>
<translation type="unfinished">Status</translation>
</message>

View File

@ -2321,6 +2321,26 @@
</source>
<translation type="unfinished">ВНИМАНИЕ: декодированный файл больше 4 ГБ, возможны проблемы!</translation>
</message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProcessingDialog</name>

View File

@ -2878,122 +2878,147 @@
<context>
<name>ProcessThread</name>
<message>
<location filename="../../src/Thread_Process.cpp" line="125"/>
<location filename="../../src/Thread_Process.cpp" line="127"/>
<source>Starting...</source>
<translation>Startar...</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="133"/>
<location filename="../../src/Thread_Process.cpp" line="140"/>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="145"/>
<source>Not found!</source>
<translation>Hittas ej!</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="166"/>
<location filename="../../src/Thread_Process.cpp" line="178"/>
<source>WARNING: Decoded file size exceeds 4 GB, problems might occur!
</source>
<translation>VARNING! Omkodad filstorlek överstiger 4 GB. Problem kan uppstå!
</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="174"/>
<location filename="../../src/Thread_Process.cpp" line="186"/>
<source>The format of this file is NOT supported:</source>
<translation>Det här filformatet saknar stöd i LameXP:</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="174"/>
<location filename="../../src/Thread_Process.cpp" line="186"/>
<source>Container Format:</source>
<translation>Behållarformat:</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="174"/>
<location filename="../../src/Thread_Process.cpp" line="186"/>
<source>Audio Format:</source>
<translation>Ljudformat:</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="175"/>
<location filename="../../src/Thread_Process.cpp" line="187"/>
<source>Unsupported!</source>
<translation>Stöd saknas!</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="253"/>
<location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Aborted!</source>
<translation>Avbruten!</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="253"/>
<location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Done.</source>
<translation>Klar.</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="253"/>
<location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Failed!</source>
<translation>Misslyckades!</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="270"/>
<location filename="../../src/Thread_Process.cpp" line="282"/>
<source>Encoding</source>
<translation>Kodar</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="273"/>
<location filename="../../src/Thread_Process.cpp" line="285"/>
<source>Analyzing</source>
<translation>Analyserar</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="276"/>
<location filename="../../src/Thread_Process.cpp" line="288"/>
<source>Filtering</source>
<translation>Filtrerar</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="279"/>
<location filename="../../src/Thread_Process.cpp" line="291"/>
<source>Decoding</source>
<translation>Avkodar</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="302"/>
<location filename="../../src/Thread_Process.cpp" line="315"/>
<source>The source audio file could not be found:</source>
<translation>Källfilen kan inte hittas:</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="309"/>
<location filename="../../src/Thread_Process.cpp" line="323"/>
<source>The source audio file could not be opened for reading:</source>
<translation>Källfilen kan inte öppnas för läsning:</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="335"/>
<location filename="../../src/Thread_Process.cpp" line="351"/>
<source>The target output directory doesn&apos;t exist and could NOT be created:</source>
<translation>Målmappen finns inte och kan inte skapas:</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="343"/>
<location filename="../../src/Thread_Process.cpp" line="360"/>
<source>The target output directory is NOT writable:</source>
<translation>Målmappen är INTE skrivbar:</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="353"/>
<location filename="../../src/Thread_Process.cpp" line="371"/>
<source>Unknown File Name</source>
<translation>Okänt filnamn</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="355"/>
<location filename="../../src/Thread_Process.cpp" line="373"/>
<source>Unknown Title</source>
<translation>Okänd titel</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="356"/>
<location filename="../../src/Thread_Process.cpp" line="374"/>
<source>Unknown Artist</source>
<translation>Okänd artist</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="357"/>
<location filename="../../src/Thread_Process.cpp" line="375"/>
<source>Unknown Album</source>
<translation>Okänt album</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="359"/>
<location filename="../../src/Thread_Process.cpp" line="377"/>
<source>Unknown Comment</source>
<translation>Okänd kommentar</translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="386"/>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="387"/>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="394"/>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="404"/>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProcessingDialog</name>
@ -3071,111 +3096,111 @@
<translation>Flertrådskörning aktiverad: Kör %1 parallella instanser!</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="450"/>
<location filename="../../src/Dialog_Processing.cpp" line="451"/>
<source>Aborted! Waiting for running jobs to terminate...</source>
<translation>Avbrutet! Väntar att aktiva processer skall avslutas...</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="465"/>
<location filename="../../src/Dialog_Processing.cpp" line="466"/>
<source>Encoding: %1 files of %2 completed so far, please wait...</source>
<translation>Omkodning: %1 fil(er) av %2 bearbetade hittills, vänta...</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="493"/>
<location filename="../../src/Dialog_Processing.cpp" line="494"/>
<source>Creating the playlist file, please wait...</source>
<translation>Skapar spelningslista, vänta...</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="503"/>
<location filename="../../src/Dialog_Processing.cpp" line="504"/>
<source>Process was aborted by the user after %1 file(s)!</source>
<translation>Åtgärden avbröts av användaren efter %1 fil(er)!</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="503"/>
<location filename="../../src/Dialog_Processing.cpp" line="504"/>
<source>Process was aborted prematurely by the user!</source>
<translation>Åtgärden avbröts i förtid av användaren!</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="504"/>
<location filename="../../src/Dialog_Processing.cpp" line="505"/>
<source>LameXP - Aborted</source>
<translation>LameXP - Avbrutet</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="504"/>
<location filename="../../src/Dialog_Processing.cpp" line="505"/>
<source>Process was aborted by the user.</source>
<translation>Åtgärden avbröts av användaren.</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="520"/>
<location filename="../../src/Dialog_Processing.cpp" line="521"/>
<source>Process finished after %1.</source>
<translation>Åtgärden slutförd efter %1.</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="529"/>
<location filename="../../src/Dialog_Processing.cpp" line="530"/>
<source>Error: %1 of %2 files failed. Double-click failed items for detailed information!</source>
<translation>Fel: %1 av %2 filer misslyckades. Dubbelklicka det misslyckade objektet för detaljerad information!</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="530"/>
<location filename="../../src/Dialog_Processing.cpp" line="531"/>
<source>LameXP - Error</source>
<translation>LameXP - Fel</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="530"/>
<location filename="../../src/Dialog_Processing.cpp" line="531"/>
<source>At least one file has failed!</source>
<translation>Minst en fil har misslyckats!</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="540"/>
<location filename="../../src/Dialog_Processing.cpp" line="541"/>
<location filename="../../src/Dialog_Processing.cpp" line="542"/>
<source>All files completed successfully.</source>
<translation>Alla filer korrekt omkodade.</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="541"/>
<location filename="../../src/Dialog_Processing.cpp" line="542"/>
<source>LameXP - Done</source>
<translation>LameXP - Klar</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="967"/>
<location filename="../../src/Dialog_Processing.cpp" line="978"/>
<source>Playlist creation failed</source>
<translation>Kunde inte skapa spelningslista</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="967"/>
<location filename="../../src/Dialog_Processing.cpp" line="978"/>
<source>The playlist file could not be created:</source>
<translation>Spelningslistan kunde inte skapas:</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1037"/>
<location filename="../../src/Dialog_Processing.cpp" line="1048"/>
<source>Warning: Computer will shutdown in %1 seconds...</source>
<translation>Varning! Datorn kommer att stängas av om %1 sekunder...</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1041"/>
<location filename="../../src/Dialog_Processing.cpp" line="1042"/>
<location filename="../../src/Dialog_Processing.cpp" line="1052"/>
<location filename="../../src/Dialog_Processing.cpp" line="1053"/>
<source>Cancel Shutdown</source>
<translation>Avbryt avstängning</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1097"/>
<location filename="../../src/Dialog_Processing.cpp" line="1108"/>
<source>hour(s)</source>
<translation>timma(r)</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1098"/>
<location filename="../../src/Dialog_Processing.cpp" line="1102"/>
<location filename="../../src/Dialog_Processing.cpp" line="1109"/>
<location filename="../../src/Dialog_Processing.cpp" line="1113"/>
<source>minute(s)</source>
<translation>minut(er)</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1103"/>
<location filename="../../src/Dialog_Processing.cpp" line="1107"/>
<location filename="../../src/Dialog_Processing.cpp" line="1114"/>
<location filename="../../src/Dialog_Processing.cpp" line="1118"/>
<source>second(s)</source>
<translation>sekund(er)</translation>
</message>
<message>
<location filename="../../src/Dialog_Processing.cpp" line="1108"/>
<location filename="../../src/Dialog_Processing.cpp" line="1119"/>
<source>millisecond(s)</source>
<translation>millisekund(er)</translation>
</message>
@ -3183,12 +3208,12 @@
<context>
<name>ProgressModel</name>
<message>
<location filename="../../src/Model_Progress.cpp" line="118"/>
<location filename="../../src/Model_Progress.cpp" line="122"/>
<source>Job</source>
<translation>Åtgärd</translation>
</message>
<message>
<location filename="../../src/Model_Progress.cpp" line="121"/>
<location filename="../../src/Model_Progress.cpp" line="125"/>
<source>Status</source>
<translation>Status</translation>
</message>

View File

@ -2314,6 +2314,26 @@
</source>
<translation>警告: 解碼文件大小超過4GB, !</translation>
</message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProcessingDialog</name>

View File

@ -2315,6 +2315,26 @@
</source>
<translation>ПОПЕРЕДЖЕННЯ: Розмір декодованного файла перевищує 4 ГБ, можуть виникнути проблеми!</translation>
</message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProcessingDialog</name>

View File

@ -2314,6 +2314,26 @@
</source>
<translation>警告: 解码文件大小超过4GB, !</translation>
</message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProcessingDialog</name>

View File

@ -101,6 +101,7 @@
<file>icons/shield_exclamation.png</file>
<file>icons/shield_green.png</file>
<file>icons/sound.png</file>
<file>icons/step_over.png</file>
<file>icons/star.png</file>
<file>icons/table_edit.png</file>
<file>icons/table_save.png</file>

BIN
res/icons/step_over.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

View File

@ -30,7 +30,7 @@
#define VER_LAMEXP_MINOR_LO 7
#define VER_LAMEXP_TYPE Alpha
#define VER_LAMEXP_PATCH 1
#define VER_LAMEXP_BUILD 1172
#define VER_LAMEXP_BUILD 1174
///////////////////////////////////////////////////////////////////////////////
// Tool versions (minimum expected versions!)

View File

@ -433,6 +433,7 @@ void ProcessingDialog::initEncoding(void)
for(unsigned int i = 0; i < maximumInstances; i++)
{
startNextJob();
qApp->processEvents();
}
LARGE_INTEGER counter;
@ -733,6 +734,10 @@ void ProcessingDialog::startNextJob(void)
{
thread->setRenamePattern(m_settings->renameOutputFilesPattern());
}
if(m_settings->overwriteMode() != SettingsModel::Overwrite_KeepBoth)
{
thread->setOverwriteMode((m_settings->overwriteMode() == SettingsModel::Overwrite_SkipFile), (m_settings->overwriteMode() == SettingsModel::Overwrite_Replaces));
}
m_threadList.append(thread);
m_allJobs.append(thread->getId());
@ -747,6 +752,12 @@ void ProcessingDialog::startNextJob(void)
//Give it a go!
m_runningThreads++;
thread->start();
//Give thread some advance
for(unsigned int i = 0; i < MAX_INSTANCES; i++)
{
QThread::yieldCurrentThread();
}
}
AbstractEncoder *ProcessingDialog::makeEncoder(bool *nativeResampling)

View File

@ -33,7 +33,8 @@ ProgressModel::ProgressModel(void)
m_iconFailed(":/icons/exclamation.png"),
m_iconSystem(":/icons/computer.png"),
m_iconWarning(":/icons/error.png"),
m_iconPerformance(":/icons/clock.png")
m_iconPerformance(":/icons/clock.png"),
m_iconSkipped(":/icons/step_over.png")
{
}
@ -92,6 +93,9 @@ QVariant ProgressModel::data(const QModelIndex &index, int role) const
case JobPerformance:
return m_iconPerformance;
break;
case JobSkipped:
return m_iconSkipped;
break;
default:
return m_iconFailed;
break;

View File

@ -48,7 +48,8 @@ public:
JobFailed = 3,
JobSystem = 4,
JobWarning = 5,
JobPerformance = 6
JobPerformance = 6,
JobSkipped = 7
};
enum SysMsgType
{
@ -91,4 +92,5 @@ private:
const QIcon m_iconSystem;
const QIcon m_iconWarning;
const QIcon m_iconPerformance;
const QIcon m_iconSkipped;
};

View File

@ -63,6 +63,8 @@ ProcessThread::ProcessThread(const AudioFileModel &audioFile, const QString &out
m_jobId(QUuid::createUuid()),
m_prependRelativeSourcePath(prependRelativeSourcePath),
m_renamePattern("<BaseName>"),
m_overwriteSkipExistingFile(false),
m_overwriteReplacesExisting(false),
m_aborted(false),
m_propDetect(new WaveProperties())
{
@ -127,9 +129,19 @@ void ProcessThread::processFile()
handleMessage("\n-------------------------------\n");
//Generate output file name
QString outFileName = generateOutFileName();
if(outFileName.isEmpty())
QString outFileName;
switch(generateOutFileName(outFileName))
{
case 1:
//File name generated successfully :-)
break;
case -1:
//File name already exists -> skipping!
emit processStateChanged(m_jobId, tr("Skipped."), ProgressModel::JobSkipped);
emit processStateFinished(m_jobId, outFileName, true);
return;
default:
//File name could not be generated
emit processStateChanged(m_jobId, tr("Not found!"), ProgressModel::JobFailed);
emit processStateFinished(m_jobId, outFileName, false);
return;
@ -247,7 +259,7 @@ void ProcessThread::processFile()
bSuccess = fileInfo.exists() && fileInfo.isFile() && (fileInfo.size() > 0);
}
QThread::msleep(500);
QThread::msleep(125);
//Report result
emit processStateChanged(m_jobId, (m_aborted ? tr("Aborted!") : (bSuccess ? tr("Done.") : tr("Failed!"))), ((bSuccess && !m_aborted) ? ProgressModel::JobComplete : ProgressModel::JobFailed));
@ -290,24 +302,26 @@ void ProcessThread::handleMessage(const QString &line)
// PRIVAE FUNCTIONS
////////////////////////////////////////////////////////////
QString ProcessThread::generateOutFileName(void)
int ProcessThread::generateOutFileName(QString &outFileName)
{
QMutexLocker lock(m_mutex_genFileName);
int n = 1;
outFileName.clear();
QMutexLocker lock(m_mutex_genFileName);
//Make sure the source file exists
QFileInfo sourceFile(m_audioFile.filePath());
if(!sourceFile.exists() || !sourceFile.isFile())
{
handleMessage(QString("%1\n%2").arg(tr("The source audio file could not be found:"), sourceFile.absoluteFilePath()));
return QString();
return 0;
}
//Make sure the source file readable
QFile readTest(sourceFile.canonicalFilePath());
if(!readTest.open(QIODevice::ReadOnly))
{
handleMessage(QString("%1\n%2").arg(tr("The source audio file could not be opened for reading:"), readTest.fileName()));
return QString();
handleMessage(QString("%1\n%2").arg(tr("The source audio file could not be opened for reading:"), QDir::toNativeSeparators(readTest.fileName())));
return 0;
}
else
{
@ -317,6 +331,7 @@ QString ProcessThread::generateOutFileName(void)
QString baseName = sourceFile.completeBaseName();
QDir targetDir(m_outputDirectory.isEmpty() ? sourceFile.canonicalPath() : m_outputDirectory);
//Prepend relative source file path?
if(m_prependRelativeSourcePath && !m_outputDirectory.isEmpty())
{
QDir rootDir = sourceFile.dir();
@ -327,21 +342,23 @@ QString ProcessThread::generateOutFileName(void)
targetDir.setPath(QString("%1/%2").arg(targetDir.absolutePath(), QFileInfo(rootDir.relativeFilePath(sourceFile.canonicalFilePath())).path()));
}
//Make sure output directory does exist
if(!targetDir.exists())
{
targetDir.mkpath(".");
if(!targetDir.exists())
{
handleMessage(QString("%1\n%2").arg(tr("The target output directory doesn't exist and could NOT be created:"), targetDir.absolutePath()));
return QString();
handleMessage(QString("%1\n%2").arg(tr("The target output directory doesn't exist and could NOT be created:"), QDir::toNativeSeparators(targetDir.absolutePath())));
return 0;
}
}
//Make sure that the output dir is writable
QFile writeTest(QString("%1/.%2").arg(targetDir.canonicalPath(), lamexp_rand_str()));
if(!writeTest.open(QIODevice::ReadWrite))
{
handleMessage(QString("%1\n%2").arg(tr("The target output directory is NOT writable:"), targetDir.absolutePath()));
return QString();
handleMessage(QString("%1\n%2").arg(tr("The target output directory is NOT writable:"), QDir::toNativeSeparators(targetDir.absolutePath())));
return 0;
}
else
{
@ -349,6 +366,7 @@ QString ProcessThread::generateOutFileName(void)
writeTest.remove();
}
//Apply rename pattern
QString fileName = m_renamePattern;
fileName.replace("<BaseName>", STRDEF(baseName, tr("Unknown File Name")), Qt::CaseInsensitive);
fileName.replace("<TrackNo>", QString().sprintf("%02d", m_audioFile.filePosition()), Qt::CaseInsensitive);
@ -359,19 +377,50 @@ QString ProcessThread::generateOutFileName(void)
fileName.replace("<Comment>", STRDEF(m_audioFile.fileComment(), tr("Unknown Comment")), Qt::CaseInsensitive);
fileName = lamexp_clean_filename(fileName).simplified();
QString outFileName = QString("%1/%2.%3").arg(targetDir.canonicalPath(), fileName, m_encoder->extension());
//Generate full output path
outFileName = QString("%1/%2.%3").arg(targetDir.canonicalPath(), fileName, m_encoder->extension());
//Skip file, if target file exists (optional!)
if(m_overwriteSkipExistingFile && QFileInfo(outFileName).exists())
{
handleMessage(QString("%1\n%2\n").arg(tr("Target output file already exists, going to skip this file:"), QDir::toNativeSeparators(outFileName)));
handleMessage(tr("If you don't want existing files to be skipped, please change the overwrite mode!"));
return -1;
}
//Delete file, if target file exists (optional!)
if(m_overwriteReplacesExisting && QFileInfo(outFileName).exists())
{
handleMessage(QString("%1\n%2\n").arg(tr("Target output file already exists, going to delete existing file:"), QDir::toNativeSeparators(outFileName)));
bool bOkay = false;
for(int i = 0; i < 16; i++)
{
bOkay = QFile::remove(outFileName);
if(bOkay) break;
QThread::msleep(125);
}
if(QFileInfo(outFileName).exists() || (!bOkay))
{
handleMessage(QString("%1\n").arg(tr("Failed to delete existing target file, will save to another file name!")));
}
}
int n = 1;
//Generate final name
while(QFileInfo(outFileName).exists())
{
outFileName = QString("%1/%2 (%3).%4").arg(targetDir.canonicalPath(), fileName, QString::number(++n), m_encoder->extension());
}
//Create placeholder
QFile placeholder(outFileName);
if(placeholder.open(QIODevice::WriteOnly))
{
placeholder.close();
}
return outFileName;
return 1;
}
QString ProcessThread::generateTempFileName(void)
@ -541,6 +590,19 @@ void ProcessThread::setRenamePattern(const QString &pattern)
if(!newPattern.isEmpty()) m_renamePattern = newPattern;
}
void ProcessThread::setOverwriteMode(const bool bSkipExistingFile, const bool bReplacesExisting)
{
if(bSkipExistingFile && bReplacesExisting)
{
qWarning("Inconsistent overwrite flags, reverting to default!");
m_overwriteSkipExistingFile = false;
m_overwriteReplacesExisting = false;
}
m_overwriteSkipExistingFile = bSkipExistingFile;
m_overwriteReplacesExisting = bReplacesExisting;
}
////////////////////////////////////////////////////////////
// EVENTS
////////////////////////////////////////////////////////////

View File

@ -45,6 +45,7 @@ public:
void abort() { m_aborted = true; }
QUuid getId() { return m_jobId; }
void setRenamePattern(const QString &pattern);
void setOverwriteMode(const bool bSkipExistingFile, const bool ReplacesExisting = false);
void addFilter(AbstractFilter *filter);
private slots:
@ -68,7 +69,7 @@ private:
};
void processFile();
QString generateOutFileName(void);
int generateOutFileName(QString &outFileName);
QString generateTempFileName(void);
void insertDownsampleFilter(void);
void insertDownmixFilter(void);
@ -84,6 +85,8 @@ private:
const bool m_prependRelativeSourcePath;
QList<AbstractFilter*> m_filters;
QString m_renamePattern;
bool m_overwriteSkipExistingFile;
bool m_overwriteReplacesExisting;
WaveProperties *m_propDetect;
static QMutex *m_mutex_genFileName;