Age | Commit message (Collapse) | Author |
|
Yeah, I see it lacks A LOT OF things: std::vector lacks .data() member, std::map lacks .count() member, there is no any std::stringstream implementations, etc.
SOLUTION: Try to use STLPort to provide missing STL support for this compiler
|
|
|
|
- Move most of inline classes methods into own CC file
- Move Input into own header with own CC file to share it with the puzzle game
- Created virtual destructors and resolved weak vtable trouble between of Tetris's classes
- Remove static declarisons of Tetris class. Instead, let it be member of UserInterface
- Fixed forgot note-offs while sorting events row with zero length notes
- Fixed crash caused by unsafe access by reference to element of array that was modified/reallocated one or multiple times
- Stabilize dealing with zero-length notes
|
|
|
|
Feel free to create something like GS or XG bank :wink:
|
|
- Attempt to support hardware OPL and add build of classic ADLMIDI into CMake
- Added new API functions
- Added C++ Extras are needed for classic ADLMIDI player
- Error string is no more static. Static variant is kept for initialization errors only.
|
|
|
|
|
|
By default every flag will have "auto" type which means mode will be set in dependence on a bank.
|
|
|
|
Also a small optimizing:
- Convert Note-ON with zero velocity into Note-OFF event
- Don't re-sort row, just put note-off into begin of the row instead
|
|
|
|
|
|
|
|
# Conflicts:
# libADLMIDI-test.pro
# src/adlmidi.cpp
# src/adlmidi_private.hpp
|
|
|
|
That will give ability to implement same ADLMIDI player as originally, but keep library be fully independent from original console tool.
|
|
- Added more detailed error information while parsing MIDI file
- Added abiltiy to retrieve loop points time positions
- Added ability to change playing tempo by giving multiplier
- Removed old commented code
TODO:
- implement meta-information store and a way to retreive it
- implement hook-ability for every MIDI event
- implement ability to mute/solo every channel
|
|
Loop events are converting into in-library own types are compact, easier and faster to process without having to re-parse markers or have any extra code in standard event handlers
|
|
- MidiTrackPos renamed into MidiTrackRow
- TempoMarker renamed into TempoChangePoint
|
|
This will prevent possible crash on attempt to parse wrong or damaged MIDI file
|
|
- Move all private variables into MIDIplay class away from public ADL_MIDIPlayer structure
- Comment out most of legacy code
- Implement new-style ReadVarLenEx for error-checked var-len value reading process
TODO: Stabilize this and implement missing fields and API calls (meta-data retreiving)
|
|
Testing and stabilizing is needed
|
|
|
|
|
|
|
|
|
|
seekability
|
|
|
|
|
|
All parsed events will be stored into special time marked containers and will be sorted by type to avoid possible issues caused by incorrect order of meta or note-on/off events, etc.
Time markers are needed to easier detect seconds position to seek.
TODO: Fix IMF playback
|
|
|
|
(Issue #26)
|
|
|
|
|
|
* Smooth finalizing of song when loop is disabled (old ugly hack has been removed :wink:)
* Added an ability to reset song position to begin (very helpful when song reaches the end)
* Avoided possible crashes on attempt to fetch sample data without opening of MIDI file
|
|
|
|
TODO: Fix support for real 4-operator support for dynamical instruments which now are silent. 2-op and pseudo-4-op still work fine.
|
|
Make function for every real MIDI event which we are able to call independently from the common events stream.
MIDI streamer will be moved into own module which will process MIDI files and pass events into realtime module.
Then, make public API which will allow use realtime MIDI for making drivers and player plugins.
|
|
|
|
|
|
|
|
because it is not supported on Android NDK, yet (even C++11 usagae is enabled!)
|
|
other code has been moved into separated files
|