Commit graph

150 commits

Author SHA1 Message Date
Roderick van Domburg 0e2686863a
Major metadata refactoring and enhancement
* Expose all fields of recent protobufs

 * Add support for user-scoped playlists, user root playlists and
   playlist annotations

 * Convert messages with the Rust type system

 * Attempt to adhere to embargos (tracks and episodes scheduled for
   future release)

 * Return `Result`s with meaningful errors instead of panicking on
   `unwrap`s

 * Add foundation for future playlist editing

 * Up version in connection handshake to get all version-gated features
2021-12-07 23:22:24 +01: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
Roderick van Domburg 3a2455d686
Merge branch 'dev' into log-volume-ctrl-optimisations 2021-05-26 20:50:42 +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 9b6ba49026
Add "discovery" compat layer to "connect" 2021-05-19 21:09:38 +02:00
Johannesd3 ebea5397b9
Add librespot-discovery crate 2021-05-19 21:05:19 +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 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 6077a1ef4e
Remove unused block-modes dep 2021-05-01 10:41:39 +02:00
johannesd3 ddf41a49f2
Update lower version bound for some deps 2021-05-01 10:40:52 +02:00
Sasha Hilton 9a75ca195e Update spirc shuffle command for tokio migration 2021-05-01 01:48:42 +01:00
Sasha Hilton 617b3b72b7
Merge pull request #666 from jackvstrickland/dev
Add shuffle command and command handling
2021-05-01 01:20:03 +01:00
johannesd3 b7350b71da Restore previous feature flags
Some of the feature flags librespot uses are not really additive but
rather mutual exclusive. A previous attempt to improve the situation
had other drawbacks, so it's better to postpone a decision and restore
the old behaviour.
2021-04-10 12:50:30 +02:00
johannesd3 e688e7e886 Almost eliminate util module 2021-04-10 12:50:30 +02:00
johannesd3 7ddb1a20bb Reuse librespot-core's Diffie Hellman in discovery 2021-04-09 22:39:47 +02:00
johannesd3 f5274f5ada Merge branch 'dev' into tokio_migration 2021-04-09 10:39:06 +02:00
johannesd3 059b9029de Remove redundant field names 2021-03-10 22:41:46 +01:00
johannesd3 5616004dbe Fix many clippy lints
...and other small improvements
2021-03-10 22:41:44 +01:00
Jack Strickland eb4dacbc59 Add shuffle command and command handling 2021-03-09 15:37:11 -06: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 59c556635e Clean up librespot-connect dependencies 2021-02-23 22:22:53 +01:00
johannesd3 d064ffc670 Use tokio channels and fix compilation errors 2021-02-23 22:22:53 +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 2060901c1e
Merge pull request #605 from flaktack/spirc-command-play-pause
Fix state toggling in SpircCommand::PlayPause
2021-02-21 23:30:48 +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
Will Stott 0b211f923f Stabilization of libmdns at 0.2.7 (includes fix for NetBSD) 2021-02-21 18:54:16 +00:00
johannesd3 1c4d57c6da Add shutdown to discovery server 2021-02-21 14:10:00 +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
Zsombor Welker 392a12af92 Fix toggling in SpircCommand::PlayPause
Fix play/pause toggling in handle_play_pause() to correctly call handled_play()/handle_pause() based on the state.
2021-02-20 15:05:53 +01:00
johannesd3 34733baa75 Bump crypto crates 2021-02-13 19:10:57 +01:00
johannesd3 872fab62d8 Merge branch 'dev' into tokio_migration 2021-02-10 21:51:33 +01:00
johannesd3 09e506ed66 Replace version functions by constants 2021-02-09 19:42:56 +01:00
Sasha Hilton deabf1f915 Minor updates to discovery and device types 2021-02-09 03:16:40 +00:00
johannesd3 fd1f049572 Removed volume struct 2021-01-25 10:52:06 +01:00
ashthespy c69ccf77e9 [Connect] Migrate to tokio 0.1 2021-01-23 22:21:42 +00:00
ashthespy 931c8207fc [Connect] Migrate to hyper ~v12 2021-01-23 22:21:42 +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 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