Commit Graph

1318 Commits

Author SHA1 Message Date
Casey Langen
1a0361ed03 Added CMakeToolsHelpers as an OPTIONAL dependency in the main build file. This
allows for easy debugging in vscode environments.
2017-05-29 16:37:19 -07:00
casey langen
d75367b795 Update README.md 2017-05-29 14:42:42 -07:00
casey langen
d83dade88a Update README.md 2017-05-29 14:42:06 -07:00
casey langen
92d605e933 Cleaned up ServerOverlay UI to use new TextInput::StyleLine mode, and
also include additional transcoder settings.
2017-05-29 14:34:36 -07:00
casey langen
dfe8dc9693 Fixed Transcoder to behave properly (not cache files) if the file cache
size is set to zero.
2017-05-29 14:32:16 -07:00
casey langen
a282d71766 Fixed bug in TextInput where the display could get out of whack if the
string entered by the user is larger than the content width. Also added
StyleBox and StyleLine drawing modes.
2017-05-29 14:06:08 -07:00
casey langen
133f69e93b Fixed a bug where pruning the transcoder data cache could get stuck in
an infinite loop.
2017-05-29 07:33:04 -07:00
casey langen
a42532136f A couple crasher fixes that were hiding behind the inability to
hot-restart the websocket server on the backend.
2017-05-29 02:28:43 -07:00
casey langen
2140a9bc3e Version bump and CHANGELOG.txt to prep for release 2017-05-28 23:29:06 -07:00
casey langen
f3d5f0165a Unified ServerOverlay save key. 2017-05-28 23:23:10 -07:00
casey langen
f5ee491c48 Fixed .gitignore 2017-05-28 22:58:49 -07:00
casey langen
13a09cbb80 Fixed alsa, coreaudio, and pulseaudio plugins. 2017-05-28 22:30:47 -07:00
casey langen
6836af2aec - Added the ability to configure server settings in the app, as long as
the plugin is present and loaded.
- Fixed some color-related bugs in Checkbox
- Fixed some nasty bugs in Window that could cause views to be drawn
outside of parent or screen bounds, leading to curses crashes
- Added the ability for the app to get references to plugin preferences,
so it can create settings windows for them
- Fixed WebSocketServer so it can be shut down and restarted
2017-05-28 22:27:39 -07:00
casey langen
f132f778f0 Added Configurable(), Configure(), Reload() and Guid() methods to IPlugin. 2017-05-28 15:15:42 -07:00
casey langen
32f3b965e8 Fixed a bunch of missing (currently unused) responses discovered while
working on documentation.
2017-05-27 22:36:16 -07:00
casey langen
2c6dcb907f Added "minimize to tray" and "start minimized" to platforms that support
this functionality (currently only win32).
2017-05-27 13:55:12 -07:00
casey langen
025ad8825f Added client/server support for "Authorization" header in audio server. 2017-05-26 19:16:46 -07:00
casey langen
f3829564ca Renamed "contrib" to "plugins". 2017-05-22 17:10:35 -07:00
casey langen
24bf49408d More gracefully recover from streaming playback errors in
ExoPlayerWrapper.
2017-05-21 23:43:58 -07:00
casey langen
ba62116a16 Added downmuxing support to TranscodingDataStream for audio streams with
> 2 channels. Also added support for mono.
2017-05-21 23:10:33 -07:00
casey langen
167d7acacd Fixed support for transient loss of audio focus (e.g. for an incoming
call). Pause the music, then automatically resume when we retain focus.
2017-05-21 17:38:49 -07:00
casey langen
20a19218fb Added support for audio ducking (not just loss of focus). 2017-05-21 12:52:56 -07:00
casey langen
59b96d2891 Fixed potential NPE in MainMetadataView. 2017-05-20 16:54:24 -07:00
casey langen
519b1defa6 Version bump for release. 2017-05-19 20:05:49 -07:00
casey langen
3f36c8e61b Refactored and isolated all of the gross metadata and album art handling
code from MainActivity into MainMetadataView.
2017-05-19 19:45:22 -07:00
casey langen
9cf6cffef5 Fixed auto-next behavior and flashes when updating album art in the main
UI on old/slow devices.
2017-05-19 13:44:46 -07:00
casey langen
a67e05dcd2 More musikdroid client work:
1. fixed bugs around abusing the StreamingPlaybackService::next()
2. added album art to MediaSessionCompat implementation
3. minor refactors to the way AlbumArtModel works
4. added constants for preferences keys and defaults
2017-05-18 23:28:50 -07:00
casey langen
f57881c88e Generate stable track external IDs by hashing various file and metadata
fields. Playlists can now survive track table rebuilds.
2017-05-18 10:24:16 -07:00
casey langen
f8e201cb80 - fixed core library external id generation (use uuids instead of an
auto-incrementing int)
- ensure the web server plugin sends 'external_id' to clients
- allow user to configure streaming disk cache size on the android
  client
- some other android client ui cleanup
2017-05-17 23:17:24 -07:00
casey langen
646742214d A couple small but important updates to musikdroid:
(1) ensure playback is paused if/when the headset is unplugged
(2) added "double click" to go to next, and "triple click" to go to prev
2017-05-16 23:54:58 -07:00
Casey Langen
0201741689 Removed all uint32 and uint64 handling when dealing with sqlite and resource
ids. Use signed integers only. This simplifies things, and simplifies dealing
with these values in languages that don't natively support unsigned value
types, e.g. Java. It also slims down our SDK interfaces and implementations.
2017-05-16 11:17:35 -07:00
Casey Langen
002d0266e0 Added missing libhttpdatastream plugin. 2017-05-07 22:48:20 -07:00
Casey Langen
83e7ab880f Version bump to 0.13.0. 2017-05-07 22:36:28 -07:00
Casey Langen
83f09fad62 Updated HttpDataStream and Transcoder cache paths. 2017-05-07 22:34:41 -07:00
casey langen
3dca4ff746 Fixed memory leaks in TranscodingDataStream and HttpServer. 2017-05-06 11:40:59 -07:00
casey langen
0aff544712 Added buffering indicator to the android client, and also tweaked a
couple transcoder settings keys. Also updated some variable names --
we're not decoding, we're encoding!
2017-05-05 22:57:31 -07:00
Casey Langen
45811b90a0 Fixed macOS / clang3.7 compile. 2017-05-05 09:55:30 -07:00
casey langen
4068f9a0f2 Added on-demand transcoding to websocket_remote using LAME.
- Added ?bitrate=xyz param to /audio/id/ or /audio/external_id/ requests
- By default audio is transcoded incrementally, on-demand using an
  estimated content-length. On a range request, the stream is transcoded
  entirely. Transcoded audio is cached upon completion to make
  subsequent requests faster and ease server load.
- Updated the Android client to support transcoding options. Transcoding
  is disabled by default.
- Added a scary warning to the "disable ssl cert validation" option.
2017-05-05 00:16:11 -07:00
casey langen
0ed02330f8 Added missing IBuffer::Destroy(), added IEnvironment::GetBuffer(), and
bumped SDK revision.
2017-05-03 18:11:45 -07:00
casey langen
26edd36087 Generate album ids based on album+albumArtist. This way things like
"greatest hits" albums get sorted properly.
2017-05-03 18:11:44 -07:00
casey langen
6351c1ec78 Fixed a memory leak in WebSocketService when using RxJava. 2017-05-03 18:11:44 -07:00
casey langen
5596b4ca5a Oops, these changes didn't get merged into the last commit -- added the
ability to disable ssl cert validation (useful on a local network).
2017-05-03 18:11:44 -07:00
casey langen
c155cfcf03 Oops, these changes didn't get merged into the last commit -- added the
ability to disable ssl cert validation (useful on a local network).
2017-05-02 10:15:58 -07:00
casey langen
67e1dcc14d Added support for HTTPS and WSS. 2017-05-01 22:42:21 -07:00
casey langen
f7408e48f5 Update README.md 2017-04-30 20:07:48 -07:00
casey langen
6f575683b9 Version bump in preparation for release. 2017-04-30 19:46:38 -07:00
casey langen
8ce038c416 Added fast scrollers to RecyclerViews, and also integrated an
OkHttpDataStream for ExoPlayer so we can take advantage of its caching
capabilities.
2017-04-30 19:46:38 -07:00
casey langen
881ef906a2 Update README.md 2017-04-30 15:52:06 -07:00
casey langen
cc86141c2a Update README.md 2017-04-30 00:16:49 -07:00
casey langen
78ce185471 Added support for streaming playback from musikbox server -> musikdroid
Android app. Summary of required changes:

1. Removed TransportModel and related classes, created PlaybackService
interface. Old TransportModel code now lives in RemotePlaybackService.

2. Added StreamingPlaybackService implementation of PlaybackService.
Uses MediaPlayer or ExoPlayer to stream audio via HTTP.

3. Added SystemService that is used by StreamingPlaybackService. It's a
real Android service that manages notifications, wake locks, media
buttons, and other system integrations.

4. Added RxJava and RxAndroid. Use them in StreamingPlaybackService to
keep logic as sane as possible.

5. Added playback mode selection to settings (streaming vs remote). Also
added a field for streaming audio port.

6. Added "ids_only" request type to WebSocketServer when requesting list of
tracks.
2017-04-29 21:15:10 -07:00