-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
First official version with experimental support for the visualizatio…
…n plugin on Windows. Fixed several critical bugs causing the plugin to crash QMP.
- Loading branch information
1 parent
7170674
commit b79c4b7
Showing
14 changed files
with
128 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,12 @@ | ||
Use qmake or Qt Creator. | ||
|
||
Dependencies: | ||
> libfluidsynth 1.1.4+, Qt5 (not sure whether 4 will work) and RtMidi. | ||
> libfluidsynth 1.1.4+, Qt5 and RtMidi. | ||
|
||
C++11 is required to build the project. | ||
C++11 is required to build the project. Qt4 will not work without | ||
several tweaks. | ||
|
||
To build the default visualization plugin, you need the latest SMELT, | ||
which can be found [here](https://github.com/BearKidsTeam/SMELT). | ||
Some dependencies in the project file are hard-coded paths. You may | ||
have to modify them first. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
# The API documentation of QMidiPlayer for plugin developers | ||
|
||
*This manual is not yet complete. It's only a working draft for the always-changing plugin system in QMP.* | ||
*Handle with care.* | ||
|
||
# 0. Overview | ||
|
||
Plugin for QMidiPlayer is a dynamically-loaded library that exports the symbol "qmpPluginGetInterface". | ||
Before starting developing your own plugin, make sure to have a look at the sample plugin in the "sample-plugin" folder. | ||
|
||
# 1. "QMidiPlayer Plugin SDK" | ||
|
||
SDK for developing QMidiPlayer plugins is merely the "qmpcorepublic.hpp" header found in the "include" directory in | ||
the source tree. It includes classes used by QMidiPlayer's internal plugin infrastructure. | ||
|
||
# 2. Basics for a working plugin. | ||
|
||
First of all, you should make your library distinct from other libraries that are not QMidiPlayer plugins. You can achive | ||
it by exporting the symbol "qmpPluginGetInterface". Specifically, what you should do is to add the following snipplet to | ||
somewhere of your code: | ||
|
||
> extern "C"{ | ||
> EXPORTSYM qmpPluginIntf* qmpPluginGetInterface(qmpPluginAPI* api) | ||
> //semicolon or implementation here. | ||
> } | ||
The EXPORTSYM macro tells the compiler to export the following symbol. qmpPluginIntf is the abstract class which every | ||
plugin class should derive from. The parameter api provides access to QMidiPlayer's plugin API, which should be stored | ||
for future use. | ||
|
||
Next you should create your own plugin class which implements the abstract class "qmpPluginIntf". | ||
|
||
# 3. A Peek into the class "qmpPluginIntf" | ||
|
||
It has 6 public members: one default constructor, one default destructor and four methods: | ||
|
||
- void init() | ||
Called on start up if the plugin is loaded successfully and enabled. | ||
- void deinit() | ||
Called on shutdown if the plugin is enabled. | ||
- const char* pluginGetName() | ||
This function should return the display name of the plugin. | ||
- const char* pluginGetVersion() | ||
This function should return the version of the plugin, which will be shown in the plugin manager. | ||
|
||
Your plugin is expected to register handlers and functionalities when init() is called by the host, | ||
and do clean-up jobs when deinit() is caled. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters