From f4f9c828f45c920740ba76e29fcc3a3165b326a8 Mon Sep 17 00:00:00 2001 From: casey langen Date: Wed, 26 Dec 2018 18:10:36 -0800 Subject: [PATCH] Version bump for upcoming release. --- CHANGELOG.txt | 95 ++++++++++++++++++++++-------------- CMakeLists.txt | 28 +++++++---- musikcube.spec | 2 +- src/musikcube/app/version.h | 4 +- src/musikcube/musikcube.rc | Bin 5104 -> 5098 bytes 5 files changed, 81 insertions(+), 48 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index ca38106b6..135174a4f 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,26 @@ +0.60.0 + +musikcube: +* added an equalizer! press `ctrl+e` to activate and configure. +* removed most default decoder plugins and replaced them with one powered by + `ffmpeg`. this adds support for `opus`, `wavepack`, `musepack` and + `windows media audio` files. +* added a new `enable transparency support` in settings that can be enabled by + users who have a terminal with a transparent/translucent background. +* added the ability to customize the key used to quit the app. it is currently + not exposed in the ui, but it can be changed by editing + `~/.musikcube/settings.json` and updating the `AppQuitKey`. +* added feodra 29 support (dvdmuckle) +* fixed configuration script bugs that were causing breakage in FreeBSD +* migrated to non-bundled `taglib` for macOS and most Linux distributions +* fixed a ton of minor ui bugs +* updated win32 dependencies: libressl, libcurl, libboost, and pdcurses + +musikdroid: +* updated to compile against the latest tooling + +-------------------------------------------------------------------------------- + 0.51.0 musikcube: @@ -134,7 +157,7 @@ server: * all messages that start playback can now be passed a `time` parameter, which will seek initial playback to the specified time (in seconds). * `query_play_queue_tracks` now accepts an optional parameter called `type`; - allowed values are `live` (default) and `snapshot`. + allowed values are `live` (default) and `snapshot`. * bumped api version to 14 -------------------------------------------------------------------------------- @@ -185,11 +208,11 @@ musikcube: musikdroid: -* gapless playback (for supported media)! enable in settings > playback +* gapless playback (for supported media)! enable in settings > playback engine > "ExoPlayer Gapless (experimental)" * playlist create / rename / update / delete support * album art is now displayed in album rows when browsing -* context menus on most screens with the ability to switch between related +* context menus on most screens with the ability to switch between related content (e.g. albums by this artist, artists in this genre, etc) * added a simple "spotlight" tutorial for new users that explains switching between remote and streaming playback modes. @@ -242,7 +265,7 @@ server: - rename_playlist - delete_playlist - append_to_playlist - - remove_tracks_from_playlist + - remove_tracks_from_playlist - query_tracks_by_external_ids * renamed the following track fields: - visual_genre_id -> genre_id @@ -289,7 +312,7 @@ musikdroid: musikcube: -* fixed a bug in FlacDecoder::Exhausted that was causing issues with the +* fixed a bug in FlacDecoder::Exhausted that was causing issues with the server's transcoder. -------------------------------------------------------------------------------- @@ -395,7 +418,7 @@ low-level: 0.21.1 -* updated a few of the symbols used for drawing things like dropdowns and +* updated a few of the symbols used for drawing things like dropdowns and checkmarks so they work with a wider variety of fonts -------------------------------------------------------------------------------- @@ -411,7 +434,7 @@ low-level: * "add tracks", "add category", and "select playlist" context menus now remember the last selected item for 60 seconds. this makes adding multiple things to - the same playlist (or play queue) much easier. + the same playlist (or play queue) much easier. * fixed startup crash on older versions of macos -------------------------------------------------------------------------------- @@ -426,7 +449,7 @@ low-level: * added play queue "hot-swap". you can now swap a different list of tracks into an active play queue without disrupting playback. if the hot-swap - action finds the playing track in the new list, it'll be automatically + action finds the playing track in the new list, it'll be automatically selected as the active track. focus a tracklist and press `M-a` to hot-swap. * fixed a bug that was causing extended track metadata to be parsed incorrectly examples include bitrate, channels, lyrics, etc. @@ -492,9 +515,9 @@ low-level: user-facing: -* fixed a bug where usernames with non-latin characters may cause the +* fixed a bug where usernames with non-latin characters may cause the `websocket_remote` and `httpdatastream` plugins to crash during startup. -* fixed startup issues on windows computers that do not have the visual c++ 14 +* fixed startup issues on windows computers that do not have the visual c++ 14 runtime installed. -------------------------------------------------------------------------------- @@ -504,8 +527,8 @@ user-facing: * added code to win32 build that ensures only a single instance is running * fixed auto-dpi scaling in windows so `musikbox` displays properly out of the box on high dpi (4k) displays -* added the ability to browse and play cached tracks in `musikdroid` while - offline. +* added the ability to browse and play cached tracks in `musikdroid` while + offline. * fixed a bug that was preventing the transcoder cache from functioning properly * integrated `fabric.io` into `musikdroid` for crash reporting * added new "empty" and "offline" view states to all screens in `musikdroid` @@ -532,7 +555,7 @@ user-facing: low-level: * integrated with a customized version of the `AndroidVideoCache` library to - (hopefully) improve caching reliability. + (hopefully) improve caching reliability. * improved battery usage in `musikdroid`'s `SystemService` * fixed bug where `websocket_remote` was not letting clients know when seeking has occurred. @@ -580,14 +603,14 @@ user-facing: - added the ability to control streaming disk cache size * `websocket_remote` plugin: - added Cache-Control headers to responses -* `core`: - - found a really bad bug in the way we handle tracks in playlists. the fix +* `core`: + - found a really bad bug in the way we handle tracks in playlists. the fix requires a rebuild of the tracks metadata, which will clear playlists, but ensures this will never happen again in the future. low-level: -* cleaned up more SDK interfaces, removed support for uint64 and uint32 types, +* cleaned up more SDK interfaces, removed support for uint64 and uint32 types, only support int64 and int32. * fixed bugs in playlist track handling; playlist contents can now survive track table rebuilds! @@ -638,20 +661,20 @@ user-facing: track has an empty album name. * fixed a bug in CddaIndexerSource that may cause tracks to linger in the library longer than they should if the drive letter changed. -* added an http server to the `websocket_remote` plugin to serve audio data. +* added an http server to the `websocket_remote` plugin to serve audio data. this completes most work required to support external, thin clients. metadata can be queried via websocket, audio streamed over http. powered by - libmicrohttpd. + libmicrohttpd. low-level: * added HttpDataStream! finally! uses libcurl and libressl. audio data can now be played over http/https! * performance optimizations to metadata indexing -- drop indexes before a full - resync, then re-add them after. + resync, then re-add them after. * playlist tracks are now stored by external ids! this means tracks added from third party indexer sources can be added to playlists and persisted across - rescans. + rescans. * IIndexerSources can be interrupted, and failed sources can have their changes rolled back. * upgraded to Windows 10 SDK and VS141 tooling @@ -760,12 +783,12 @@ low-level: 0.9.4 -* added a "syncing metadata" banner that is displayed while the indexer is +* added a "syncing metadata" banner that is displayed while the indexer is scanning metadata * added a "sync metadata on startup" option to the settings view * moved the hotkey tester to its own dedicated dialog to free up some valuable screen real estate in the settings view -* fixed `PulseOut` plugin volume adjustment to work better across a wider +* fixed `PulseOut` plugin volume adjustment to work better across a wider range of audio cards. this should also improve crossfade quality * fixed a very old bug that was sometimes causing delayed redraws or flickering during layout in complex views @@ -825,7 +848,7 @@ win32 only release: user-facing: * added new `musikdroid` android remote control! super userful with a Raspberry - Pi. run musikbox in the background and control it from your phone. + Pi. run musikbox in the background and control it from your phone. * added a new `websocket_remote` plugin that allows any client capable of communciating with websockets the ability to control playback and query metadata! @@ -848,7 +871,7 @@ low-level: * added the ability for plugins to register to receive `IPreferences` and `ISimpleDataProvider` interfaces via `SetPreferences()` and `SetSimpleDataProvider`, respectively. see `websocket_remote` for an example -* fixed up `PluginFactory` to store and provide more metadata about plugins +* fixed up `PluginFactory` to store and provide more metadata about plugins when querying them. * fixed a deadlock in `PlaybackService` when changing tracks from `IPlaybackRemote` plugins. @@ -931,7 +954,7 @@ bug fixes: user-facing: * fixed the flac decoder. oops. -* changed focus behavior in search view -- pressing return in the edit field +* changed focus behavior in search view -- pressing return in the edit field will now focus the tracklist after starting playback * added sdk and plugin versioning. the plugin loader will only load plugins with a supported version. @@ -952,9 +975,9 @@ a big release with lots of changes to low-level machinery. user-facing: -* added a new "crossfade" playback mode that can be used instead of "gapless". +* added a new "crossfade" playback mode that can be used instead of "gapless". users can change this functionality in the settings view. -* fixed audio artifacts in WasapiOut and DirectSoundOut when pausing and +* fixed audio artifacts in WasapiOut and DirectSoundOut when pausing and resuming playback multiple times very quickly. * fixed a really bad bug where dialogs could not be easily dismissed in some cases. this included the first-run dialog! yikes. @@ -967,11 +990,11 @@ low-level: sufficient. * generalized MessageQueue and moved it out of app, and into core so it can be reused for other functionality (e.g. crossfading) -* added support for "mix points" in Player -- get a callback as soon as a +* added support for "mix points" in Player -- get a callback as soon as a specific playback position is hit! * fixed DirectSoundOut to fall back to software mixing if hardware mixing is unavailable -* fixed DirectSoundOut to start playback immediately, instead of sometimes +* fixed DirectSoundOut to start playback immediately, instead of sometimes requiring the buffer to be completely full -------------------------------------------------------------------------------- @@ -1013,12 +1036,12 @@ user-facing: low-level: -* optimized Stream and Player communication. more direct, less locking. no more +* optimized Stream and Player communication. more direct, less locking. no more weird deferred cleanup * removed fftw3 dependency in favor of kiss_fft. much smaller download now -* added a proper windowing algorithm to audio samples before they are handed to +* added a proper windowing algorithm to audio samples before they are handed to the fft process -* fixed audio de-interleaving issue which lead to funky fft results in some +* fixed audio de-interleaving issue which lead to funky fft results in some cases * included a new spectrum visualizer sample called GdiVis (win32 only for now) * overhauled some parts of the audio engine to ensure buffer size is consistent @@ -1043,7 +1066,7 @@ low-level: easy to accidentally focus the transport. * added mute functionality. focus the volume control and press enter or just press m while browsing your library. -* added new IPlaybackRemote and IPlaybackService sdk interfaces to support +* added new IPlaybackRemote and IPlaybackService sdk interfaces to support writing plugins that can control playback and be notified of playback events. -------------------------------------------------------------------------------- @@ -1056,8 +1079,8 @@ low-level: 0.3.4 -* visualizer support! press v to show the picker! a couple samples (Milkdrop2 - and projectM) are included below. unzip these to your musikbox\plugins +* visualizer support! press v to show the picker! a couple samples (Milkdrop2 + and projectM) are included below. unzip these to your musikbox\plugins directory. * fixed a nasty unicode conversion bug. * various other small fixes @@ -1066,7 +1089,7 @@ low-level: 0.2.2 -* small improvements to the transport view, including the display of the volume +* small improvements to the transport view, including the display of the volume percentage next to the volume slider. -------------------------------------------------------------------------------- diff --git a/CMakeLists.txt b/CMakeLists.txt index f52d237ba..d9a323814 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,16 +87,16 @@ add_subdirectory(src/plugins/httpdatastream) add_subdirectory(src/plugins/stockencoders) add_subdirectory(src/plugins/supereqdsp) -if (${FFMPEG_DECODER} MATCHES "true") - add_definitions(-DFFMPEG_DECODER) - add_subdirectory(src/plugins/ffmpegdecoder) - add_dependencies(musikcube ffmpegdecoder) -else() +if (${FFMPEG_DECODER} MATCHES "false") add_subdirectory(src/plugins/m4adecoder) add_subdirectory(src/plugins/oggdecoder) add_subdirectory(src/plugins/nomaddecoder) add_subdirectory(src/plugins/flacdecoder) add_dependencies(musikcube m4adecoder oggdecoder nomaddecoder flacdecoder) +else() + add_definitions(-DFFMPEG_DECODER) + add_subdirectory(src/plugins/ffmpegdecoder) + add_dependencies(musikcube ffmpegdecoder) endif() # some versions of Ubuntu ship with a taglib binary that is missing some @@ -234,7 +234,9 @@ if (GENERATE_DEB MATCHES "1") set(DEB_BOOST_VERSION "1.55.0") set(DEB_MICROHTTPD_VERSION "10") set(DEB_LIBCURL_VERSION "3") - if (DEB_DISTRO MATCHES "stretch") + set(DEB_AVUTIL_VERSION "55") + set(DEB_AVFORMAT_VERSION "57") + if (DEB_DISTRO MATCHES "stretch") set(DEB_BOOST_VERSION "1.62.0") set(DEB_MICROHTTPD_VERSION "12") elseif (DEB_DISTRO MATCHES "zesty") @@ -247,17 +249,25 @@ if (GENERATE_DEB MATCHES "1") set(DEB_BOOST_VERSION "1.65.1") set(DEB_MICROHTTPD_VERSION "12") set(DEB_LIBCURL_VERSION "4") + elseif (DEB_DISTRO MATCHES "curious") + set(DEB_BOOST_VERSION "1.67.1") + set(DEB_MICROHTTPD_VERSION "12") + set(DEB_LIBCURL_VERSION "4") + set(DEB_AVUTIL_VERSION "56") + set(DEB_AVFORMAT_VERSION "58") elseif (DEB_DISTRO MATCHES "xenial") set(DEB_BOOST_VERSION "1.58.0") set(DEB_MICROHTTPD_VERSION "10") + set(DEB_AVUTIL_VERSION "-ffmpeg54") + set(DEB_AVFORMAT_VERSION "-ffmpeg56") endif() set(DEPENDENCIES "libboost-thread${DEB_BOOST_VERSION}, libboost-system${DEB_BOOST_VERSION}, libboost-filesystem${DEB_BOOST_VERSION}, libmicrohttpd${DEB_MICROHTTPD_VERSION}, libcurl${DEB_LIBCURL_VERSION}, libogg0, libvorbis0a, libvorbisfile3, libncursesw5, libasound2, libpulse0, pulseaudio, libmp3lame0, libev4") - if (${FFMPEG_DECODER} MATCHES "true") - set(DEPENDENCIES "${DEPENDENCIES}, libavcodec-extra, libavutil55, libavformat57, libswresample2") - else() + if (${FFMPEG_DECODER} MATCHES "false") set(DEPENDENCIES "${DEPENDENCIES}, libflac8, libfaad2") + else() + set(DEPENDENCIES "${DEPENDENCIES}, libavcodec-extra, libavutil${DEB_AVUTIL_VERSION}, libavformat${DEB_AVFORMAT_VERSION}, libswresample2") endif() if (NOT ${USE_BUNDLED_TAGLIB} MATCHES "true") diff --git a/musikcube.spec b/musikcube.spec index 30aebda0b..cdf9066b4 100644 --- a/musikcube.spec +++ b/musikcube.spec @@ -1,6 +1,6 @@ %define name musikcube %define build_timestamp %{lua: print(os.date("%Y%m%d"))} -%define version 0.51.0 +%define version 0.60.0 Name: %{name} Version: %{version} Release: %{dist} diff --git a/src/musikcube/app/version.h b/src/musikcube/app/version.h index 09e3208d7..ab38a991f 100644 --- a/src/musikcube/app/version.h +++ b/src/musikcube/app/version.h @@ -3,9 +3,9 @@ #include #define VERSION_MAJOR 0 -#define VERSION_MINOR 51 +#define VERSION_MINOR 60 #define VERSION_PATCH 0 -#define VERSION "0.51.0" +#define VERSION "0.60.0" namespace musik { namespace cube { diff --git a/src/musikcube/musikcube.rc b/src/musikcube/musikcube.rc index 01ccb765afd61b48d43d23d2403f508502377672..e4505ed03101aea160ddc39673b635659a8960ee 100644 GIT binary patch delta 84 zcmeyM{z`qrBi6}GJW`YYv3h{%B(^dTz4;5<4rWHP$!occ8O=67rQ^fyN1ym%sRsNi5V!nc_+Ui3jhd*8@T`g