Commit Graph

877 Commits

Author SHA1 Message Date
casey langen
dff09255a7 Fixed Linux compile. 2016-12-13 21:26:32 -08:00
casey langen
e299c2a98e Basic math is hard. Fixed scaling PCM_16 -> FLOAT_32 2016-12-13 21:10:47 -08:00
Casey Langen
4f0d98b850 Fixed OSX compile. 2016-12-13 20:40:48 -08:00
casey langen
5bae38bf65 Added a decoder for the (no)mad mpeg library. Gapless playback for a wider
variety of mp3 files!
2016-12-13 19:55:30 -08:00
casey langen
99f87237da Upgraded mpg123 to 1.23.8 for Win32 build. Now built from source and
doesn't require libgcc_s_sjlj-1 or the external libmpg123-0.dll.
2016-12-12 23:15:04 -08:00
casey langen
bdd8679865 Introduced an ID cache in the IndexerTrack to reduce DB churn when
indexing large amounts of files. This should improve indexing speed
at the expense of temporarily increased memory usage.
2016-12-11 21:48:35 -08:00
casey langen
2b7ad11c40 Version bump. 2016-12-10 00:07:36 -08:00
casey langen
b428b2d7d1 Fixed the GdiVis project to not put intermediates into the output
directory.
2016-12-10 00:07:19 -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
casey langen
b3b423f931 Not feeling the new list title style. Reverted. 2016-12-08 00:08:25 -08:00
casey langen
3cceef8d93 Dangerous low-level change #3
Dramatically reduce unnecessary redraws by introducing a dirty bit to the
Window instances. Also changed the order in which some windowing
operations are performed.
2016-12-07 22:11:06 -08:00
casey langen
0a76f0f4f9 Tweaked the look and feel of the new header in BrowseLayout. 2016-12-07 16:38:40 -08:00
casey langen
ec2632431a - One more PDCurses update -- I think I added some bad binaries last
night.
- A couple bug fixes with Window::Move and Window::SetSize
2016-12-07 14:24:41 -08:00
casey langen
85c101ca54 Make settings layout more compact. 2016-12-07 07:08:25 -08:00
casey langen
4a374d7615 Modified behavior of Window to destroy panels when hiding, instead of
calling hide_panel(). This seems to fix some PDCurses-specific crashes.
2016-12-07 07:06:58 -08:00
casey langen
7c34140d2b Updated Win32a curses build. 2016-12-07 01:14:28 -08:00
casey langen
d472b56ca3 Another dangerous low-level change: updated the way LayoutBase::Layout()
works to be similar to Window::Redraw(). The default implementation now
does bounds checking and calls through to OnLayout() instead. Doing this
ensures we don't spend time laying out views that are not visible. Also
removed a bunch of extraneous Layout() calls.
2016-12-07 00:26:06 -08:00
casey langen
95f383221c Super dangerous low-level changes to cursespp to fix some fundamental
issues:

- Added OnRedraw() template method that should be used instead of Redraw()
  for the normal case. Redraw() will do some visibility and bounds
  checking on behalf of the caller.
- Added IWindow::OnParentVisibilityChanged() that is used by sub-views to
  know when their parent changes. This is so Windows can hide themselves
  while retaining their internal visibility flags.
- A couple bounds checking and corner case fixes in Window.

In the end this gives us:

- Fewer unnecessary redraws (in theory)
- The ability to set sub-view visibility indepdent of parent view, without
  the need to call Layout::AddWindow and Layout::RemoveWindow
2016-12-06 23:59:03 -08:00
casey langen
fe55c92a12 Added OnRedraw() template method for Window subclasses. Redraw() will
check visibility before requesting a repaint.
2016-12-06 20:33:51 -08:00
casey langen
f56ffb0bcf Added new Redraw() base class method, and renamed Repaint() to
Invalidate(). Also renamed Window::Invalidate to Window::InvalidateScreen
2016-12-06 19:16:26 -08:00
casey langen
68f574235b Fixed search results -> browse category title bug. 2016-12-06 01:00:08 -08:00
casey langen
1017d46016 Improved header layout in settings, and dynamically add heads in
BrowseLayout based on screen size.
2016-12-06 00:44:59 -08:00
casey langen
05b62839b0 Added speaker channel constants. 2016-12-06 00:44:30 -08:00
casey langen
1dd16d8ed7 Updated README to include PulseAudio library for Linux. 2016-12-05 20:24:10 -08:00
casey langen
94aef06a7d Hush some unnecessary logging in PulseOut.cpp 2016-12-05 20:23:10 -08:00
casey langen
98c11a9706 Fixed volume initialization in PulseOut 2016-12-05 20:21:26 -08:00
casey langen
da6e635bd3 Fixed compile on Linux and macOS. 2016-12-05 20:20:02 -08:00
casey langen
ae88f6ee31 Added the ability for the user to select their preferred output plugin! 2016-12-05 20:17:58 -08:00
Casey Langen
3e6f66d986 Added a PulseAudio output plugin for Linux. 2016-12-05 17:00:13 -08:00
casey langen
487502fd1f Modified IOutput interface to supply an optional latency. Updated
WasapiOut to send the proper latency.
2016-12-04 23:45:07 -08:00
casey langen
a797d4db9d Added an initial WASAPI output plugin implementation. Down with waveout!
(maybe).
2016-12-04 18:43:26 -08:00
Casey Langen
25506a009d Version bump to 0.5. 2016-12-04 12:35:40 -08:00
casey langen
a3b7a541cc Removed some unused #includes from LocalFileStream. This should also clean
up some compile warnings on non Windows platforms.
2016-12-04 12:16:58 -08:00
casey langen
d8685e314c Fixed #pragma once compile warning. 2016-12-04 11:47:38 -08:00
casey langen
a26fc53353 Ramped the default Stream buffer size from 1024 -> 2048 samples per
channel. This further reduces CPU usage.
2016-12-03 21:30:15 -08:00
casey langen
0e6fbb8e3d - Improved Stream class by preallocating all required buffers using a
single contiguous float array for all samples.
- Fixed WaveOut to reuse WaveOutBuffer instances so we aren't constantly
  reallocating them.
- Removed boost dependency from WaveOut plugin
- Modified Buffer to allow creation with a managed float array
- Removed DynamicStream.h/.cpp
2016-12-03 21:16:48 -08:00
casey langen
0276b0f594 A couple more small ALSA bug fixes. 2016-12-03 17:23:51 -08:00
casey langen
e381a842f8 Tweaked AlsaOut's behavior when adding buffers in the paused state. 2016-12-03 17:10:09 -08:00
casey langen
4600b801b6 Small fix to Player's stream resolution logic -- we should also return a
DynamicStream when the visualizer is hidden.
2016-12-03 15:19:10 -08:00
Casey Langen
896f8459df Fixed a compile warning in PlaybackService.cpp. 2016-12-03 15:12:08 -08:00
casey langen
4c86164f80 Added DynamicStream back to Windows build, and fixed CddaDataStream
plugin. Also cleaned up a memory leak in GdiVis.
2016-12-03 15:08:34 -08:00
casey langen
3bb07daba4 Remember volume and repeat mode across app launches. Been meaning to do
this for a while.
2016-12-03 14:54:16 -08:00
Casey Langen
53429bdf92 Moved some stream decoder and dsp loading logic out of the actual Stream implementation, and into a helper namespace so it can be re-used. Added back DynamicStream to test on Windows. 2016-12-03 14:52:37 -08:00
Casey Langen
6be3a5030a Updated README.md to remove fftw3 dependency. 2016-12-03 12:35:31 -08:00
casey langen
f1ffce5662 Re-enabled time smoothing. 2016-12-02 23:34:45 -08:00
casey langen
4febabe234 Removed debug info from release builds in many of the plugins to reduce
filesize.
2016-12-02 16:30:13 -08:00
casey langen
3657a995a1 Moved Player/Transport interaction to using a simple callback/listener
interface instead of events. Events were causing complications with
multi-threading, and introducing unnecessary runtime complexity.
2016-12-02 15:49:36 -08:00
casey langen
c58607f014 Just kidding about fixing the clang compile -- remove static qualifier to
hopefully fix it for real.
2016-12-02 09:42:18 -08:00
casey langen
94f0fb1653 Declare the playerThreadProc prototype -- this should fix the clang
compile.
2016-12-02 09:40:33 -08:00