aboutsummaryrefslogtreecommitdiff
path: root/qmidiplayer-desktop/qmpmainwindow.cpp
AgeCommit message (Collapse)Author
2023-11-09Fix lingering notes with newer fluidsynth versions.Gravatar Chris Xiong
2021-11-07Expose synth.device-id as an option.Gravatar Chris Xiong
2021-11-07Set device id of fluidsynth to 16, as used by most GS synths.Gravatar Chris Xiong
(This should really be a new option...) Also strip the marker bytes of sysex messages before sending to Fluidsynth. Someone didn't read the docs before coding.
2021-01-07new_fluid_audio_driver2 doesn't work for any audio drivers available on Windows.Gravatar Chris Xiong
whoops. another opportunity to inject my crappy code into fluidsynth though.
2021-01-07Wait voice now checks for output level instead of polyphony.Gravatar Chris Xiong
Fluidsynth sometimes screw up the number of currently sounding voices.
2020-12-14Add unified interface for retrieving playback status.Gravatar Chris Xiong
This should make several methods obsolete, however I'm too lazy to migrate them right now. So one more item on the todo list I guess.
2020-11-11Don't spam qmpmidioutfluid everywhere.Gravatar Chris Xiong
Also stop using stuff removed from Qt 6 (not yet done).
2020-10-14fix: windows buildGravatar Gary Wang
2020-08-05I can still code!Gravatar Chris Xiong
Next / Prev track is now selected based on the current track being played rather than the selected track in the playlist window. Also fixed stupid a mistype.
2020-05-12Stop using a dumber version of QRect().Gravatar Chris Xiong
This is going to break old configuration, so bump QMP_CONFIGURATION_FILE_REV.
2020-05-12Format EVERYTHING.Gravatar Chris Xiong
Hopefully this will make the source code less horrendous and actually readable. The command used was: ``` astyle --suffix=none --style=allman --attach-extern-c --attach-closing-while --indent-switches --indent-after-parens --pad-oper --pad-header --unpad-paren --align-pointer=name --recursive './*.cpp,*.hpp' ```
2020-04-29Decouple CMidiPlayer and qmpMidiOutFluid.Gravatar Chris Xiong
Visualization renderer should no longer depend on the fluidsynth library. Reworked the "wait voice" option: now it only takes effect if an automatic track switch happens. Actually process events while waiting for async operation to finish.
2020-04-20Move Gain to the FluidSynth section.Gravatar Chris Xiong
2020-04-19Legacy code massacre!Gravatar Chris Xiong
Complete reconstruction of the settings infrastructure. All options are now registered using a revamped option API. Legacy configuration files are no longer compatible. Please make a backup.
2020-01-16Seeking while paused no longer breaks playback completely.Gravatar Chris Xiong
"main.seek" callbacks are now invoked after the player has done seeking, fixing incorrect channel info in simple visualization after seeking. Use QT_STRINGIFY.
2019-12-02No more creepy blank action buttons that cause crashes if clicked.Gravatar Chris Xiong
If a plugin has been removed and the toolbar is reconfigured afterwards, a blank button will appear in the toolbar, which will cause a crash when clicked.
2019-11-11New UI hook "main.seek". Fix SysExc. message sending. API documentation update.Gravatar Chris Xiong
Simple visualization no longer have notes stuck after seeking. System exclusive messages longer than 256 bytes are now sent correctly.
2019-10-07A less stupid way to save the soundfont list.Gravatar Chris Xiong
Old soundfont list will be ignored. Stop using widgets in the soundfont table. The soundfont table is no longer exposed.
2019-10-05Replaced the option "default output device" with a more powerful one.Gravatar Chris Xiong
Old code for default output device completely removed.
2019-09-16Use QCommandLineParser to parse arguments.Gravatar Chris Xiong
New argument for loading plugins from given files. Use functor whenever possible in QObject::connect. A little bit of code cleanups.
2019-09-13CMake. It's happening.Gravatar Chris Xiong
Added a new build system based on CMake. Minor code cleanups. This probably breaks building with QMake on multiple platforms. And of course the new CMake support isn't tested thoroughly. But it's finally happening.
2019-09-10We refactorin', eh? Hell yeah.Gravatar Chris Xiong
(Almost) Completely rewritten qmpChannelsWindow, one of the oldest component, now with a dedicated data model. Removed dumb design (CMidiPlayer::getChstates). Now QMidiPlayer requires C++14 to build. More refactoring like this coming up soon.
2019-07-10Should no longer freeze at end of playback.Gravatar Chris Xiong
2019-06-18Device initialization file implementation (part 1).Gravatar Chris Xiong
Added UI for external device configuration. Instrument mapping portion of the device intialization file is now working. Fixed a few spots where return value of getChannelPreset() is ignored. Fixed layout of the preset selection dialog.
2019-05-26Major code refactor continued and (mostly) concluded.Gravatar Chris Xiong
Removed all references to ICallback in official plugins. New flag field in SEvent. Further type usage corrections.
2019-05-25Massive code refactor en cours!Gravatar Chris Xiong
Less complain from compilers: - use nullptr instead of NULL - use types for event fields - explicit type casting added Stop saving parameters of meta events in p1/p2 fields of SEvent. callback_t now uses std::function, deprecating ICallback. Not recommended for daily usage, or even testing: the code refactor is still a work in progress.
2019-04-22New development cycle!Gravatar Chris Xiong
Partially reintroduce High DPI handling. Pressing enter when a preset is focused now opens the preset selection dialog. Close all functionality windows before shutting down. Temporary fix for switching all channels of an external synth to mono mode unintentionally. And the most important one of them all: simple visualization! I'm ditching the 0.8.6 cycle because there was no clear goal for that release now (as the OPL3 emulation is now delayed indefinitely). In contrast, the 0.8.7 release has a pretty good-looking feature set mainly focused on improving support for external synthesizers: - Per-device initialization profile. - Instrument mapping files. - And a simple visualization ~~for showing off your external synthesizers~~. As always no ETA is set, nor will I promise the implementaion of all the features listed above.
2019-03-13Set preset bank correctly in XG mode.Gravatar Chris Xiong
Removed High DPI handling code. Good luck to Windows users out there. Skulpture style: dials are no longer blurred if scaled.
2019-01-25Fixed a crash caused by improper preset probing.Gravatar Chris Xiong
Further ensure CC#8 is initialized correctly. Minor string table update.
2019-01-24Migrated to fluidsynth 2.x.Gravatar Chris Xiong
Moved to mxe for Windows build. Fixed default value for CC#8.
2018-03-19Unified meta event reading code, fixing #6.Gravatar Chris Xiong
Fixed playlist dialog behaving oddly.
2017-10-18Fix inconsistency and build errors.Gravatar Chris Xiong
2017-10-18API changes and crash fixes.Gravatar Chris Xiong
Details in the changelog.
2017-08-22Windows type of functionality windows is now Qt::Dialog.Gravatar Chris Xiong
Initialization fluidsynth asynchronously. Minor documentation update.
2017-06-22Minor bug fixes.Gravatar Chris Xiong
SMF reader finally takes chunk length into account. Do not prepend sysex header to F0h sysex. Let the readers do it. File readers code cleanups and refined error messages.
2017-06-21Fixed FTBFS on Windows.Gravatar Chris Xiong
Fixed the default output device option. Seeking now restores CC values correctly.
2017-06-21Complete rewrite of the MIDI mapper.Gravatar Chris Xiong
Enforces single fluidsynth instance. Documentation update. Minor changes to make lite version work.
2017-06-16Code refactoring and fix to memory leaks.Gravatar Chris Xiong
2017-02-13Minor bug fixes. #4 is now addressed.Gravatar Chris Xiong
2017-02-13Fix pitch bend range handling.Gravatar Chris Xiong
Allow registering a string option as file path. Provide an easier way to set path values in options. Revert to old geometry storage mechanism and improved it. Hope this one will work on Windows. Make the time slider less ugly.
2017-02-12UI revolution cont'd. Powered by @BLumia.Gravatar Chris Xiong
Expose new APIs to plugin developer. Use svg icons.
2017-02-12New functionality API. Port built-in features to the new API.Gravatar Chris Xiong
Start the revamp of the main Window. Credit of the new design goes to @BLumia.
2017-02-10Road to standardize: use two parameters for pitchbend.Gravatar Chris Xiong
Documentation. Minor bug fix.
2017-02-10Fix building on Windows.Gravatar Chris Xiong
Behavior changes: 1. DnD into the main window now causes the dropped file to play. 2. Switch back to w32usleep to increase bpm accuracy. 3. Scan for plugins in application folder (in Windows), not in the working directory.
2017-02-08First steps for the file reader API.Gravatar Chris Xiong
API additions and changes. Fixed wrong button shown when started from file.
2016-09-23Add a set of icons for dark themes and a option to change the icon theme.Gravatar Chris Xiong
2016-06-03Add the "restart fluidsynth" action.Gravatar Chris Xiong
2016-05-29Allow disabling soundfonts in the soundfont setting tab.Gravatar Chris Xiong
2016-05-24Correct return result of API functions when text encoding is set to Unicode.Gravatar Chris Xiong
Use QPointer to store pointer to dialogs to avoid crashes. (However crashes related to dbus are still not resolved.)
2016-05-24Add seeking with arrow buttons in visualization.Gravatar Chris Xiong