Commit Graph

1168 Commits

Author SHA1 Message Date
casey langen
a21f60ba97 Cleaned up an edge case where adding stuff to the play queue while not
playing, then switching to the play queue, would result in nothing being
selected.

Also fixed a bug where trying to play an empty play queue (or playing
something when nothing is selected) would crash.
2017-01-21 22:54:12 -08:00
casey langen
6f51debdde Fixed bug where deleting the currently playing item from the play queue
would cause the second, instead of first, track in the queue to start
playing.
2017-01-21 22:28:43 -08:00
Casey Langen
ce24a7064b Fixed macOS compile. 2017-01-21 22:11:13 -08:00
casey langen
743d36dc31 Added proper hotkey support for play queue mutation. 2017-01-21 22:07:36 -08:00
casey langen
d01b36c7b4 Added support for modifying the play queue with categories. 2017-01-21 20:59:47 -08:00
casey langen
9ab7769675 Added a new PlayQueueOverlays popup that allows the user to enqueue tracks
into the play queue. Up next will be enqueing categories (albums, artists,
etc) in the same way.
2017-01-21 20:33:38 -08:00
casey langen
462ac04448 Added ITrackList interface to sdk. We'll use this for plugins in the near
future.
2017-01-21 17:24:32 -08:00
casey langen
06438830fc Added playback index tracking to PlaybackService::Editor. 2017-01-21 17:16:05 -08:00
casey langen
1802323279 Incremental work to support tracklist editing. Starting with the play
queue:

1. Added ITrackListEditor interface

2. Added PlaybackService::Edit() that returns a little data structure that
exposes an ITrackListEditor. Used by NowPlayingLayout. Implementation is
still incomplete.
2017-01-21 15:03:28 -08:00
casey langen
f084da0963 Updated cursespp::Window to use treat X and Y as coordinates relative to
the parent window. Added GetAbsoluteX and GetAbsoluteY methods to
cursespp::IWindow interface.
2017-01-20 23:16:19 -08:00
Casey Langen
fd37afb33f More work on custom colors. Apple Terminal is now "properly" supported. 2017-01-16 17:20:57 -08:00
casey langen
33fea97dfe Fallback to better colors if the terminal has 256 colors, but does not support setting custom values. 2017-01-17 00:42:44 +00:00
casey langen
7c011acadf Small tweaks to make things work on the Raspberry Pi. 2017-01-16 07:07:27 +00:00
Casey Langen
4a722e0f0c You know what? We don't need to keep a list of buffers at all -- just a count is good enough. 2017-01-15 14:05:30 -08:00
Casey Langen
dafbf480e8 Reduce CPU usage in CoreAudioOut:
* We don't need to count buffers by provider, counting all buffers is good enough
* Use an std::deque instead of std::list to maintain pending buffers
* Removed boost, use std instead.
2017-01-15 11:56:09 -08:00
casey langen
e518d3a575 Version bump. 2017-01-15 11:19:46 -08:00
Casey Langen
e4bb690a56 Make sure we include libnullout in the installation. 2017-01-14 14:43:32 -08:00
casey langen
f0a15e584b Updated CHANGELOG.txt 2017-01-14 12:06:01 -08:00
casey langen
452d0a43f5 Some *nix and macOS compiler fixes. 2017-01-14 11:56:27 -08:00
casey langen
3e1165dd87 Fixed NullOut's CMakeLists.txt. 2017-01-14 11:54:15 -08:00
casey langen
9616bc39e9 Added a null output plugin. 2017-01-14 11:52:53 -08:00
casey langen
f77a5ef23a Updated CHANGELOG.txt 2017-01-12 21:17:56 -08:00
Casey Langen
fb8ad79a59 Fixed a bug in Player where buffers may not get properly released during seeking. 2017-01-11 21:03:55 -08:00
casey langen
afd24ca9aa (Hopefully) fixed crash in WASAPI audio stream routing. Unclear exactly
what was going on, but reordering cleanup seems to have fixed it.
2017-01-10 18:03:00 -08:00
casey langen
d85d8a3f3f Third time's a charm. 2017-01-10 07:30:40 -08:00
casey langen
904293f080 More macOS fixes. 2017-01-10 07:07:26 -08:00
casey langen
b94f29305e This should fix ConsoleLayout's compile on macOS. 2017-01-10 07:01:19 -08:00
casey langen
f6403bd5f7 - Deleted MetadataKeyValue and MetadataValue from core. No idea what these
are/were, but they're not used anymore
- Deleted OutputWindow.h -- not necessary to subclass
- Moved ListView::SetAdapter functionality into the ScrollableWindow base
  class
- Cleaned up adapter ownership by using shared, instead of raw, pointers.
2017-01-09 23:15:26 -08:00
casey langen
05afff01ad Fixed Linux compile... surprising it worked on macOS. 2017-01-09 21:40:30 -08:00
casey langen
f7d660720c A few more prototype updates -- working transport buttons, fixed listview
styling, etc.
2017-01-08 21:17:00 -08:00
casey langen
c71f5a5f10 Updated musikbox to take advantage of LocalLibrary's ability to dispatch
results on a specified MessageQueue to reduce gymnastics required to
update category and track list views.
2017-01-08 21:16:14 -08:00
casey langen
5af9b778f5 Added PlaybackEvent, VolumeChanged, and TimeChanged to PlaybackService.
Mirrors the underlying Transport events, but will raise them on the
MessageQueue thread.
2017-01-08 13:14:38 -08:00
casey langen
4474b96f28 Updated prototype to run queries in the background and update on the main
thread. Also, track filtering works properly.
2017-01-07 23:19:35 -08:00
casey langen
442697e9ce Modified ILibrary interface to also accept an IMessageQueue reference. The
implementation will dispatch results on this queue if it's non-null.
2017-01-07 22:53:06 -08:00
casey langen
c9619c88d6 More proof of concept work, showing core and glue can be re-used for other
apps easily.
2017-01-07 15:44:37 -08:00
casey langen
49abe0526d Proof of concept MessageQueue implementation for raw Win32 with
PlaybackService integration. Visualizers work too.
2017-01-07 13:07:22 -08:00
casey langen
138766e8ff Don't re-define WINVER in core/config.h if it's already defined. 2017-01-07 13:06:27 -08:00
casey langen
1ff0ac00f3 Added a protected method to MessageQueue to get the next dispatch time. 2017-01-07 12:23:23 -08:00
Casey Langen
2f57240125 Fixed macOS compile again. 2017-01-07 00:14:37 -08:00
casey langen
9812e2fe3d - Moved PlaybackService and TrackList from glue to core
- Moved all current queries from box to blue
2017-01-06 23:49:46 -08:00
Casey Langen
79cf91851d Fixed macOS (and likely Linux) compile. 2017-01-06 18:34:33 -08:00
casey langen
0d7dfce805 Moved some sources out of "musikbox" and into a new "glue" directory. This
is for non-UI code that doesn't necessarily belong in core, but can be
reused across clients.
2017-01-06 18:28:00 -08:00
casey langen
45bac55dc3 Put MessageQueue behind an interface so implementation can vary on
different platforms.
2017-01-06 16:07:47 -08:00
casey langen
3ba692d20a Added back some old files I deleted a long time ago, just so we can do
some platform-specific testing easily.
2017-01-06 12:37:08 -08:00
casey langen
40fe1512de Ninja fix for non-win32 platforms. 2017-01-05 23:29:01 -08:00
casey langen
158ba27528 Some win32-specific optimizations -- don't worry about redrawing the
window nearly as frequently when minimized. Further reduces CPU usage in
the common case (music playing in the background).
2017-01-05 23:28:12 -08:00
casey langen
8e94592f55 Updated message queue next time check to not require a mutex -- just use
an atomic int instead.
2017-01-05 20:45:46 -08:00
casey langen
1475abbbac - Fixed nomad float sample scaling to use fewer instructions.
- Fixed PlaybackService to read duration from transport first.
2017-01-05 01:44:53 -08:00
casey langen
fd39258578 Fixed Outputs.cpp to load correct default plugins. 2017-01-05 00:13:01 -08:00
casey langen
a6e78c0941 Updated optimization flags. 2017-01-04 19:22:05 -08:00