Commit Graph

416 Commits

Author SHA1 Message Date
casey
fa67ad0202 Fixed the FLAC decoder to work in Windows as well. 2016-05-28 14:41:18 -07:00
Casey Langen
81889baf32 Second commit to correct FlacDecoder's filename case. 2016-05-28 13:56:46 -07:00
Casey Langen
e5eac21ae6 Intermediate checkin to fix FLACDeocer filename case. 2016-05-28 13:52:15 -07:00
Casey Langen
6e83b103a3 FLAC Decoder is operational again. 2016-05-28 13:51:54 -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 Langen
35750d9da3 Fixed a deadlock in Transport. 2016-05-28 01:09:07 -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 Langen
0db50fc6b3 Use old C fopen/fseek/ftell/etc to manage local file streams. Boost was causing problems on some platforms when streaming over the network. 2016-05-27 19:28:09 -07:00
Casey Langen
a9b6b0b239 Deleted a couple junk files that shouldn't have been checked in. 2016-05-27 18:17:26 -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
ebd9a44288 Fixed a bunch of warnings regarding shared library calling convention on OSX. 2016-05-27 17:50:08 -07:00
Casey Langen
161785688b Working Mpg123Decoder (on OSX at least)! 2016-05-27 17:50:08 -07:00
Casey Langen
7ed083a692 - Only use mpg123decoder in *nix -- the Tuniac one doesn't work out of the box
- Added CMake support for oggdecoder
- Fleshed out most of the CoreAudioOut implementation -- but it's playing at 2x speed (some sort of buffering issue)
2016-05-27 17:48:53 -07:00
Casey Langen
e172c258e4 Added a stubbed CoreAudio Output plugin, and removed some dead CMake stuff. 2016-05-27 17:48:53 -07:00
Casey Langen
45e67c999d Compiling mpg123 decoder. 2016-05-27 17:48:53 -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 Langen
e33f9928fb Incremental checkin for compiling on mac. 3rdparty compiles, and core is nearly there (boost::async not working) 2016-05-27 17:47:29 -07:00
casey
73305d420d Fixed another small race condition in transport where changing tracks
right when the transport is automatically switching over to the
preloaded next track could cause a crash.
2016-05-26 10:13:07 -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
fcfe17c49b Removed some comments that aren't very useful. 2016-05-24 22:59:39 -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
f94633c671 - Fixed bugs where initial output volume was set incorrectly in player,
causing a volume jump when switching tracks.
- Modified Transport to initialize and share an output device between
  all Player instances it manages.
2016-05-24 20:56:44 -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
casey
4f7a6ea7e2 More core cleanup:
- Removed TrackFactory, InMemoryTrack
- Tightened up threading model in LibraryTrack
- Removed a bunch of comments that were not really useful
- Added stubbed PlaybackService
2016-05-22 09:55:17 -07:00
casey
34e2ff1751 Fixed some character encoding issues in file loading and track list
column rendering.
2016-05-22 01:01:47 -07:00
casey
bb1bc9c822 * Improvements to the transport look and feel, including blinking time
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
2016-05-22 00:05:41 -07:00
casey
191445d74f Fixed a bug where missing files were not being removed from the library.
I think this is desired behavior.
2016-05-21 00:27:29 -07:00
casey
174d00b4d5 A couple small hotkey shortcuts for refreshing the view, and
re-indexing.
2016-05-21 00:06:48 -07:00
casey
af60dedb4b Added first-class support for album artist. 2016-05-21 00:00:58 -07:00
casey
6d025cdad1 - Added ILayoutStack, IOrderable, LayoutStack, and WindowLayout. These
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.
2016-05-19 22:32:26 -07:00
casey
094cb358fe - Renamed Window::Post -> Window::PostMessage
- Added Window::RemoveMessage
- Fixed TransportWindow to have a time slider that actually works.
2016-05-18 22:36:20 -07:00