casey
4d7aa33075
Added proper support for disc number as a first-class field on Track.
2016-06-03 22:22:45 -07:00
casey
52d01ffb7b
- A bit of Transport.h header cleanup
...
- Ensure fields are using the correct keys for queries and data access
(we were using ALBUM_ID, ARTIST_ID, GENRE_ID incorrectly).
2016-06-03 21:05:01 -07:00
casey
b286d83c78
- Ensure NowPlayingLayout always scrolls to the playing item when shown
...
- Fixed some resize bugs in LibraryLayout
- Automatically convert ALT_ keys to M- (meta) keys for Win32 builds.
2016-06-03 18:32:25 -07:00
Casey Langen
ffcc110430
More cleanups to CMakeLists and also fixed a top-level layout issue
2016-06-03 08:55:56 -07:00
Casey Langen
efc81d352a
Cleaned up CMakeLists.txt in core and box.
2016-06-03 08:29:05 -07:00
Casey Langen
be34186303
Fixed compile on OSX.
2016-06-03 08:21:33 -07:00
casey
c418305b30
Library and now playing switching seems to work?
2016-06-03 02:04:41 -07:00
casey
40bc4d31ad
Incremental work on the now playing list. It sort of works now, but
...
things are a bit goofy.
2016-06-02 23:01:22 -07:00
casey
535367d705
- Renamed MainLayout -> ConsoleLayout
...
- Refactored TrackListView to not deal with PlaybackService directly.
This is the job of the "Controller" which doesn't exist yet.
- Tweaked LibraryLayout to act more like a Controller, and start
playback when the user presses enter.
- Added a hacked up NowPlaying layout.
2016-06-02 21:45:44 -07:00
casey
8b14ddb5e8
A couple small but important fixes:
...
- Don't adjust scroll position in TrackListView after a requery if the
query contents haven't actually changed
- Ensure resizing doesn't lose the selected item in ListWindow
- Added the concept of query hashes and generalized TrackListQueryBase
so different types of queries can be supplied to a TrackListView.
2016-06-02 18:45:16 -07:00
casey
a8f8425f91
Gapless playback seems to be working with waveout! Not perfect for all
...
MP3 files, but that's to be expected. TODO: CoreAudio changes to allow
gapless playback.
2016-06-01 21:51:39 -07:00
Casey Langen
5bf48ff243
Added new file to CMakeLists.txt
2016-06-01 01:02:05 -07:00
casey
916823000c
Don't wait indefinitely for WaveOut to close, and also fixed a stop-related bug.
2016-06-01 00:30:46 -07:00
casey
4fe8f1fe10
- Don't raise the "Stopped" event in transport unless we're actually stopped (more bug fixes)
...
- Fixed PlaybackService to actually listen to PlaybackEvent
2016-06-01 00:14:14 -07:00
casey
9c7fdbdb87
- Fixed a bug in Transport where a "PlaybackStopped" event could be triggered erroneously
...
- Simplified TransportWindow to use PlaybackService.TrackChanged instead of manually querying the DB
2016-06-01 00:03:41 -07:00
casey
9f2a04bf78
A couple small color tweaks to make the currently playing track more obvious.
2016-05-31 22:36:09 -07:00
casey
adbe9bf859
- Fixed another potential deadlock in Transport.cpp
...
- Fixed TrackListViewQuery to set the correct track id on queried tracks
- Fixed PlaylistService to use MessageQueue to deliver results and avoid race conditions
- Tweaked TrackListView to highlight the currently playing track in yellow
2016-05-31 22:25:32 -07:00
casey
c9630312ef
Added album separators in TrackListView, and cleaned up IScrollAdapter::IEntry interface in the process.
2016-05-31 21:27:49 -07:00
Casey Langen
c812739d28
Removed 3rdparty CMakeLists.txt. Just include this as part of libmusikcore.
2016-05-30 11:49:24 -07:00
Casey Langen
3da84981e1
Only conditionally include clang 3.7 enable_shared_from_this<> hack.
2016-05-30 11:37:54 -07:00
Casey Langen
6ba643a2cc
- Added stderr redirect to file (or /dev/null) based on platform and build config
...
- Added Window::Invalidate() that can be called to force a full refresh
2016-05-29 22:00:43 -07:00
Casey Langen
e4eb083aca
Use werase() instead of wclear(). This seems to fix up the funky redraw issues when using Terminal.app and using musikbox over ssh.
2016-05-29 18:32:57 -07:00
Casey Langen
7b4885995b
A couple small fixes that should allow things to (almost) compile in Linux.
2016-05-29 18:20:48 -07:00
casey
4f8294169d
Added missing flacdecoder file, and also debounced KEY_RESIZE event
...
handling.
2016-05-29 10:29:39 -07:00
Casey Langen
273b67076f
- Localize wrefresh() call to the input window that has focus when drawing cursor
...
- Moved Blur/Focus update functionality from ListWindow into ScrollableWindow
2016-05-28 12:08:15 -07:00
Casey Langen
ceb629accd
Improved (?) input handling -- cursor position works on Mac now. This may break Windows.
2016-05-28 11:21:10 -07:00
Casey Langen
05c36ef76b
Fixed redraw issue on non-Windows platforms when ListWindow is blurred.
2016-05-28 10:42:52 -07:00
casey
7220617db0
Default to console layout until we can build a path editor thing
2016-05-28 02:58:12 -07:00
casey
bfbb01fa57
aesthetic and hotkey changes.
2016-05-28 02:49:18 -07:00
casey
9e5a4dc63e
One more small set of fixes to properly support resizing on Windows.
2016-05-27 23:18:40 -07:00
Casey Langen
d993743cb9
A couple small optimizations to the still-glitchy resize code.
2016-05-27 23:01:58 -07:00
casey
dd9b0818f1
- Fixed a bug that could let partial results get displayed in
...
CategoryListView
- Allow queries to be marked as cancelable so they won't be processed.
2016-05-27 22:59:19 -07:00
Casey Langen
306103c0e8
Added rudimentary support for resizing.
2016-05-27 21:54:46 -07:00
casey
a64ccf16a6
Fixed clangen/cmakeosx to compile and run against Windows.
2016-05-27 18:10:41 -07:00
Casey Langen
8d3d24c5e6
Fixed category switching on keyboards with meta, not alt.
2016-05-27 17:55:25 -07:00
Casey Langen
0c47cdc483
Small refator to make UTF8 key handling easier.
2016-05-27 17:50:56 -07:00
Casey Langen
1ac9b18af9
Fixed UTF8 input in Main.cpp parse loop. More substantial key handling refactors coming soon.
2016-05-27 17:50:08 -07:00
Casey Langen
5514b0f726
- Fixed a bug in CoreAudioOut where volume was not getting reset properly for new streams
...
- Added improved key handling to work properly with +ESC escape sequences. More work to be done.
- Fixed a couple hotkeys to use +ESC escape sequences.
2016-05-27 17:50:08 -07:00
Casey Langen
f9c95a5963
musikbox runs on OSX!
...
- It's not pretty
- More updates to CMakeLists and mp3decoder and taglib_plugin
- Fixed bugs in PluginFactory so the DLLs load properly
- Fixed a bug in Window where RemoveWindow was removing from the wrong parent
- Added a couple hacks in Common.cpp, these need to be fixed
2016-05-27 17:48:53 -07:00
Casey Langen
d12eae819d
cursespp and musikbox are compiling! not running though.
2016-05-27 17:48:53 -07:00
casey
3968e39f7f
- Fixed waveout plugin to ensure all buffers are cleared before new ones
...
are accepted.
- Started working on CTRL+UP, CTRL+DOWN library focusing.
2016-05-26 01:14:17 -07:00
casey
dcb3d6bfb3
Added a 'cursespp' namespace, and removed all 'using' statements from
...
header files in the app source.
2016-05-24 22:20:29 -07:00
casey
c6c12cbab6
Added musik::box namespace for app.
2016-05-24 21:44:46 -07:00
casey
05aca20bbd
- Fixed a memory leak in Mp3Decoder
...
- 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.
2016-05-24 20:31:43 -07:00
casey
14aa38518a
Added global hotkeys for scrubbing
2016-05-24 00:10:36 -07:00
casey
54192079ed
Fixed a couple bugs that prevented auto-advancing from working properly.
2016-05-24 00:00:26 -07:00
casey
6326162ee0
Added support for Play/Prev/Next/Stop in Playback service and respective
...
global hotkeys. It functions as a normal music player, finally!
2016-05-23 23:51:49 -07:00
casey
b544ea6f1f
Important work towards eventual support of gapless playback:
...
- 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!
2016-05-23 22:33:40 -07:00
casey
65a4d33823
Track::URL -> Track::URI
2016-05-22 11:09:18 -07:00
casey
26311255b5
Generalization of message queue stuff so it can be used in non-UI
...
contexts:
- IWindowMessage -> IMessage
- New IMessageTarget implemented by IWindow
- WindowMessageQueue -> MessageQueue
2016-05-22 10:14:01 -07:00