Commit graph

67 commits

Author SHA1 Message Date
Christian König
2cd2346edb
Fix map_clone and explicit truncate when file is create
Signed-off-by: Christian König <ckoenig@posteo.de>
2024-03-31 14:32:00 +00:00
Wang Guan
ebf600d96e do not overwrite unchanged cached Credentials (#1168) 2023-07-14 00:02:57 +09:00
eladyn
4d402e690c
add session timeout handling (#1129) 2023-06-01 21:39:35 +02:00
Christian König
d8547f176c
Update quick-xml
Signed-off-by: Christian König <ckoenig@posteo.de>
2023-04-14 09:41:58 +02:00
Roderick van Domburg
6dc7a11b09
Re-introduce autoplay command-line option as an override 2022-09-28 22:59:03 +02:00
JasonLG1979
8545f361c4 Major Events Overhaul
Special thanks to @eladyn for all of their help and suggestions.

* Add all player events to `player_event_handler.rs`

* Move event handler code to `player_event_handler.rs`

* Add session events

* Clean up and de-noise events and event firing

* Added metadata support via a TrackChanged event

* Add `event_handler_example.py`

* Handle invalid track start positions by just starting the track from the beginning

* Add repeat support to `spirc.rs`

* Add `disconnect`, `set_position_ms` and `set_volume` to `spirc.rs`

* Set `PlayStatus` to the correct value when Player is loading to avoid blanking out the controls when `self.play_status` is `LoadingPlay` or `LoadingPause` in `spirc.rs`

* Handle attempts to play local files better by basically ignoring attempts to load them in `handle_remote_update` in `spirc.rs`

* Add an event worker thread that runs async to the main thread(s) but sync to itself to prevent potential data races for event consumers.

* Get rid of (probably harmless) `.unwrap()` in `main.rs`

* Ensure that events are emited in a logical order and at logical times

* Handle invalid and disappearing devices better

* Ignore SpircCommands unless we're active with the exception of ShutDown
2022-09-17 16:21:10 -05:00
Roderick van Domburg
16dbade516
Try another access point if so instructed 2022-08-29 23:51:29 +02:00
Roderick van Domburg
dbf71c0dff
Move mostly harmless messages to debug level 2022-08-25 20:49:40 +02:00
Roderick van Domburg
5344258ba9
Relax some non-fatal events to WARN level
Fixes #1029
2022-07-30 22:39:05 +02:00
Roderick van Domburg
05b9b13cf8
Merge branch 'dev' into new-api and update crates 2022-07-27 23:31:11 +02:00
Louis Seubert
6c2491b9a3
adding callback for reusable credentials (#983)
This allows more control over how the credentials are saved to the cache
2022-05-20 12:53:44 +02:00
Roderick van Domburg
0822af0328
Use configured client ID on initial connection (fixes #941) 2022-01-22 21:17:55 +01:00
Roderick van Domburg
8851951f04
Change counting to spirc and player
They can be reinstantiated, unlike the `session` which is now
intended to be constructed once.
2022-01-16 21:29:59 +01:00
Roderick van Domburg
abbc3bade8
Register message listeners before connecting 2022-01-16 01:14:00 +01:00
Roderick van Domburg
32df4a401d
Add configurable client ID and listen for updates 2022-01-12 22:09:57 +01:00
Roderick van Domburg
1a7c440bd7
Improve lock ordering and contention 2022-01-05 20:44:08 +01:00
Roderick van Domburg
2af34fc674
Add product metrics to requests 2021-12-30 22:36:38 +01:00
Roderick van Domburg
05c768f612
Add audio preview, image and head file support 2021-12-30 21:35:43 +01:00
Roderick van Domburg
b4f7a9e35e
Change to parking_lot and remove remaining panics 2021-12-26 23:02:02 +01:00
Roderick van Domburg
62461be1fc
Change panics into Result<_, librespot_core::Error> 2021-12-26 21:18:42 +01:00
Roderick van Domburg
9a93cca562
Get connection ID 2021-12-11 23:06:58 +01:00
Roderick van Domburg
9a31aa0362
Pretty-print trace messages 2021-12-11 20:45:08 +01:00
Roderick van Domburg
e748d543e9
Check availability from the catalogue attribute 2021-12-11 20:22:44 +01:00
Roderick van Domburg
9a0d2390b7
Get user attributes and updates 2021-12-11 00:03:35 +01:00
Roderick van Domburg
d19fd24074
Add spclient and HTTPS support
* Change metadata to use spclient
 * Add support for HTTPS proxies
 * Start purging unwraps and using Result instead
2021-11-26 23:28:37 +01:00
Roderick van Domburg
aa4cc0bee6
Ignore known but unused packets 2021-06-23 21:26:52 +02:00
Roderick van Domburg
0703630041
Use PacketType instead of hex identifiers 2021-06-22 23:57:38 +02:00
Roderick van Domburg
eee79f2a1e
Introduce caching ApResolver component 2021-06-21 23:49:37 +02:00
Roderick van Domburg
15628842af
Introduce HTTP client 2021-06-20 23:09:27 +02:00
Roderick van Domburg
850db43254
Add token provider 2021-06-19 23:46:48 +02:00
Roderick van Domburg
6244515879
Resolve dealer and spclient access points (#795) 2021-06-10 22:24:40 +02:00
johannesd3
1ade02b7ad
Add basic websocket support 2021-05-26 16:51:13 +02:00
johannesd3
7d6267c0a2
Use ready macro to reduce boilerplate 2021-04-17 12:23:24 +02:00
johannesd3
4c2fc61d64 Better joining of session tasks 2021-04-12 22:54:32 +02:00
johannesd3
95fedf5357 Add back hyper-proxy 2021-03-27 15:36:33 +01:00
Evan Cameron
6a33eb4efa
minor cleanup 2021-02-28 21:54:19 -05:00
johannesd3
27f308b82f Replace error_chain by thiserror 2021-02-23 22:22:52 +01:00
johannesd3
10827bd6a8 Clean up dependencies of librespot-core
* Use sub-crates of future
* Remove unnecessary pin-project
* Removed unused crates and features
* Replace futures channels by tokio channels
* Use serde's "derive" feature flag instead of serde_derive
2021-02-23 22:22:51 +01:00
johannesd3
007e653f3d Restore original blocking player behaviour 2021-02-21 17:04:44 +01:00
johannesd3
872fab62d8 Merge branch 'dev' into tokio_migration 2021-02-10 21:51:33 +01:00
Alexandre Trendel
71e9295ee8 fix: map authentication errors to a custom error type 2021-02-05 14:26:32 +01:00
johannesd3
40e6355c34 Migrate core to tokio 1.0 2021-01-25 09:04:33 +01:00
Sasha Hilton
e9c3357e41 Run cargo fmt 2020-01-24 02:26:16 +01:00
Sasha Hilton
cdcb919c08
Merge branch 'dev' into connection-lost-crash 2020-01-24 01:02:40 +01:00
Konstantin Seiler
ea1e0925dc Enable proper shutdown of the channels. 2020-01-23 01:23:34 +11:00
Konstantin Seiler
3fe3849588 Enable Mercury to be shut down and all pending requests being cancelled. 2020-01-23 01:14:43 +11:00
Konstantin Seiler
b6c676ad60 Prevent librespot from panicking if server connection is lost. 2020-01-22 21:55:45 +11: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
George Hahn
6e280b3c88 Upgrade dependencies 2019-07-17 22:08:15 -05:00
Michael Edwards
9b4ede086a Server time delta is a signed integer
Fixes #322
2019-03-26 21:45:23 +01:00