Commit Graph

923 Commits

Author SHA1 Message Date
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
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
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
casey langen
be51dcd0f5 More small Stream tweaks to prevent bursts of CPU usage. 2017-01-04 17:22:58 -08:00
casey langen
9af25a1541 Playing with some buffering improvements -- try to buffer samples in
chunks, instead of one at a time. Increased the default stream buffer
size.
2017-01-04 01:32:49 -08:00
casey langen
165b5aeb32 Some more profiling revealed we were doing more work than we needed to in
TransportWindow every tick -- locks, map look ups, utf8 -> utf16
conversions, and column width calculations. We can cache most of these
operations easily and transparently.
2017-01-03 22:23:51 -08:00
casey langen
602f61eab6 - Tweaked Player to no longer keep a list of pending buffers -- a count is
good enough.
- Use raw buffers between Player and Stream. A bit less safe, but improves
  performance a bit.
- More old Player logic clean up -- removed some things here and there.
- Updated MessageQueue to cache the next dispatch time so it can short
  circuit an explicit Dispatch() without messing around with iterators.
- Fixed TransportWindow to sync time immediately wheen a seek is detected.
- Updated logic in Player to be more seek friendly -- the user shouldn't
  observe time jumping around while seeking anymore!
2017-01-03 21:03:40 -08:00
casey langen
f3564378f4 Don't try to be smart about buffer fill rate -- just keep it full. Also,
use std::deque instead of std::list to maintain the buffer collection in
Player -- it has better performance characteristics for what we're doing.
2017-01-02 23:07:40 -08:00
casey langen
5849a7a8f9 Fixed the win32 global hotkey hook. 2017-01-02 15:45:46 -08:00
casey langen
790fed8943 Fixed dropdown arrow character to something that is implemented by more
fonts.
2017-01-02 15:19:38 -08:00
casey langen
a22d83c911 Added audio stream routing to the WASAPI output plugin. If the default
playback device changes, we'll switch over to it automatically without
interruption.
2017-01-02 15:01:31 -08:00
casey langen
43b4260713 Version bump for all bundled plugins. 2017-01-02 10:50:39 -08:00
casey langen
93a82f1e21 Added an "sdk" command to the console layout. 2017-01-02 10:47:56 -08:00
casey langen
b917953286 Version bump. 2017-01-02 00:22:44 -08:00
casey langen
d594bee4ca Fixed Linux compile. 2017-01-02 00:20:28 -08:00
Casey Langen
e1bcd3b0f2 Fixed macOS (and probably Linux) compile. 2017-01-02 00:15:00 -08:00
casey langen
cb4156dbac Added plugin versioning. 2017-01-02 00:06:30 -08:00
casey langen
6ec4418cfd Removed prebuffer code from Player -- let the Stream worry about that. 2017-01-01 16:43:51 -08:00