Commit Graph

313 Commits

Author SHA1 Message Date
6a862013eb Added lamexp_init_process() function, which can be used to setup a QProcess object. 2013-10-29 02:05:43 +01:00
083af203a3 Added "tick" sound when switching tabs. 2013-10-28 00:26:54 +01:00
1b519d48c7 Fix copying a file's Meta Info into the Meta Data tab: Retain original "position" value rather than overwriting it. 2013-10-25 17:53:47 +02:00
dd98a78fad Improved LameXP message logging code. This also fixes an invocation of the invalid message handler, when the console window gets closed unexpectedly. 2013-10-25 15:38:43 +02:00
7b016d5fec Updated license info. 2013-10-23 22:25:04 +02:00
b54886f242 Introduce QUTF8 macro and replace ".toUtf8().constData()" everywhere. 2013-10-21 15:00:55 +02:00
e13e6b7fec Updated changelog and removed some debug code. 2013-10-18 22:12:55 +02:00
8a64624ba4 Use the THROW macro instead of plain "throw" in the complete project. 2013-10-18 21:37:40 +02:00
414b261c0d Improved tool extraction code in InitializationThread. Also implemented better exception handling. 2013-10-18 20:49:22 +02:00
449e438787 Use AudioFileModel_MetaInfo instead of AudioFileModel where appropriate. Also updated MetaInfoModel to work with a AudioFileModel_MetaInfo (not only with a full AudioFileModel). 2013-10-13 00:21:37 +02:00
0435637c75 Fix compilation after previous changes to AudioFileModel in previous commit. 2013-10-12 22:55:41 +02:00
81de5f2300 Implemented AbstractEncoderInfo for the AAC encoders too. 2013-10-07 02:28:01 +02:00
24217c3b71 More code refactoring: Moved most of the Win32 API dependencies into wrapper functions in Global.cpp, which greatly reduces platform-specific includes. 2013-10-07 00:01:15 +02:00
7602317652 Some code-clean up. Removed "Windows.h" include from "Global.h", because most source files won't need the Win32 API stuff. Also got rid of some Windows 2000 compatibility cruft. 2013-10-06 19:28:12 +02:00
33b55de005 Tweaked default values for encoder settings. 2013-10-03 19:14:24 +02:00
df1da97f4e Implemented AbstractEncoder for the remaining encoders, except AAC for now. 2013-10-03 18:48:07 +02:00
d1cdbd77cd Refactored EncoderRegistry::createInstance() method to handle all common encoder parameters at a single place. Also added function to load/store the custom parameters. 2013-10-03 17:01:37 +02:00
4faf3a2e40 More refactoring of the SettingsModel. Also moved encoder reset function from MainWindow to EncoderRegistry. 2013-10-03 15:56:10 +02:00
d76c4a1702 Implemented AbstractEncoderInfo for some more encoders. Remaining encoders not yet working. 2013-10-02 19:17:33 +02:00
6c9e3c562f Refactored Main window to use AbstractEncoderInfo rather than having all the encoder-specific information hardcoded in the GUI code. Also much improved EncoderReistry class and some clean-up in SettingsModel class. 2013-10-02 16:39:26 +02:00
1f241a1045 Refactored AAC encoder selection code. 2013-07-14 19:45:28 +02:00
94d6d16ce3 Added GUI option to reset all encoder settings. 2013-07-14 18:14:26 +02:00
822e1e1ffb Implemented caching for settings model. 2013-07-14 17:13:01 +02:00
7771e1127e Silenced some debug outputs. 2013-07-11 00:37:23 +02:00
88142733d2 Fixed a copy&paste bug that cause the output directory to be reset when actually the most recent input directory should be reset. 2013-07-09 22:34:06 +02:00
9323260e32 The encoder configuration (rc-mode, bitrate, quality-level) is now maintained *separately* for each encoder. This was quite a massive change and needs more testing! Also a bug where OggEnc quality modes -2 and -1 would be clipped 0 has been fixed. 2013-07-07 23:49:29 +02:00
7ee53d4a55 Added new source file view overlay icon. 2013-06-16 22:07:28 +02:00
1c21516604 Got rid of a superfluous Beep() that was triggered on application startup. 2013-05-02 23:02:02 +02:00
601a4a6d7e Some tweaks to previewContextActionTriggered() function. 2013-04-24 23:58:07 +02:00
62d8bd9376 Updated web-site links. 2013-03-17 21:50:29 +01:00
62af2f575e Synced MP3 algorithm quality settings to LAME manual. Now we only use values 9, 7, 3 and 0. Also note that, in VBR mode, there are only two settings (9-5 and 4-0). 2013-03-13 22:59:54 +01:00
00d531f178 Improved handling of the VBR parameter for AAC encoders. 2013-02-26 21:24:48 +01:00
a69a1f6dbe Improved lamexp_themes_enabled() function. 2013-02-25 23:12:14 +01:00
bd0a370aee Welcome to year 2013 ;-) 2013-02-08 23:57:50 +01:00
f68523efd6 Properly handle plurals in translation files. 2013-01-23 23:25:31 +01:00
3b99433226 Expose "disable resampling" option for Opus decoder in the GUI. 2013-01-18 02:42:37 +01:00
4a8dd85d7e Fix executable name for OpusEnc. 2013-01-14 00:36:54 +01:00
cb042bbf3c Added new function to detect the current date. Slightly more robust against manipulations. 2013-01-12 01:53:43 +01:00
f689ce5646 Some style-specific tweaks. 2012-12-19 23:43:27 +01:00
a48dfadc98 Added "folder up" action to the context menu of the "output folder" tab. 2012-12-14 23:50:56 +01:00
e21c61788e Don't update buttons when output folder view is disabled. Also slightly changed "folder up" icon. 2012-12-14 01:20:23 +01:00
12db5d2c81 Added "Folder Up" button to the "Output Folder" tab. Also some code refactoring. 2012-12-14 00:34:10 +01:00
7077650bb6 Switched the method of how the Designer UI file is used in the MainWindow class to "The Single Inheritance Approach" (with "Using a Pointer Member Variable"). This is the method which Qt recommends for large projects. 2012-12-04 01:35:48 +01:00
c220a0b73f Updated Opus encoder/decoder libraries to v1.1.x and Opus-Tools to v0.1.5 (2012-11-23). Also removed obsolete Opus options. 2012-11-23 21:03:59 +01:00
07dfd3211a Added an option to filter the progress model entries. If filter is enabled, only progress items that match the filter will be shown in the TableView. 2012-11-11 18:33:55 +01:00
4d3bce8fc3 Added option for "Overwrite Mode" (keep both, skip file, replace) to "Advanced Options" tab. Does not do anything yet. 2012-11-08 00:42:55 +01:00
eb75c942ee Bump version. 2012-10-19 21:05:33 +02:00
a2fd0f2460 Added an "About..." entry to the system menu. 2012-10-17 23:34:42 +02:00
61d440303b Small code clean-up. 2012-10-15 00:41:38 +02:00
4ed70b7bea If a QM file is used instead of a built-in translation, the QM file will now be remembered. Also the translation system can now be re-initialized by pressing CTRL+F5 in the Main window. 2012-10-14 22:22:30 +02:00
50e9d01cfb Now using rand_s() to generate random numbers, which doesn't need a seed. Falling back to qsrand() + qrand() on platforms that don't support rand_s(). 2012-10-13 12:36:41 +02:00
3fc27a2e17 Slightly modified license checking code. 2012-10-10 23:01:58 +02:00
057cb6fe4f Some optimizations in GUI resize code. 2012-09-20 22:52:52 +02:00
a4e78633e6 Fixed a regression in 3e18116dd5. 2012-09-07 02:14:29 +02:00
8d6774ba24 Updated some URL string. 2012-08-20 22:23:38 +02:00
0deb759096 Updated F.A.Q. document. 2012-08-02 23:32:21 +02:00
87ebf07930 Removed a superfluous MessageBeep(). 2012-07-31 21:03:43 +02:00
36c8ba7822 Some more refactoring of the event filter functions: De-uglify the "global" event filter function by using more fine-grained filter functions. 2012-07-30 21:44:44 +02:00
3e18116dd5 Added "custom parameters" options for Opus. Also added a "help" button for all "custom parameters" edit boxes, which will simply show the CLI help screen. 2012-07-29 22:55:02 +02:00
c095bbee95 Some refactoring of the macros. Use the "do {...} while(0)" template where it makes sense. 2012-07-29 19:13:58 +02:00
d44c57e009 Updated Opus binaries. Now compiled with runtime CPU-detection. Also we now have builds with "experimental encoder perceptual tuning" from the "exp_analysis7" branch, enabled by default. 2012-07-29 16:46:01 +02:00
278f9091fb Replaced the Opus encoder/decoder binary wit custom binaries that support UTF-8 file names and flush the console output properly + expose more Opus encoder options in the GUI. 2012-07-21 19:16:12 +02:00
fcceeeaaac Added support for Opus Audio Codec, based on Opus-Tools v0.1.3 (2012-07-10) by Xiph.org/Mozilla 2012-07-20 23:19:08 +02:00
30bc239cd8 Now using our own command-line parser, based on GetCommandLineW() + CommandLineToArgvW , instead of using QApplication::arguments(). This is less portable, but Qt's internal command-line parser has some rather strange behavior with processing certain characters. As a result, with Qt's command-line parser, some path names passed to LameXP got screwed up! Specifically "C:\Some Path\''Foo''.mp3" got mangled to "C:\Some Path''Foo''.mp3", i.e. the Backslash disappeared! Should be fixed now. 2012-06-22 15:49:56 +02:00
accee3da7a When generating the initial output-folder name for the Cue Sheet dialog, make sure there is no folder *or* file of that name yet. The previous code did check for folders only! 2012-06-21 18:31:36 +02:00
a291771153 Now using a separate QSemaphore to limit the number of tasks in the queue of the QThreadPool. Instead of starting exactly as many task as there are threads in the pool and adding a new task only after a running one finished, we will now keep a fixed number of tasks in the queue (currently hardcoded to 32). Since there always will be more tasks left in the queue than there are threads in the pool, we ensure that no thread will ever become idle. Might be slightly faster than the "old" approach. 2012-05-25 02:24:44 +02:00
428342af21 Fixed HTML code, need to escape the ampersand. 2012-05-20 23:44:50 +02:00
23165c55a0 Some small updates to the file analyzer benchmark code. 2012-05-15 21:34:20 +02:00
c18785ce1e Changed the method to synchronize the analyzer threads: We now use QSet to maintain a list of the thread id's of all threads that are still running - instead of only recording the highest thread id that has finished. This way a thread can now actually check if there still is any running thread with a lower thread id. Before thread n could only check if thread n-1 has finished yet or not. As a result we can relax the waiting now. Only threads that want to emit a file will wait for the "previous" threads to finish. 2012-05-14 00:50:16 +02:00
72e8558b5f Added progress indicator to CueSheet import thread. 2012-05-06 23:58:18 +02:00
e13b93f51b Implemented progress indicator for the working banner. 2012-05-06 04:57:00 +02:00
a7a776ed82 Implemented a method to disables update signals from the FileList model. This will significantly speed-up adding a lot files, but comes with the drawback that updates won't be visible immediately. 2012-05-05 21:56:14 +02:00
9481029960 Make it possible to remove items with the DEL key. 2012-04-19 00:56:04 +02:00
20a9e2632b Added one missing NOBR(). 2012-04-16 18:52:45 +02:00
48a23c27d7 Added a new configuration for initial Qt 5.0 support. Needed a few code-changes and workarounds. Highly experimental! 2012-04-11 00:44:40 +02:00
f05365e383 Fixed a few memory leaks found by VLD. 2012-04-06 23:15:58 +02:00
d16a116a1d Fix potential memory leak: According to the docs, setModel() creates and sets a new SelectionModel, so we need to remember and delete the "old" SelectionModel. 2012-04-06 16:15:19 +02:00
65423ba125 Don't check for elevation on Wine. It seems Wine always runs the process elevated (tested under Wine 1.4 on Ubuntu 12.04). 2012-04-05 16:24:33 +02:00
b3df635784 Changed creation of QFileSystemModel. Object will now be created when the user first visits the "Output Folder" tab. Also added option to "refresh" the directory outline, which will effectively destroy and re-create the QFileSystemModel in order to discard all data that may be cached. 2012-04-05 15:24:45 +02:00
6dca891474 Slightly changed cache handling. 2012-03-31 22:20:07 +02:00
602e1691c4 Various tweaks to improve the QFileSystemModel performance. Also slightly improved the initialization. 2012-03-30 03:35:43 +02:00
158588b3ec Some code refactoring and clean-up. 2012-03-29 19:08:33 +02:00
78c73d6d6e Some improvement of the previous commit. 2012-03-29 03:22:24 +02:00
9b41e9c6a9 New workaround to focus the selected item in the "output folder" view: As the focus will get lost again when the QFileSystemModel asynchronously loads a directory, we need to focus again on each directory loaded. Though we must stop focusing on the selected item, as soon as the user expands a folder. Otherwise the view would scroll unexpectedly... 2012-03-29 01:32:47 +02:00
47f0f1629c Some tweaks to the initialization of the QFileSystem model. 2012-03-28 02:21:34 +02:00
28f7a0cd50 Improved output folder LineEdit. 2012-03-27 22:46:01 +02:00
1738ea5b6e Added button to edit the current output path in a simple LineEdit control. 2012-03-26 22:02:11 +02:00
1d52b628d1 Show which AAC encoder is being used in the GUI. 2012-03-06 22:29:55 +01:00
3630e54f4e Slightly improved "announce" message box. 2012-01-24 01:19:09 +01:00
f857054dda Added support for importing Meta tags from a CSV files. 2012-01-04 21:10:33 +01:00
8e65917d9c Added support for exporting Meta tags to a simple CSV file. 2012-01-04 03:23:07 +01:00
9b687fff9a Happy New Year 2012! 2012-01-02 00:52:27 +01:00
1f001a65e2 Better handling of system shutdown. Now using the Qt event system to broadcast a special event when the system is going to shutdown (i.e. WM_QUERYENDSESSION or WM_ENDSESSION). This gives each top-level widget the chance to react to the system shutdown *before* we return from the message handler. Doing any clean-up after returning from the message handler is impossible, because Windows will kill the process immediately after WM_ENDSESSION has been processed. Note that Windows XP (and earlier) will NOT send WM_QUERYENDSESSION or WM_ENDSESSION to processes that have a console attached! Therefore, if we have a debug console attached, we cannot do anything on these systems. Our process will be killed without any notification...
Also improved LameXP's IPC mechanism: There now are several slots for IPC-commands in the shared memory area ("queue support"). This way, the sender can post several commands in sequence without getting blocked. The receiver can process those at a later time.
2011-12-29 14:42:20 +01:00
db587fe228 Prevent some more dialogs from blocking a quick system shutdown. 2011-12-27 13:51:01 +01:00
d574745043 Restrict bitrate selector for dcaenc to a sane range. It seems everything above 4096 kbps will fail, even with 6 channels. 2011-12-23 02:29:06 +01:00
a0a29b9551 Experimental support for dcaenc, by Alexander E. Patrakov <patrakov@gmail.com>. 2011-12-22 21:53:25 +01:00
683b7a82a5 QDesktopServices::openUrl() fails horribly, if we try to explore a folder like "C:\Foo\Bar" while there is a file "C:\Foo\Bar.exe". Going back to ShellExecute() for now. 2011-12-19 02:09:45 +01:00
97170324e3 Added "Ignore" button to message box. 2011-12-18 18:19:14 +01:00
c49ce7e530 Artwork can now be changed by double-click. 2011-12-18 15:19:28 +01:00
44da665abc Force column resize, after an item in the source file list has been edited. 2011-12-17 22:01:42 +01:00