Tarasov Aleksandr
4b50645c93
refactor(gui): replace unsafe unwrap on gui thread lock ( #23 )
...
Replaces `audio_player_state_shared.lock().unwrap()` with `.unwrap_or_else(|e| e.into_inner())` in `src/utils/gui.rs` to allow safe recovery from poisoned locks and avoid application panics.
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-03-08 00:25:42 +03:00
Tarasov Aleksandr
89ce111542
🔒 [security fix] Handle serialization failures in daemon commands and socket communication. ( #16 )
...
- Replaced `.unwrap()` with proper error handling during JSON serialization in `GetStateCommand`, `GetTracksCommand`, and `GetFullStateCommand`.
- Added error handling for malformed client requests in the daemon's main loop.
- Ensured the daemon stays running even if serialization or deserialization fails.
- Handled potential errors from `get_all_devices()`.
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-03-06 23:02:07 +03:00
Tarasov Aleksandr
80a8b1a45f
perf: optimize value lookup in loop in GetFullStateCommand::execute ( #18 )
...
Moved the access of `audio_player.input_device_name` outside the loop
in `GetFullStateCommand::execute` to avoid repeated field access and
Option checking during iteration.
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-03-06 23:00:56 +03:00
arabianq
ce948ce678
feat: you can now get volume for all sound individually, not only via fullstate
2026-02-25 00:34:05 +03:00
arabianq
c08898e4f2
deps: bump rodio to 0.22.1
2026-02-23 13:58:08 +03:00
arabianq
58e5f039be
feat(cli, flatpak): implemented kill action for pwsp-cli.
...
use it instead of pkill in the flatpak wrapper
2026-02-23 13:40:41 +03:00
arabianq
b816d2aa88
feat: get daemon's version using pwsp-cli
...
pwsp-cli get daemon-version
2026-02-14 15:43:17 +03:00
arabianq
b0c670235e
fix: impossible to remove directories
2026-01-28 22:07:05 +03:00
arabianq
49e01f0318
fix(gui): correct calculation of vertical separator's position
2026-01-28 03:31:54 +03:00
arabianq
5ea9b3b0ba
feat(daemon): implementet get full-state command
2026-01-28 02:41:33 +03:00
arabianq
ca85d4c369
refactor: remove redundant device linking in play method
2026-01-28 02:28:23 +03:00
arabianq
4499b1d3aa
feat(gui): now directories can be reordered using drag and drop
2026-01-28 02:10:36 +03:00
arabianq
b4a0dc6a83
feat: now pwsp will automatically detect when input device is connected/disconnected and properly link/unlink it
2026-01-28 01:26:43 +03:00
arabianq
03df631690
refactor: enhance search field focus functionality and input handling
2026-01-28 00:28:08 +03:00
arabianq
cdf306cfe9
feat: make vertical separator in GUI adjustable
2026-01-27 23:51:14 +03:00
arabianq
74a436b171
fix: add serde default attribute to DaemonConfig and GuiConfig structs
2026-01-27 23:50:50 +03:00
arabianq
bae10edc99
feat: replace synchronous requests with asynchronous counterparts for improved performance
2026-01-25 00:14:14 +03:00
arabianq
03e936ac34
feat: sort tracks by their id in AudioPlayer on get_tracks
2026-01-24 23:59:23 +03:00
arabianq
4d54443593
feat: add master volume slider
2026-01-24 23:45:33 +03:00
arabianq
bd75ac6190
refactor: remove unused fields from AudioPlayerState
2026-01-24 22:34:25 +03:00
arabianq
3e6a8b6e79
feat: first attemp to support playing multiple tracks in parallel
2026-01-24 22:18:42 +03:00
arabianq
6cf4a9744d
replace println! with eprintln! for errors
2026-01-08 02:46:44 +03:00
arabianq
d9ced4e650
fix: replace .except() with correct error handling
2026-01-08 02:45:07 +03:00
arabianq
6c06da7b0d
feat: implemented toggle-loop
2026-01-02 04:39:48 +03:00
arabianq
e4b4a3d198
fix: remove unnecessary mutability in audio player lock
2026-01-02 03:59:56 +03:00
arabianq
531a49dbdf
feat: implemented loop support in pwsp-gui
2026-01-02 03:18:51 +03:00
arabianq
2a13c25230
feat: implemented loop support in pwsp-cli
2026-01-02 02:57:34 +03:00
arabianq
408f5317c4
feat: implemented loop functionality on daemon level
2026-01-02 02:25:30 +03:00
arabianq
cc3bec0746
fix: change get_state and get_position methods to take immutable reference
2026-01-02 02:09:10 +03:00
arabianq
87b791ee3a
new feature: pause playback when GUI window is closed
2025-12-16 21:08:47 +03:00
arabianq
546b6fd13f
add toggle-pause command to pwsp-cli
2025-12-16 21:08:47 +03:00
arabianq
57c4461952
fix: crash when setting negative position
2025-12-16 21:08:47 +03:00
arabianq
5c46ff4a1e
new hotkeys to select dirs, files.
2025-12-16 21:08:47 +03:00
arabianq
874c8063aa
use device name instead of node id to get audio device
2025-12-16 21:08:47 +03:00
arabianq
dee908a347
1.0.0 rewrite
2025-12-16 21:08:47 +03:00