As it is almost a tradition by now, I do one bigger refactoring per minor release which went somewhat out of hand. 😄
It's main focus was to introduce more const and passing by (const) reference into our code base. Especially the parts of the code concerned with reading and writing XML files did profite a lot since it got more clear what will be changed and what is kept constant. (The only part I did not touched was the Note lifecycle and all corresponding signatures. There is too much to go wrong).
I also killed a singleton: the Playlist, which is now stored as a shared pointer in the Hydrogen class. But when looking at both Playlist and PlaylistEditor I couldn't resist rewriting large parts of them as they needed quite a lot of love.
Most logic for handling Playlist has been moved into the core and is now exposed as OSC commands.
All actions done in the PlaylistEditor can now be undone and redone. (Using its own undo stack).
Songs can be loaded by keyboard selection and pressing Enter key.
Songs can be rearranged using drag and drop.
.h2playlist files can now be recovered from autosave files as well and show the exact same behavior as .h2song files.
In addition, the Synth class was dropped. As it basically just dead code.
As it is almost a tradition by now, I do one bigger refactoring per minor release which went somewhat out of hand. 😄
It's main focus was to introduce more
const
and passing by (const) reference into our code base. Especially the parts of the code concerned with reading and writing XML files did profite a lot since it got more clear what will be changed and what is kept constant. (The only part I did not touched was theNote
lifecycle and all corresponding signatures. There is too much to go wrong).I also killed a singleton: the
Playlist
, which is now stored as a shared pointer in theHydrogen
class. But when looking at bothPlaylist
andPlaylistEditor
I couldn't resist rewriting large parts of them as they needed quite a lot of love.Playlist
has been moved into the core and is now exposed as OSC commands.PlaylistEditor
can now be undone and redone. (Using its own undo stack)..h2playlist
files can now be recovered from autosave files as well and show the exact same behavior as.h2song
files.In addition, the
Synth
class was dropped. As it basically just dead code.