Commit Graph

1301 Commits

Author SHA1 Message Date
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
casey langen
3941485d23 Fixed album art loading in musikdroid when a CD is playing. 2017-04-23 16:24:47 -07:00
casey langen
e37f01ac51 Added new "add to beginning of play queue" and "play album" context menu
options.
2017-04-23 12:55:54 -07:00
casey langen
ed4d2fcb4c Added cddb lookup (using freedb) to CddaDataModel! 2017-04-23 10:51:13 -07:00
casey langen
60ce7d1b81 Don't display "syncing metadata (0 tracks processed)"... instead, just
display "syncing metadata..."
2017-04-23 00:43:36 -07:00
casey langen
26bee45a45 Fixed track upsert logic to be more reliable. 2017-04-22 12:33:10 -07:00
casey langen
91a6c07233 Updated CHANGELOG.txt for release. 2017-04-20 23:41:44 -07:00
casey langen
657208ae87 Moved curl and libressl dlls to the plugins directory for windows build. 2017-04-20 23:16:11 -07:00
casey langen
3c34c7a494 Fixed a bug in CddaIndexerSource where tracks may not get removed from
the library if the drive letter changes.
2017-04-19 23:19:56 -07:00
casey langen
a434cd14a1 Update README.md 2017-04-18 00:45:03 -07:00
casey langen
6bfbb6518b Update README.md 2017-04-18 00:43:16 -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
37fc0fe805 musik_uint64 -> uint64_t, musik_int64 -> int64_t. 2017-04-17 20:42:34 -07:00
casey langen
d1069a0d94 Added BindInt32, BindInt64, ColumnInt32, ColumnInt64 to make dealing
with different sized integers more explicit.
2017-04-17 20:39:55 -07:00
casey langen
d019ec3da9 Fixed some bugs in HttpServer relating to byte offset bounds checking
and status code handling.
2017-04-16 14:17:18 -07:00
Casey Langen
9ca0a865e2 Version bump to 0.12.0 2017-04-16 13:23:45 -07:00
casey langen
d305e266ce Fixed macOS compile. 2017-04-16 12:43:30 -07:00
casey langen
844b0d0537 Update README.md 2017-04-16 00:37:01 -07:00