From 7181959675c1658cff313a161f3a96f88a118baa Mon Sep 17 00:00:00 2001 From: JP Cimalando Date: Thu, 28 Jun 2018 01:10:37 +0200 Subject: basic channel description API --- src/adlmidi_private.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/adlmidi_private.hpp') diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 7b59003..858e33d 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -1428,6 +1428,14 @@ public: * @return Offset of the MIDI Channels, multiple to 16 */ size_t chooseDevice(const std::string &name); + + /** + * @brief Gets a textual description of the state of chip channels + * @param text character pointer for text + * @param attr character pointer for text attributes + * @param size number of characters available to write + */ + void describeChannels(char *text, char *attr, size_t size); }; // I think, this is useless inside of Library -- cgit v1.2.3 From 3d60c15ae32219a7b29ccfa8221279f52a55858e Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Wed, 4 Jul 2018 00:06:25 +0300 Subject: Remove "ADLMIDI_UNSTABLE_API" macro. As it's dev version, and lets polish this API to release it in next time --- src/adlmidi_private.hpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/adlmidi_private.hpp') diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 858e33d..770b862 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -35,8 +35,6 @@ # endif #endif -// Require declarations of unstable API for extern "C" -#define ADLMIDI_UNSTABLE_API #ifdef _WIN32 #define NOMINMAX 1 -- cgit v1.2.3 From efe169c36a145696e64892d53d8c90556a9e7b91 Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Wed, 4 Jul 2018 03:42:23 +0300 Subject: Continue documenting, and apply some minor fixes on other files --- src/adlmidi_private.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/adlmidi_private.hpp') diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 770b862..9687023 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -367,7 +367,7 @@ public: /** * @brief Write data to OPL3 chip register * @param chip Index of emulated chip. In hardware OPL3 builds, this parameter is ignored - * @param index Register address to write + * @param address Register address to write * @param value Value to write */ void writeReg(size_t chip, uint16_t address, uint8_t value); @@ -375,7 +375,7 @@ public: /** * @brief Write data to OPL3 chip register * @param chip Index of emulated chip. In hardware OPL3 builds, this parameter is ignored - * @param index Register address to write + * @param address Register address to write * @param value Value to write */ void writeRegI(size_t chip, uint32_t address, uint32_t value); @@ -1182,7 +1182,7 @@ public: /** * @brief MSB Bank Change CC * @param channel MIDI channel - * @param lsb MSB value of bank number + * @param msb MSB value of bank number */ void realTime_BankChangeMSB(uint8_t channel, uint8_t msb); -- cgit v1.2.3 From 15f562fa018cbb7bb20a099f822539b402619a19 Mon Sep 17 00:00:00 2001 From: JP Cimalando Date: Thu, 26 Jul 2018 12:50:47 +0200 Subject: changing synth setup without the full MIDI reset --- src/adlmidi_private.hpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/adlmidi_private.hpp') diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 9687023..4fb3e7f 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -488,6 +488,7 @@ public: void applySetup(); + void partialReset(); void resetMIDI(); /**********************Internal structures and classes**********************/ -- cgit v1.2.3 From 0f69d504792776967b61f8987ad458c48b4a322f Mon Sep 17 00:00:00 2001 From: Christopher Snowhill Date: Sun, 29 Jul 2018 20:52:26 -0700 Subject: Implemented optional soft panning support for the included chip emulators, disabled by default. --- src/adlmidi_private.hpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/adlmidi_private.hpp') diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 4fb3e7f..b9228dc 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -277,6 +277,8 @@ public: bool m_scaleModulators; //! Run emulator at PCM rate if that possible. Reduces sounding accuracy, but decreases CPU usage on lower rates. bool m_runAtPcmRate; + //! Enable soft panning + bool m_softPanning; //! Just a padding. Reserved. char _padding2[3]; @@ -380,6 +382,14 @@ public: */ void writeRegI(size_t chip, uint32_t address, uint32_t value); + /** + * @brief Write to soft panning control of OPL3 chip emulator + * @param chip Index of emulated chip. + * @param address Register of channel to write + * @param value Value to write + */ + void writePan(size_t chip, uint32_t address, uint32_t value); + /** * @brief Off the note in specified chip channel * @param c Channel of chip (Emulated chip choosing by next formula: [c = ch + (chipId * 23)]) -- cgit v1.2.3 From 7a432775f1bcf680c1c77e101ddbc405fb6a70da Mon Sep 17 00:00:00 2001 From: JP Cimalando Date: Mon, 30 Jul 2018 09:25:41 +0200 Subject: hide private symbols --- src/adlmidi_private.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/adlmidi_private.hpp') diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 9687023..eee73ac 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -28,7 +28,7 @@ #ifndef ADLMIDI_EXPORT # if defined (_WIN32) && defined(ADLMIDI_BUILD_DLL) # define ADLMIDI_EXPORT __declspec(dllexport) -# elif defined (LIBADLMIDI_VISIBILITY) +# elif defined (LIBADLMIDI_VISIBILITY) && defined (__GNUC__) # define ADLMIDI_EXPORT __attribute__((visibility ("default"))) # else # define ADLMIDI_EXPORT -- cgit v1.2.3 From 34f42407a2a2e90c2ba45e9e70c86529bd67c418 Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Tue, 31 Jul 2018 01:03:42 +0300 Subject: Fix the initial panning state --- src/adlmidi_private.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/adlmidi_private.hpp') diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 8c219b9..6a8719e 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -801,7 +801,7 @@ public: vibspeed = 2 * 3.141592653 * 5.0; vibdepth = 0.5 / 127; vibdelay = 0; - panning = OPL_PANNING_BOTH; + panning = 64; portamento = 0; portamentoEnable = false; portamentoSource = -1; -- cgit v1.2.3 From 626354e6d686d20c43b4d9aa929b85840e6e1015 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Tue, 31 Jul 2018 02:26:06 +0300 Subject: Fixed MSVC Build of shared library --- src/adlmidi_private.hpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/adlmidi_private.hpp') diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 6a8719e..6fe7ad2 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -144,6 +144,7 @@ typedef BW_MidiSequencer MidiSequencer; #include "adldata.hh" +#define ADLMIDI_BUILD #include "adlmidi.h" //Main API #ifndef ADLMIDI_DISABLE_CPP_EXTRAS -- cgit v1.2.3 From e098e4285af6d565d7b603279ec6e9770ce88436 Mon Sep 17 00:00:00 2001 From: JP Cimalando Date: Tue, 31 Jul 2018 02:31:47 +0200 Subject: fix some warnings --- src/adlmidi_private.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/adlmidi_private.hpp') diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 6fe7ad2..0a7a1bb 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -601,7 +601,7 @@ public: enum { MaxNumPhysChans = 2, - MaxNumPhysItemCount = MaxNumPhysChans, + MaxNumPhysItemCount = MaxNumPhysChans }; /** @@ -858,7 +858,7 @@ public: Sustain_None = 0x00, Sustain_Pedal = 0x01, Sustain_Sostenuto = 0x02, - Sustain_ANY = Sustain_Pedal | Sustain_Sostenuto, + Sustain_ANY = Sustain_Pedal | Sustain_Sostenuto }; uint32_t sustained; char _padding[6]; @@ -999,7 +999,7 @@ public: Mode_GM = 0x00, Mode_GS = 0x01, Mode_XG = 0x02, - Mode_GM2 = 0x04, + Mode_GM2 = 0x04 }; //! MIDI Synthesizer mode uint32_t m_synthMode; -- cgit v1.2.3 From d8394a61e0bf71b41851b4fdf2094ac2614204e0 Mon Sep 17 00:00:00 2001 From: JP Cimalando Date: Thu, 2 Aug 2018 20:19:37 +0200 Subject: add safety check for emulator switching --- src/adlmidi_private.hpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/adlmidi_private.hpp') diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 0a7a1bb..0219c67 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -1472,5 +1472,8 @@ extern void adl_audioTickHandler(void *instance, uint32_t chipId, uint32_t rate) #endif extern int adlRefreshNumCards(ADL_MIDIPlayer *device); +extern bool adl_isEmulatorAvailable(int emulator); +extern int adl_getHighestEmulator(); +extern int adl_getLowestEmulator(); #endif // ADLMIDI_PRIVATE_HPP -- cgit v1.2.3 From 0e2807a9d4c8c900e85c9b33ba96c69a82c58a68 Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Fri, 3 Aug 2018 00:36:20 +0300 Subject: Minor cosmetical changes --- src/adlmidi_private.hpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/adlmidi_private.hpp') diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 0219c67..6bb1dcf 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -1470,10 +1470,31 @@ struct FourChars #if defined(ADLMIDI_AUDIO_TICK_HANDLER) extern void adl_audioTickHandler(void *instance, uint32_t chipId, uint32_t rate); #endif + +/** + * @brief Automatically calculate and enable necessary count of 4-op channels on emulated chips + * @param device Library context + * @return Always 0 + */ extern int adlRefreshNumCards(ADL_MIDIPlayer *device); +/** + * @brief Check emulator availability + * @param emulator Emulator ID (ADL_Emulator) + * @return true when emulator is available + */ extern bool adl_isEmulatorAvailable(int emulator); + +/** + * @brief Find highest emulator + * @return The ADL_Emulator enum value which contains ID of highest emulator + */ extern int adl_getHighestEmulator(); + +/** + * @brief Find lowerest emulator + * @return The ADL_Emulator enum value which contains ID of lowerest emulator + */ extern int adl_getLowestEmulator(); #endif // ADLMIDI_PRIVATE_HPP -- cgit v1.2.3