Roderick van Domburg
aa4cc0bee6
Ignore known but unused packets
2021-06-23 21:26:52 +02:00
Roderick van Domburg
12365ae082
Fix comment
2021-06-22 23:58:35 +02:00
Roderick van Domburg
0703630041
Use PacketType
instead of hex identifiers
2021-06-22 23:57:38 +02:00
Roderick van Domburg
4fe1183a80
Fix compilation on Rust 1.48
2021-06-22 21:54:50 +02:00
Roderick van Domburg
d3074f597a
Remove keymaster
and update example
2021-06-22 21:49:36 +02:00
Roderick van Domburg
3a7843d049
Fix refilling with proxies and a race condition
2021-06-22 21:39:38 +02:00
Roderick van Domburg
eee79f2a1e
Introduce caching ApResolver
component
2021-06-21 23:49:37 +02:00
Roderick van Domburg
b6357a27a5
Store token_type
and simplify scopes
argument
2021-06-21 23:48:53 +02:00
Roderick van Domburg
15628842af
Introduce HTTP client
2021-06-20 23:09:27 +02:00
Roderick van Domburg
ce4f8dc288
Remove superfluous status check
2021-06-20 20:45:15 +02:00
Roderick van Domburg
e1e265179f
Document known token scopes
2021-06-20 20:40:33 +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
Roderick van Domburg
7c975f8ed0
Remove feature gate around apresolve
2021-06-01 20:43:23 +02:00
Roderick van Domburg
ad19b69bfb
Various code improvements ( #777 )
...
* Remove deprecated use of std::u16::MAX
* Use `FromStr` for fallible `&str` conversions
* DRY up strings into constants
* Change `as_ref().map()` into `as_deref()`
* Use `Duration` for time constants and functions
* Optimize `Vec` with response times
* Move comments for `rustdoc` to parse
2021-05-31 22:32:39 +02:00
johannesd3
3be50fd90f
Corrected documentation
2021-05-27 17:20:49 +02:00
Johannesd3
7ed35396f8
Mostly cosmetic changes in dealer
( #762 )
...
* Add missing timeout on reconnect
* Cosmetic changes
2021-05-27 15:33:29 +02:00
johannesd3
049bcf616f
Fix integer overflow in spotify_id
2021-05-27 15:29:36 +02:00
johannesd3
14c1779056
Adjust arg types of Credentials::with_blob
...
... to avoid redundant utf-8 checking
2021-05-26 21:52:36 +02:00
Roderick van Domburg
3a2455d686
Merge branch 'dev' into log-volume-ctrl-optimisations
2021-05-26 20:50:42 +02:00
Roderick van Domburg
d8ec98015c
Merge pull request #673 from Johannesd3/discovery-crate
...
Create separate discovery crate
2021-05-26 20:21:43 +02:00
johannesd3
1ade02b7ad
Add basic websocket support
2021-05-26 16:51:13 +02:00
Johannesd3
28dd842e05
Fix bug in MercurySender
2021-05-24 16:31:34 +02:00
Roderick van Domburg
eca505c387
Improve volume controls
...
This is a squashed commit featuring the following:
Connect:
- Synchronize player volume with mixer volume on playback
- Fix step size on volume up/down events
- Remove no-op mixer started/stopped logic
Playback:
- Move from `connect` to `playback` crate
- Make cubic volume control available to all mixers with `--volume-ctrl cubic`
- Normalize volumes to `[0.0..1.0]` instead of `[0..65535]` for greater precision and performance (breaking)
- Add `--volume-range` option to set dB range and control `log` and `cubic` volume control curves
- Fix `log` and `cubic` volume controls to be mute at zero volume
Alsa mixer:
- Complete rewrite (breaking)
- Query card dB range for the `log` volume control unless specified otherwise
- Query dB range from Alsa softvol (previously only from hardware)
- Use `--device` name for `--mixer-card` unless specified otherwise
- Fix consistency for `cubic` between cards that report minimum volume as mute, and cards that report some dB value
- Fix `--volume-ctrl {linear|log}` to work as expected
- Removed `--mixer-linear-volume` option; use `--volume-ctrl linear` instead
2021-05-24 15:53:32 +02:00
Johannesd3
ebea5397b9
Add librespot-discovery crate
2021-05-19 21:05:19 +02:00
johannesd3
68818758a2
Add timeout to test
2021-05-18 15:17:30 +02:00
johannesd3
041f084d7f
Fix warnings
2021-05-13 22:42:55 +02:00
johannesd3
1c62af9160
Unpin protobuf version
2021-05-08 22:09:37 +02:00
Sasha Hilton
3cd5ef32c4
Merge branch 'dev'
2021-05-04 13:16:39 +01:00
Sasha Hilton
7570241d86
Change wildcard env_logger dependency to version 0.8
2021-05-04 13:16:16 +01:00
Sasha Hilton
2ef3928691
Update version numbers to 0.2.0
2021-05-04 13:05:13 +01:00
johannesd3
1681574846
Bump hmac and pbkdf2
2021-05-01 10:53:14 +02:00
johannesd3
ddf41a49f2
Update lower version bound for some deps
2021-05-01 10:40:52 +02:00
Sasha Hilton
9d5ac1b156
Merge pull request #699 from Johannesd3/ready-macro
...
Use `ready!` macro to reduce boilerplate
2021-05-01 01:25:14 +01:00
johannesd3
de6bc32dea
Add documentation, logging and tests
2021-04-21 11:29:32 +02:00
johannesd3
e9dc9cd839
Add size limit to cache
2021-04-21 11:29:08 +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
690e0d2e10
Add simple tests to librespot-core
...
The first test checks whether apresolve works. A second test tries
to create a Spotify sessions with fake credentials and asserts that
an error is returned.
2021-04-10 12:50:30 +02:00
johannesd3
e688e7e886
Almost eliminate util module
2021-04-10 12:50:30 +02:00
johannesd3
9378ae5b6f
Bump num-bigint dependency
2021-04-09 22:39:51 +02:00
johannesd3
11ce29077e
Fix formatting
2021-04-09 10:45:48 +02:00
johannesd3
7c3d89112d
Fix clippy warnings
2021-04-09 10:45:43 +02:00
johannesd3
f5274f5ada
Merge branch 'dev' into tokio_migration
2021-04-09 10:39:06 +02:00
Ash
d4dfd4890f
Merge pull request #674 from Johannesd3/proxy-support
...
[Tokio migration] Add back hyper-proxy
2021-03-29 21:00:18 +02:00
johannesd3
95fedf5357
Add back hyper-proxy
2021-03-27 15:36:33 +01:00
ThouCheese
ec1ec59b8a
update examples
...
Re-add default impl to SessionConfig and make Credentials::with_password generic over Into<String>
add docs for Credential
reintroduce old Default impl for SessionConfig
use the third argument for the track-to-play rather than a testing id
2021-03-24 01:14:44 +01:00
johannesd3
5616004dbe
Fix many clippy lints
...
...and other small improvements
2021-03-10 22:41:44 +01:00
Evan Cameron
6a33eb4efa
minor cleanup
2021-02-28 21:54:19 -05:00
Ash
56f1fb6dae
Merge pull request #595 from Johannesd3/const_versions
...
Replace version functions by constants
2021-02-26 10:47:44 +01:00
johannesd3
f22b41956f
Update url crate to 2.1
2021-02-23 22:22:53 +01:00
johannesd3
18179e73ec
Remove unused dependencies and fix feature flags
2021-02-23 22:22:53 +01: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
8cff10e983
Put apresolve behind feature flag
2021-02-23 22:22:51 +01:00
johannesd3
9253be7bc9
Small refactor of librespot-core
...
* Remove default impl for `SessionConfig`
* Move util mod to single file
* Restore privacy of mods
* Move `fn get_credentials` to application
* Remove `extern crate` statements
2021-02-23 22:22:51 +01:00
johannesd3
678d1777fd
Merge branch 'dev' into tokio_migration
2021-02-23 22:22:49 +01:00
Sasha Hilton
d8c1b491c4
Merge branch 'master' into dev
2021-02-22 00:57:45 +00:00
Sasha Hilton
b7c3609c7b
Update version numbers to 0.1.6
2021-02-22 00:37:28 +00:00
Sasha Hilton
4e1c24d98d
Merge pull request #602 from Johannesd3/bumb_crypto_crates
...
Bump crypto crates
2021-02-21 23:29:00 +00:00
johannesd3
007e653f3d
Restore original blocking player behaviour
2021-02-21 17:04:44 +01:00
johannesd3
2c81aaaf4e
Implement MercurySender not as sink
2021-02-21 14:10:00 +01:00
johannesd3
daf7ecd23a
Migrate librespot-connect to tokio 1.0
2021-02-21 14:09:31 +01:00
Sasha Hilton
7f705ed148
Merge branch 'master' into dev
2021-02-20 23:31:04 +00:00
Sasha Hilton
2c110ca256
Update version numbers to 0.1.5
2021-02-20 23:05:56 +00:00
johannesd3
bce4858b9e
Add semver constant, rename "build id" env var
2021-02-17 15:04:16 +01:00
johannesd3
34733baa75
Bump crypto crates
2021-02-13 19:10:57 +01:00
johannesd3
b77f0a18ce
Fix formatting
2021-02-13 10:29:00 +01:00
johannesd3
85be0d075a
Adjust documentation
2021-02-12 20:21:07 +01:00
johannesd3
872fab62d8
Merge branch 'dev' into tokio_migration
2021-02-10 21:51:33 +01:00
Sasha Hilton
ea8ece36d9
Merge pull request #597 from librespot-org/config-update
...
Update CI MSRV, remove Travis. Minor tweaks to device discovery.
2021-02-10 00:48:31 +00:00
johannesd3
09e506ed66
Replace version functions by constants
2021-02-09 19:42:56 +01:00
Sasha Hilton
b72485cf46
Merge pull request #593 from Johannesd3/fix-issue-591
2021-02-09 13:54:47 +00:00
Sasha Hilton
deabf1f915
Minor updates to discovery and device types
2021-02-09 03:16:40 +00:00
Sasha Hilton
84ba421818
Merge pull request #566 from xou816/fix/map-auth-errors
...
fix: map authentication errors to a custom error type
2021-02-06 02:54:11 +00:00
Alexandre Trendel
71e9295ee8
fix: map authentication errors to a custom error type
2021-02-05 14:26:32 +01:00
johannesd3
3446864838
Handle corrupt cache files ( #591 )
2021-02-02 02:18:58 +01:00
Sasha Hilton
a09845ee7d
Merge pull request #582 from Johannesd3/refactor_cache_remove_volume
2021-02-02 01:08:07 +00:00
johannesd3
efedc678d0
Handle cache full situation
2021-01-31 10:00:02 +01:00
johannesd3
bb44b99c92
Use proxytunnel in apresolve
...
Implementing the tower_service::Service trait for a newly created
ProxyTunnel struct, so it can be used as connector in hyper.
2021-01-30 14:45:31 +01:00
johannesd3
c1d62d72a7
Fixed ProxyTunnel
2021-01-30 14:03:34 +01:00
johannesd3
a45fe85c27
Enable logging in test
2021-01-30 13:53:44 +01:00
johannesd3
e582f0a3fc
Improved SpotifyId implementation
...
Moved conversion of SpotifyAudioType from and to &str directly to traits
Used a simpler and more idiomatic syntax in some places.
2021-01-29 11:50:50 +01:00
Michał Chojnacki
6b09836117
Refactor SpotifyId
...
- perf:
* base62 encoding is an order of magnitude faster (~20x);
* base16/62 enc/dec and from_uri are several times faster (~2-20x);
* Let FileId::to_base16() reuse the hex encoder (~20x);
- changes:
* Add to_uri() method;
* Make from_uri() error handling consistent;
* Move audio type from string matching to a SpotifyAudioType factory (private);
* Implent From/Into<&str> for SpotifyAudioType;
* Add representation sizes as associated constants (private);
- cs/docs:
* Add rudimentary docs for most public funcs;
* Add trivial test cases for the codecs;
2021-01-29 11:33:31 +01:00
johannesd3
07514c9dcc
Add proxy support to apresolve
2021-01-25 20:55:49 +01:00
johannesd3
fd1f049572
Removed volume struct
2021-01-25 10:52:06 +01:00
johannesd3
fa5c9f7d11
Made locations in cache optional
...
The locations of credentials, volume and audio are now stored
in three separate Optional<PathBuf>s.
Removed the clearing of the cache if an error occurs. This might
be added again later.
2021-01-25 10:48:14 +01:00
johannesd3
14a004f84c
Refactored Cache
...
Proper error handling, and moving the conversion between
{ credentials, volume } and file into the cache module
2021-01-25 10:47:42 +01:00
johannesd3
6c9d8c8d83
Replace pin_project and updated dependencies
2021-01-25 09:04:33 +01:00
johannesd3
6867ad0750
Added test
2021-01-25 09:04:33 +01:00
johannesd3
40e6355c34
Migrate core to tokio 1.0
2021-01-25 09:04:33 +01:00
Sasha Hilton
06f5aa9c90
Fix incorrect audio cache directory reference
2021-01-02 23:31:37 +00:00
Sasha Hilton
414383db18
Merge pull request #506 from LaurentLouf/feature-split_cache_folders
...
Feature split cache folders, resolves #505
2021-01-02 23:17:33 +00:00
Lyndon Brown
4fbbe44ab8
bump base64
dependency (v0.10 to v0.13)
...
very little changed, compiles fine after.
2020-12-14 11:53:54 +00:00
Lyndon Brown
0460429380
bump num-bigint
dependency (v0.2 to v0.3)
...
compiles fine after version change; version changes seem to be very minimal.
2020-12-14 11:53:54 +00:00
Lyndon Brown
bc973d02dc
bump uuid
dependency from 0.7 to 0.8
...
seems compatible
2020-12-14 11:53:54 +00:00
Sasha Hilton
c8713a6c01
Merge pull request #518 from LaurentLouf/feature-handle_cache_full_situation
...
Handle cache full situation
2020-12-13 17:34:14 +00:00
Lyndon Brown
4708e0a2bf
cargo toml formatting fix
...
for consistency
2020-11-26 19:31:51 +00:00
Lyndon Brown
f87cbd6fde
add missing repo links to sub-crate cargo toml files
...
such that links are available from their crates.io pages to the project repo.
2020-11-26 19:30:37 +00:00
Laurent Louf
5f11ddea50
Main issue is probably when copying the content to the file, not during the file creation, but handle both cases just to be sure
2020-08-04 12:25:32 +02:00