Konstantin Seiler
9eef690a22
Some clean up
2020-02-02 11:08:46 +11:00
Konstantin Seiler
5784b4652c
Prepare for gapless play.
...
- change communication between player and spirc to use player events channel.
- enhance player events channel
- have spirc send loading messages to Spotify
- enable preloading of tracks in the player
2020-02-01 08:41:11 +11:00
Sasha Hilton
83140bea88
Merge pull request #427 from kaymes/connection-lost-crash
...
Gracefully handle lost network connections
2020-01-30 02:04:37 +01:00
Sasha Hilton
e9c3357e41
Run cargo fmt
2020-01-24 02:26:16 +01:00
misuzu
b8617f54a9
Added subprocess audio backend
2020-01-24 02:35:48 +02:00
Sasha Hilton
cdcb919c08
Merge branch 'dev' into connection-lost-crash
2020-01-24 01:02:40 +01:00
Konstantin Seiler
04b52d7878
Have player handle Mercury errors while loading tracks.
2020-01-23 01:15:30 +11:00
marcelbuesing
c9147d31ab
Turn child crates into rust 2018 edition
2020-01-17 20:54:05 +01:00
marcelbuesing
38d82f2dc2
Rerun rustfmt on full codebase
2020-01-17 18:47:30 +01:00
ashthespy
d26590afc5
Update to Rust 2018
...
- Fix deprecated Error::cause warnings and missing dyn
- Reset max_width
- Add rustfmt to Travis
- Run rustfmt on full codebase
with `cargo fmt --all`
- Add rustfmt to Travis
- Complete migration to edition 2018
- Replace try! shorthand
- Use explicit `dyn Trait`
2020-01-17 18:11:52 +01:00
Sean McNamara
d30ffcd1c0
Mostly fix play/pause/stop behavior. Pause is latent.
2019-12-25 17:51:22 -05:00
Sean McNamara
664c76b201
Fix playback on track change. Pause/resume is still weird.
2019-12-25 16:36:30 -05:00
Sean McNamara
ed04c049cc
Working proof of concept with up to date gstreamer bindings and Rust 2018.
2019-12-25 12:19:48 -05:00
Sean McNamara
6707389732
Forward port plietar's WIP gstreamer backend.
2019-12-25 06:19:12 -05:00
Konstantin Seiler
d2d6df0e24
Run cargo fmt for my code.
2019-11-11 18:22:41 +11:00
Konstantin Seiler
6422dcef78
Refine file downloading heuristics to use data rates and ping times everywhere.
2019-11-08 00:02:53 +11:00
Konstantin Seiler
c50fc9885a
Adapt code for the new bitrate selection via alternatives.
2019-11-06 08:16:01 +11:00
Konstantin Seiler
9b069effb2
Merge remote-tracking branch 'origin/dev' into dynamic-blocks
...
Adapt code for the aternative bitrate selection.
2019-11-06 08:10:41 +11:00
Konstantin Seiler
1fcacf78cd
Merge branch 'dynamic-blocks' into comments
2019-11-02 09:22:35 +11:00
Konstantin Seiler
5ad6446616
remove compiler warning
2019-11-02 09:22:07 +11:00
Konstantin Seiler
6545674a63
Merge remote-tracking branch 'origin/master' into dynamic-blocks
2019-11-02 07:15:23 +11:00
Konstantin Seiler
bf47ca7033
some debug messages
2019-11-02 06:48:18 +11:00
Konstantin Seiler
333fc5010c
New file downloading mechanism
2019-11-02 06:46:28 +11:00
ashthespy
8eb51e9b55
Streamline and refactor Podcast support,
...
<Metadata>
Add publisher to `Show`
Add `ALLOWED` to `PassthroughEnum`
2019-10-30 11:33:17 +01:00
ashthespy
0cb7a3f7c8
WIP: Podcast support
2019-10-30 11:33:17 +01:00
Nick Mavis
c19375c5ca
Fixed nightly conflict with
2019-09-16 15:00:09 -04:00
Sasha Hilton
6c4311fe72
Merge pull request #283 from matikij/sdl-backend
...
add SDL backend based on sdl2 crate
2019-04-12 05:43:52 +02:00
Mateusz Kijowski
18a6746ac0
Remove unnecessary comments, fix typo
2019-03-22 02:05:30 +01:00
Mateusz Kijowski
52c5b18825
add SDL backend based on sdl2 crate
2019-03-22 02:05:30 +01:00
ashthespy
8fd0caf583
Explicitly set start_threshold
and pretty print devices
2019-03-22 00:00:58 +01:00
ashthespy
cc6c9b2dc4
More alsa
stragglers
2019-03-22 00:00:58 +01:00
ashthespy
a80bf86a2b
Clean up alsa stragglers and typos
2019-03-22 00:00:58 +01:00
ashthespy
0e1147077c
Add run time option flags for AlsaMixer
...
Add `Cargo.lock` for Travis
2019-03-22 00:00:57 +01:00
ashthespy
99106c5ae3
Rework alsa
hw and mixer parameters
2019-03-22 00:00:14 +01:00
ashthespy
08cfb1516d
Switch to latest alsa-rs
crate
2019-03-22 00:00:14 +01:00
ashthespy
a67048c3d7
Add initial support for alsamixer
2019-03-22 00:00:14 +01:00
Will Stott
99703a268f
Warn when there's a Rodio failure accessing a default device formats.
2019-03-20 13:24:08 +00:00
Will Stott
5ceb4db9b8
Improve formatting and macro usage in devices list.
2019-03-20 13:24:08 +00:00
Will Stott
587aa9c711
Simple block of playback thread based on buffer size.
2019-03-20 13:24:07 +00:00
Will Stott
49fd48b42a
Sink.play is not the opposite of Sink.stop in Rodio
2019-03-20 13:24:07 +00:00
Will Stott
2c2bfc52ac
Cpal -> Rodio
...
Doesn't work that well.
2019-03-20 13:24:03 +00:00
Will Stott
1eb5b7d127
Turns out I don't have an appropriate output device.
2019-03-20 13:16:29 +00:00
Will Stott
ac9423d9d9
cpal backend builds. Panics building output stream on my system.
2019-03-20 13:16:29 +00:00
Will Stott
891298171c
Initial untested VecDeque concept.
2019-03-20 13:16:29 +00:00
Konstantin Seiler
43dcc6b55b
Remove deft over debug message.
2019-03-10 11:46:25 +11:00
Konstantin Seiler
43959ee788
Commit missing ;
2019-03-09 20:07:45 +11:00
Konstantin Seiler
2e492e4d44
Speed up playback by avoiding unnecessary seek when playing from the beginning of a file.
2019-03-09 19:30:27 +11:00
Konstantin Seiler
a3c63b4e05
Speed up loading of files by requesting file and key in parallel.
2019-03-09 19:29:47 +11:00
Harold
00e89343fb
Formatting
2018-07-03 13:08:42 +02:00
Brice
d40c0f50db
Cache volume across restarts ( #220 )
...
* create Volume struct for use with Cache
* add "volume" file to Cache
* load cached volume on start, intial overrides cached overrides default
* amend volume_to_mixer function to cache the volume on every change
* pass cache to Spirc and SpircTask so volume_to_mixer has access
* rustfmt changes
* revert volume_to_mixer function and Spirc/SpircTask cache variable
* Volume implements Copy, pass by value instead of reference
* clamp volume to 100 if cached value exceeds limit
* convert Volume to u16 internally, use float and round to convert hex->dec
* convert initial_volume and ConnectConfig.volume to u16 as well
* add cache_volume function to SpircTask
* remove conversion to/from percentage on cached volume
* consolidate device.set_volume, mixer.set_volume, and caching
* streamline intial volume logic
2018-05-17 03:15:17 +02:00
StopMotionCuber
21f1ccfb5a
Fixed Jackaudio compiling ( #222 )
2018-05-15 20:33:58 +02:00
Reinier Balt
ab70e6ec40
run rustfmt --all
2018-04-25 19:29:50 +02:00
Reinier Balt
2aea0e8fe6
do not panic on connection reset
2018-04-21 17:46:29 +02:00
Johan Anderholm
612978908f
Reformat according to new rustfmt rules
2018-03-24 08:45:43 +00:00
Thomas Bächler
0c18aa51ad
playback: pulseaudio: Panic in write if data is empty
2018-03-20 14:14:44 +01:00
Thomas Bächler
014533a583
playback: Only send a packet to the audio backend if it isn't empty
...
The lewton decoder sometimes delivers empty packets, especially after skipping inside a
track or switching tracks. This caused the pulseaudio backend to fail since it expects
a non-empty packet. There is no need to handle empty packets in the audio backend, so
we can skip them entirely.
2018-03-20 14:14:44 +01:00
Sasha Hilton
f830322e14
Fix spotify URI logging
2018-02-28 13:35:31 +01:00
Sasha Hilton
cbc4ee7554
Add to_base62 method
2018-02-28 13:29:24 +01:00
Sasha Hilton
a7334b6c23
Add to_base62 method
2018-02-28 13:28:57 +01:00
Sasha Hilton
237ef1e4f9
Format according to rustfmt
2018-02-26 02:50:41 +01:00
Sasha Hilton
bde157fad7
Merge branch 'master' into events-on-prev-next
2018-02-24 20:16:28 +01:00
Sasha Hilton
542ec9d3b5
Minor style changes to normalisation code
2018-02-24 16:30:24 +01:00
Simon Persson
8c3f587f30
Assignment instead of mem::repalce()
2018-02-24 10:50:48 +01:00
Sasha Hilton
127f8b7bab
Add constant for readability
2018-02-23 20:52:28 +01:00
Sasha Hilton
fc6c414e71
[ci skip] Correct spelling
2018-02-23 20:33:58 +01:00
Simon Persson
1518459048
Minor fixes after review.
2018-02-23 20:16:03 +01:00
Sasha Hilton
f8db550e5e
Add volume normalisation support
2018-02-23 20:08:20 +01:00
Simon Persson
9ff6fe900c
Don't log messages when sending player events over channel.
2018-02-20 23:31:33 +01:00
Simon Persson
93af49aadf
Send player event messages over futures aware channel.
2018-02-20 23:12:29 +01:00
Simon Persson
081a282e12
Removed unreachable cases.
2018-02-20 22:09:53 +01:00
Simon Persson
ef48afbf41
Simplify match with if let.
2018-02-20 22:05:05 +01:00
Simon Persson
3e2e6d63f7
Send Changed event after song change even if we stop playback.
2018-02-20 22:03:21 +01:00
Simon Persson
0a6825ba61
Add playing_to_end_of_track method to PlayerState.
2018-02-20 21:58:02 +01:00
Simon Persson
1b943d069f
Move PlayerEvent into player.
2018-02-20 21:57:42 +01:00
Simon Persson
b0ee03112f
First attempt at a better playback event system.
2018-02-16 00:16:38 +01:00
Simon Persson
77bea07c4f
Run onstart/onstop when a new song is loaded
2018-02-14 23:39:44 +01:00
awiouy
4c2b641cad
core API: move spotify_id to lib.rs
2018-02-13 07:57:28 +01:00
awiouy
191caca518
core API: move Bitrate and PlayerConfig from core to playback
2018-02-11 23:55:41 +01:00
awiouy
a35edc6af4
core API: move run_program to player.rs
2018-02-10 17:58:15 +01:00
awiouy
496a802248
core API: move subfile.rs to player.rs
2018-02-10 17:58:15 +01:00
Sasha Hilton
1fb65354b0
Move audio backends into seperate crate
2018-02-09 02:05:50 +01:00