Commit Graph

260 Commits

Author SHA1 Message Date
casey langen
2e2ee29cbb A couple changes to support "single instance" mode in win32. 2017-06-09 15:24:58 -07:00
casey langen
a60f33fa19 Converted PlayerWrapper, MediaPlayerWrapper, ExoPlayerWrapper to Kotlin
to mess around. The rest of the project will probably follow over the
next few weeks.
2017-06-07 20:35:03 -07:00
casey langen
8a20cede48 Upgraded to Android Studio 3, Canary 3. 2017-06-05 17:45:43 -07:00
casey langen
c4486b3158 Updated pause/blink style. 2017-06-05 17:45:29 -07:00
casey langen
09fb5f1f4b Added Stetho for easy Android debugging. Updated videocache aar. Added a
check to ensure range header is well formed (to > from).
2017-06-05 00:14:28 -07:00
casey langen
6634db9ae0 Blink current time when paused, like old CD players used to. 2017-06-04 19:01:58 -07:00
casey langen
c5d88afd1c - Added buffering indicator in seekbar for transcoding streams; disallow
seeks past what's been buffered.
- Unified position of buffering indicator in MainMetadataView. Removed
  fades, they were super subtle and causing layout issues.
- Don't show the volume% unless we're in remoting mote
2017-06-04 12:00:44 -07:00
casey langen
3051ebf813 - Upgraded AndroidVideoCache to a custom build that fixes bugs related
to seeking while streaming when the backend returns an HTTP 200
  instead of a 206 (i.e. ignores a range request)
- Removed Vol+, Vol-, Seek>, and <Seek buttons in favor of current and
  total time controls with a seekbar.
- Removed LongPressTextView
- Added Snackbar notifications when switching streaming modes
2017-06-04 00:23:39 -07:00
casey langen
a1a343bda3 Create README.md 2017-06-03 13:47:25 -07:00
casey langen
29eabab4c6 Added a quick toggle for remote/streaming playback mode selection. 2017-06-03 13:46:32 -07:00
casey langen
629f8cb4a7 Android client updates that support displaying time (including syncing
and extrapolating from server timestamps)
2017-06-03 01:32:05 -07:00
casey langen
a40fea7b21 Improved filename generation in the stream proxy and a couple other
minor fixes.
2017-06-02 21:50:04 -07:00
Casey Langen
45a81cb138 * Added a distinction between SystemService sleeping (no wakelock, but appears
active) and shutdown (no notification or lockscreen controls).
* Fixed bug where recovering from an HTTP error would cause the track to reset
  playback at the beginning
2017-05-31 14:12:22 -07:00
casey langen
ab11376356 Experimental changes that use AndroidVideoCache library as a local
streaming proxy -- it, in theory, controls caching and retries better
than OkHttp.
2017-05-31 01:00:58 -07:00
casey langen
a5b7ab5107 Added a bit of missing error handling to StreamingPlaybackService.
Surprising this hasn't caused problems yet.
2017-05-29 20:04:00 -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
025ad8825f Added client/server support for "Authorization" header in audio server. 2017-05-26 19:16:46 -07:00
casey langen
24bf49408d More gracefully recover from streaming playback errors in
ExoPlayerWrapper.
2017-05-21 23:43:58 -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
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
83e7ab880f Version bump to 0.13.0. 2017-05-07 22:36:28 -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
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
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
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
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
83b371103f Fixed some musikdroid bugs related to blank/empty artists/albums/titles. 2017-04-13 18:58:30 -07:00
casey langen
deb899b4f7 Wired TaskRunner library into musikdroid 2017-03-23 17:10:59 -07:00
casey langen
e5fc875469 Version bump for release. 2017-03-04 22:57:19 -08:00
casey langen
c433073abe Added "up" navigation to musikdroid. 2017-02-26 10:22:36 -08:00
casey langen
ca60a66b8f Updated musikdroid with a new (crappy) app icon. 2017-02-25 21:59:49 -08:00
casey langen
b03f7d23e4 Added "deflate" message support to musikdroid. Also fixed a layout bug and
a couple non-translated string resources.
2017-02-25 17:43:22 -08:00
casey langen
04d7a317e9 Version bump for musikdroid. 2017-02-25 13:19:30 -08:00
casey langen
8242eda806 Fixed bug with playing audio with sample sizes != 44100 hz. Verified 192k
flac is working again!
2017-02-22 22:22:27 -08:00
casey langen
7eb62e284e Fixed checkbox drawable style for Android 4.x devices. 2017-02-18 21:52:25 -08:00
casey langen
fe33340935 Fixed volume buttons on main screen to behave like hardware volume
buttons.
2017-02-18 21:02:23 -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
0fd1e0bff9 Added code to debounce filtering on the client-side so we don't send a
bunch of extra requests to the backend when searching.
2017-02-18 13:58:02 -08:00
casey langen
264f564243 Updated default remote port to be 7905 2017-02-17 22:19:50 -08:00
casey langen
375e0d0e28 - Added support for genres and playlists
- Fixed some deep linking issues from transport controls in the main
  window
- Various other small cleanups and polish
2017-02-17 21:54:52 -08:00
Casey Langen
1403a92772 Add titles to the non main activities. 2017-02-17 10:07:53 -08:00
casey langen
3f8c34865e Ensure disconnect overlay swallows user input. 2017-02-17 00:06:01 -08:00
casey langen
f4510df6e3 Added support for simple password protected web socket sessions in the
server plugin and android client.
2017-02-16 23:37:17 -08:00
casey langen
7905dc5e34 Fixed a small bug in the TrackListScrollCache's state management. 2017-02-16 17:01:38 -08:00
casey langen
c8497f9524 A couple tweaks to ensure clients are properly disconnected when the
device sleeps -- this prevents unnecessary auto-reconnects.
2017-02-16 09:32:48 -08:00
casey langen
d25d07893c - Removed some win32-specific code from App.cpp that was causing the
message queue to get backlogged.
- Fixed a few projects that weren't configured properly for performance
  guided optimizations in win32
- Version bump in preparation for release. we're close now!
2017-02-14 23:12:43 -08:00
casey langen
a367a0471e Added musikdroid (promoted from an the musikcube-websockets external
repo).
2017-02-14 22:05:44 -08:00