Commit Graph

1287 Commits

Author SHA1 Message Date
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
casey langen
7caeb3c20f Update README.md 2017-04-16 00:36:31 -07:00
casey langen
8b2752abe5 Updated HttpServer to allow querying audio data by either id or
external_id.
2017-04-15 23:45:20 -07:00
casey langen
59946d3cea Data layer and IIndexerSource plugin updates:
1. Drop indexes before sync, then re-create after. This speeds up the
indexing process.

2. 'external_id' field now required for all tracks.

3. Added IIndexerSource::HasStableIds(). We use this as a hint to not
remove orphaned tracks from existing playlists when re-scanning.

4. Removed 'track_id' from 'playlist_tracks' table, and added
'track_external_id' and 'source_id' instead.

5. Indexer will only scan for plugins once now, during initialization.
2017-04-15 21:20:37 -07:00
Casey Langen
cb4c1adc5b Integrated libmicrohttpd into the websocket_remote plugin to serve track audio
data (not metadata). Clients using the websocket interface can use this to play
music locally, instead of just remotely.
2017-04-14 10:04:48 -07:00
casey langen
83b371103f Fixed some musikdroid bugs related to blank/empty artists/albums/titles. 2017-04-13 18:58:30 -07:00
Casey Langen
0fe6983706 Merge branch 'master' of github.com:clangen/musikcube 2017-04-09 12:20:42 -07:00
casey langen
63381607a9 Fixed broken "sync on startup" preference. 2017-04-09 12:20:15 -07:00
Casey Langen
ccb1fc8ef9 Indexer sources can now be interrupted, and failed sources can have their
transactions rolled back.
2017-04-09 12:10:40 -07:00
casey langen
1dd69725f5 Update README.md 2017-04-09 00:02:58 -07:00
casey langen
fb879e23eb Update README.md 2017-04-09 00:00:30 -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
b3df1787c6 Version bump and CHANGELOG updates. 2017-04-04 07:33:13 -07:00
casey langen
23b8b3cc9e Fixed weird auto scroll behavior in NowPlayingLayout when manually
selecting a new play index. Also, added ListWindow::IsEntryVisible().
2017-04-03 20:56:54 -07:00
casey langen
82485ba6f3 - Created a denormalized "tracks_view" sqlite view that will come in
useful for things like dynamic playlists.
- Updated CategoryListQuery to initialize mappings statically, instead
  of during construction, locking a mutex.
2017-04-02 14:26:09 -07:00