- Fixed WaveOut::Stop() to only reset the output device, not close it,
to prevent cracking while seeking and also get us a step closer to
gapless playback.
- Fixed GlobalHotkey handling so key presses aren't propagated to the
focused control after they're handled
- Removed old, unused state from SimpleScrollAdapter
- Fixed crash on exit when using the "X" button by registering a custom
close handler with PDCurses.
- Transport: cleaned up memory management model -- shared_ptr<Player>
was causing lots of unnecessary complication. The players are
encapsulated, so switched to just Player*
- Player's destructor wasn't virtual! Caused some strange problems.
- Integrated next track loading in PlayerService!
- Removed TrackFactory, InMemoryTrack
- Tightened up threading model in LibraryTrack
- Removed a bunch of comments that were not really useful
- Added stubbed PlaybackService
while paused, and space to pause/resume
* Better keynames for Track album/artist/genre (don't reuse ID keys)
* No flashing when switching between metadata category types
new types make it possible for layouts to be stacked on top of each
other with correct focus behavior.
- Tweaks to the volume and time slider to make them more accurate.
- Fixed a bug in the main event loop to re-check focus to make sure it
hasn't changed under the hood since the last pass through.
- Updated transport volume control style
- Cleaned up and rearranged some input handling so we can better support
nested layouts in the future
- Tweaked Window to use panels so draw ordering can be vaguely
controlled, at least as well as vanilla ncurses
- Started working on overlay functionality, so layouts can do things
like display dialogs.
logic in the Indexer.
- Created a new IKeyHandler for windows that want to receive keyboard
events but aren't necessarily input fields.
- Added some hacked up code to get playback working in the
TrackListView. This functionality will be extracted to LibraryLayout
in the near future.
their parent, in a sometimes buggy and unpredictable ways. always use
newwin() and ensure redraws happen from the bottom up.
- Optimized redraw to not immediately call doupdate(), but rather wait
until the end of the runloop and call it once. This may cause buggy
behavior, but seems fine now...
- Cleaned up some of the requery logic in CategoryListView,
TrackListView
- Started working on the message-queue related functionality that will
be required for clean callback logic
- Reduced the main loop timeout delay