182 Commits

Author SHA1 Message Date
casey langen
58b066ed4b Added some checks to MultiByteToWideChar and WideCharToMultiByte methods
to ensure we don't try to allocate, then assign a zero-length buffer to
a std::basic_string<T> -- this could cause an access violation,
depending on how long it takes to get to the first null value.

Also updated to boost 1.65 on Windows.
2017-09-06 21:26:11 -07:00
casey langen
f3cbcb22f4 Updated to project files to use latest version of the Windows 10 SDK. 2017-09-04 22:39:28 -07:00
casey langen
e7de56d769 sync'd with upstream PDCurses 2017-07-22 16:09:48 -07:00
casey langen
206931f3e0 Hopefully fixed initial font scaling once and for all in pdcdisp.c 2017-07-19 23:18:01 -07:00
casey langen
6c2f77cdc9 Updated libcurl.dll and libmp3lame.dll to link against the correct C
runtime with the correct flags so the VC140 redist doesn't need to be
installed.
2017-06-18 09:33:40 -07:00
casey langen
0ed9c9b4d6 Added HttpDataStream, a new plugin that can provide an IDataStream from
an HTTP/HTTPS connection.

- Added libcurl and libressl as project dependencies.
- Added HttpDataStream (which uses libcurl and libressl). Includes an
  LruDiskCache so responses can be cached to disk for offline playback.
- Added new IEnvironment SDK interface. Plugins can query the
  environment for path information, data streams, or decoders. More
  functionality will be added over time.
- Fixed FlacDataDecoderFactory to handle the correct mime type
  (audio/flac, not audio/flag)
- Tweaked NomadDecoder.cpp to return the stream length immediately instead
  of waiting for an fseek().
2017-04-18 00:31:50 -07:00
casey langen
a459230eb9 Upgraded Visual Studio projects to use Windows SDK 10 and the VS141
tooling. Upgraded to boost 1.64.0 (B2). Also, cleaned up a bunch of
stale include and library paths in various projects.
2017-04-08 23:50:57 -07:00
casey langen
e49506fe3c Added Bill Gray's improved message pump patch. 2017-03-27 12:04:24 -07:00
casey langen
68a7e2994c Tweaked pdcurses message pump patch to avoid potential overflows. Also
updated musikboix.rc's FileDescription field to be more inline with what
other apps display here.
2017-03-26 12:06:14 -07:00
casey langen
648edc92c8 Updated PDCurses's message pump to use way fewer CPU cycles. 2017-03-23 17:09:09 -07:00
casey langen
62f782469e Work around bug where key after ALT+ENTER was getting swallowed. 2017-03-14 00:18:04 -07:00
casey langen
65bdea5638 Replace PDCurses binary with source so (1) we don't bloat the repo, and
(2) things are easier to debug.
2017-03-14 00:02:25 -07:00
casey langen
bd4df70ff2 Added a new custom build of PDCurses that has a correct 256 color palette. 2017-03-13 19:21:39 -07:00
casey langen
8b1cac7f9b - Updated project build settings to all favor fast code, instead of small
code. Also ensure all projects are compiled against the unicode charset.
- Updated CHANGELOG and bumped versions.
2017-03-09 08:38:03 -08:00
Casey Langen
3fb5808787 Updated json.hpp (yes we currently have two copies, one for the core, and one in a plugin.)
This fixes JSON parse errors in locales that use commas instead of periods to represent decimal places (e.g. fr_FR).
2017-03-04 13:41:02 -08:00
casey langen
3b2cad052f Flipped win32 release builds back to link-time code generation instead of
profiled optmizations to make it easier to build out of the box.
2017-02-18 21:14:09 -08:00
casey langen
d9c2154cda Move volume in increments of 1% when it is at 10% or less. 2017-02-18 14:53:30 -08:00
casey langen
e21fffac3d Added the ability for plugins to save preferences. 2017-02-03 18:04:29 -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
a6e78c0941 Updated optimization flags. 2017-01-04 19:22:05 -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
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
7c34140d2b Updated Win32a curses build. 2016-12-07 01:14:28 -08:00
casey langen
32618f533b - The audio deinterleaving process works now
- Apply a Hamming Window to FFT input to reduce spectral leakage
- Reduced memory usage by doing FFT with real inputs
2016-11-30 00:44:02 -08:00
casey langen
232d2c4b0d Oops, moved kiss_fft.c to the correct directory. 2016-11-28 23:30:56 -08:00
casey langen
803323678e After some testing, decided to replace the existing FFT implementation
with kiss_fft.
2016-11-28 23:28:50 -08:00
casey langen
d14fc89721 Replaced VLC/xmms FFT with the one used by Milkdrop. 2016-11-28 00:20:15 -08:00
casey langen
ed1fd578e5 Fixed an off-by-1 bug in fft.cpp where we could try to write past the end
of an array.
2016-11-27 23:45:46 -08:00
casey langen
e6d86517c9 - Adjusted default Stream buffer sizes to be more CPU friendly
- Fixed FFT buffer handling in Player
2016-11-27 23:09:31 -08:00
casey langen
debe9b491f Revert "Upgraded to VS2017 RC."
This reverts commit 5bcb794ad82a097f9e3ed46676d9036d6e442745.
2016-11-27 21:40:30 -08:00
casey langen
08a876edb2 Use VLC's lighter weight FFT. 2016-11-27 08:32:29 -08:00
casey langen
5bcb794ad8 Upgraded to VS2017 RC. 2016-11-25 13:11:31 -08:00
casey langen
53ad470a78 Fixed a crazy character encoding issue with certain UTF-8 control
characters. Also, re-enabled the multi-threaded indexer, it was
not the source of the crash.
2016-11-01 23:17:50 -07:00
casey langen
1b7ed8ad64 Added fftw3 support so we can calculate a frequency histogram to be used
for audio visualizations.
2016-10-30 18:40:40 -07:00
casey
bd6936a13e - One more PDCurses update
- Moved a few lines of musikbox-specific code from App.cpp to Main.cpp
- Cleaned up a few comments
2016-07-11 18:33:57 -07:00
casey
2a9bc70037 - One more version of the pdcurses binaries
- Extracted most Main.cpp logic into App.cpp, which can be reused
2016-07-11 01:30:29 -07:00
casey
8c784eb087 Updated PDCurses to allow for a default window size. 2016-07-10 17:24:28 -07:00
casey
e31bbb9b56 Added a free, portable version of wcswidth for Windows. 2016-07-04 22:35:34 -07:00
Casey Langen
c0b29ac204 Added json.hpp (https://github.com/nlohmann/json) -- going to use this to replace the current preferences implementation. 2016-06-19 11:30:15 -07:00
casey
ae82180470 - Added a proper debug version of pdcurses for Windows.
- Tweaked the Indexer to allow files in the DB that do not have
  metadata, but have decoders.
- Bug fix to Text::Duration
2016-06-04 18:07:10 -07:00
Casey Langen
c812739d28 Removed 3rdparty CMakeLists.txt. Just include this as part of libmusikcore. 2016-05-30 11:49:24 -07:00
Casey Langen
d12eae819d cursespp and musikbox are compiling! not running though. 2016-05-27 17:48:53 -07:00
Casey Langen
e33f9928fb Incremental checkin for compiling on mac. 3rdparty compiles, and core is nearly there (boost::async not working) 2016-05-27 17:47:29 -07:00
casey
32e5c2764e - Fixed the SimpleScrollAdapter to have a max size, and do so
efficiently without a speed trade-off.
- Fixed a couple color-related things
- Removed a bunch of additional dead code, headers, libraries, projects
2016-05-09 00:32:36 -07:00
casey
55912dc0b4 - Updated utf8.h
- Fixed SimpleScrollAdapter to split lines in a UTF8-compatible way.
2016-05-07 23:51:41 -07:00
casey
9126c6ca6a Rewrote the console app using some basic curses and crappy home-grown C++ wrappers. 2016-05-07 02:48:04 -07:00
casey
14096724a2 Added pdcurses to help with the command-line app. 2016-05-06 12:30:42 -07:00
casey
59a68e3a50 Deleted some old libraries, and moved debug.h/cpp up a level. 2016-05-06 12:19:44 -07:00
casey
0172fe489a A few interface cleanups, and completed the implementation of the CDDA
decoder with a custom IDataStreamFactory and IDataStream that uses win32
CreateFile and DeviceIoControl APIs. Most implementation was there, but
very broken.
2016-05-05 23:54:31 -07:00
casey
95a1803ba0 Second/final commit for correcting filename case issues. 2016-05-04 23:50:11 -07:00