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