Commit Graph

395 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
e518d3a575 Version bump. 2017-01-15 11:19:46 -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
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
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
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
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
790fed8943 Fixed dropdown arrow character to something that is implemented by more
fonts.
2017-01-02 15:19:38 -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
cb4156dbac Added plugin versioning. 2017-01-02 00:06:30 -08:00
casey langen
0d8c86be4f Found one more usage of boost::recursive_mutex in PlaybackService. Removed
it.
2017-01-01 15:06:55 -08:00
casey langen
c5d8a3c608 Fixed most of the remaining boost thread/mutex/recursive_mutex/condition
usage to use the std:: variants. Only thing remaining is the Indexer,
which is currently using boost::asio and boost::thread_group.
2017-01-01 14:59:33 -08:00
casey langen
83fc208daf - Fixed focus issues when pressing enter in track and category filter
modes.
- Removed boost::chrono dependency -- just use std::chrono in all cases.
2017-01-01 12:09:28 -08:00
casey langen
7efcf60e1d General repo/build/project cleanup:
- Removed unused md5 and fftw-3 remnants
- Renamed 3rdparty/lib -> 3rdparty/win32_lib to match win32_include
- Removed core/sdk/config.h
- Fixed various compiler warnings
2016-12-30 21:49:50 -08:00
casey langen
6ac1926611 Version bump -- we're getting close to release. 2016-12-29 16:06:18 -08:00
casey langen
ef3fd3c7cc Don't block the UI when switching from Crossfade -> Gapless transport. 2016-12-27 21:02:54 -08:00
casey langen
1be4e3fd70 Added more error handling to PlaybackOverlays -- also, ensure we set the
selected index on the transport and output device overlays.
2016-12-27 19:07:08 -08:00
casey langen
76fbc5e6bd Added ListOverlay::SetSelectedIndex 2016-12-27 19:06:57 -08:00
Casey Langen
a2d95a6698 Improved the transport selection logic to use a ListOverlay and also display an error for invalid outputs. 2016-12-27 17:37:33 -08:00
casey langen
c3653ffa19 Yikes! Fixed a really, really bad first run bug I never noticed because I
never go through the first run process.
2016-12-27 17:33:51 -08:00
casey langen
c803d2b671 A small bugfix to restore volume after switching transports. 2016-12-27 01:15:40 -08:00
casey langen
1dbdf73c5c Fixed *nix and macOS compile. 2016-12-27 01:12:01 -08:00
casey langen
153f12326c Added UI to switch between transport types at runtime! Needs to be
converted to a ListOverlay, but it works!
2016-12-27 01:07:29 -08:00
casey langen
5f64b205cf Hide the main window immediately on exit in the Win32 build. This allows
us to cross fade the audio out without appearing to be frozen.
2016-12-25 20:44:18 -08:00
casey langen
5b5399322f Ensure the Player's listener is zero'd out as part of Player::Destroy().
Also cleaned up a couple small warnings.
2016-12-23 21:38:16 -08:00
casey langen
a6372b3c92 A bunch of changes, some of which are still untested:
1. Added IDecoder::GetDuration() methods. Implemented it for all decoders.
2. Modified NomadDecoder to properly resolve duration for mp3 files that
do not have valid Xing headers (borrowed TagLib code)
3. Added IStream::GetDuration(), IPlayer::GetDuration(), and
ITransport::GetDuration()
4. Stubbed out a CrossfaderTransport (untested, unimplemented)
5. Added the concept of "MixPoints" to Player, so clients can be notified
when playback reaches certain points. (untested)
6. Started fleshing out a Crossfader implementation that uses a background
thread and a MessageQueue (untested)
7. Modified TransportWindow to pull the decoder's duration, then fallback
to the library duration if unavailable.
8. Added IDataStream::Seekable(), implemented in LocalFileStream.
2016-12-23 01:36:49 -08:00
Casey Langen
4b53439d68 Fixed macos compile. 2016-12-21 16:48:27 -08:00
casey langen
25fa580bde - Moved MessageQueue and friends into the core so it can be reused for
other things like timers and processing threads
- Cleaned up Player's listener interface a bit, and removed some more
  complexity from GaplessTransport
2016-12-21 16:41:44 -08:00
casey langen
1a00c83c7b Added MessageQueue::WaitAndDispatch(), which should be usable for
timer-like functionality.
2016-12-21 00:02:20 -08:00
casey langen
3aa4871e62 MessageQueue itself is no longer a singleton. However, Window has a static
instance.
2016-12-20 22:54:13 -08:00
casey langen
00bcb09a94 Version bump. 2016-12-19 22:52:37 -08:00
casey langen
d27b911ede - Added DirectSoundOut plugin for Windows
- Updated WasapiOut to pre-calculate the stream latency
2016-12-18 17:15:00 -08:00
Casey Langen
487f47a88c Version bump. 2016-12-14 07:47:09 -08:00
casey langen
2b7ad11c40 Version bump. 2016-12-10 00:07:36 -08:00
casey langen
ddacf4dc69 Make sure when we change main layouts we bring them to the top so all
views appear properly.
2016-12-10 00:06:47 -08:00
casey langen
be9284e4ef Fixed a really old bug in ListWindow where you could scroll past the last
item if items in the viewport were of heterogenous size.
2016-12-08 20:25:17 -08:00