63 Commits

Author SHA1 Message Date
Tal
f6bea9f048 feat: experimental support for other file types
chore: migrate to rodio v0.21.1
feat: add a currently nonfunctional source argument to the scrape
command

well, this is an important commit for anyone who has some interest in
the workings of lowfi, so strap in.

rodio finally updated cpal, so that ugly unsafe bit of code to implement
send is no longer necessary since cpal did it themselves (a year ago)
they also removed output stream handles and some other things which
nobody really used anyway.

next, the other file types is literally not even code, just adding a
feature flag which enables the default rodio feature flags. i do feel a
bit silly for thinking it'd be super difficult, so thanks rodio.

lastly, the source flag is for a possible switch to the chillhop
tracklist. anything embedded into lowfi should be generated with an open
source script, hence if lowfi does switch to chillhop, it'll need to be
selectable.
2025-08-05 21:24:04 +02:00
Tal
0b15ce8e1b chore: give better names to track structs 2025-07-02 19:46:17 +02:00
Tal
6fadfe6304 chore: restructure and clean up 2025-07-02 19:36:53 +02:00
talwat
b6a81c9634 chore: refactor track error to use thiserror 2025-07-02 18:32:38 +02:00
talwat
1af976ad77 fix: begin work of improving error handling 2025-06-04 22:16:52 +02:00
talwat
1a76699afc fix: improve bookmarks
my computer broke so this commit is probably of a below average quality,
since i'm just backing stuff up.
2025-05-08 17:46:40 +02:00
talwat
7cdd2e7694 feat: add star indicator for bookmarking 2025-04-23 14:14:49 +02:00
talwat
d24c6b1a74 feat: implement basic bookmarking, still wip 2025-04-22 11:48:50 +02:00
talwat
d05f36a0bb chore: minor changes to internal docs 2025-03-17 16:54:16 +01:00
talwat
34577efe8f feat: add buffer size option 2025-03-17 16:32:06 +01:00
talwat
968c1ee670 chore: formatting fix 2025-03-12 14:28:29 +01:00
talwat
bbdcfdd6f2 chore: bump version 2025-03-12 14:28:05 +01:00
talwat
adcb20f2d0 fix: reform errors for track fetching 2025-03-12 14:21:37 +01:00
talwat
84f386e0eb feat: add experimental local file loading in track lists 2025-02-28 19:07:22 +01:00
talwat
ed4b79d2bf chore: redo help menu descriptions 2025-02-26 14:45:02 +01:00
talwat
a4dd55fb28 fix: incorrect variable name on linux 2025-02-22 13:08:22 +01:00
talwat
2a36bc72f3 fix: import necessary functions & types in silent_get_output_stream() 2025-02-21 22:06:56 +01:00
talwat
ece88de1ae fix: tackle lots of clippy lints, along with removing outputstream from player struct 2025-02-21 21:44:32 +01:00
talwat
1e3c66679c fix: bug where text after ! in custom names wouldn't show up 2025-02-18 21:48:30 +02:00
Tal
1e491bb36f fix: make wiser use of the cfg macro 2025-02-09 15:58:08 +01:00
talwat
3db0623a72 fix: fix potential dangling pointer 2025-01-14 11:10:58 +01:00
talwat
6ff41e0e34 chore: update dependencies 2024-12-03 14:16:31 +01:00
Tal
56b03290d0 feat: make MPRIS bus suffixes unique 2024-10-27 14:17:30 +01:00
Tal
e7ac0c9214 docs: add more internal docs for mpris 2024-10-24 19:04:14 +02:00
Tal
fe9429bfb3 chore: reintroduce clippy & fix a lot of errors 2024-10-18 23:37:45 +02:00
talwat
04d5ed335d fix(mpris): handle edge case when paused 2024-10-17 23:58:20 +02:00
talwat
083d6c473c fix(mpris): fix initial playback status when there's a new track 2024-10-17 23:18:11 +02:00
talwat
cefb95e556 fix: only import mpris_server with the feature 2024-10-17 22:46:45 +02:00
talwat
978dfbc5e2 feat(mpris): wip implementation of propertieschanged signal 2024-10-17 22:33:00 +02:00
talwat
ddc572b405 fix: refine loading indicator 2024-10-16 12:54:03 +02:00
talwat
6f9dab6aa8 docs: again go into more depth in internal documentation 2024-10-15 23:46:10 +02:00
Tal
301b831737 docs: improve internal documentation 2024-10-15 15:06:52 +02:00
Tal
10a3263c82 fix: use CString instead of new rust syntax to fix older versions of rust throwing compilation errors 2024-10-15 14:28:26 +02:00
Tal
543aeee78c
feat: add custom sources (#21)
* feat: initial work on decoupling embedded list file & the rest of the app

* chore: rename tracks.txt to lofigirl.txt

* fix: make base optional

* feat: partially revert previous commit

* feat: fix loading tracks with explicit url

* fix: include list in main player struct

* chore: reduce timeout

* chore: remove unused import

* fix: rename InitialProperties to PersistentVolume

* feat: move persistent volume init to player init function

* feat: add micropop.txt as an example of a custom tracklist

* docs: add note about mp3

* docs: move format of lists to list struct docs

* docs: document custom track lists

* fix: fix silly spelling error

* docs: update formatting

* docs: fix sample formatting

* docs: add missing sample track

* fix: fix ui when track name has special characters

* fix: use proper char counting on subject, not word

* fix: use unicode-segmentation to finally fix handling special characters

* fix: precompute track len

* fix: switch to using the unicode-width crate

* style: split off list into it's own module

* fix: move logic to read a list from the fs into the list module
2024-10-15 14:15:51 +02:00
danielwerg
8d9d003dc9
feat: add play and pause messages (#24) 2024-10-12 10:54:32 +02:00
Tal
e47ed1da94 feat: add -d flag 2024-10-07 21:32:57 +02:00
Tal
cc73fa5a37 feat: also clamp volume in mpris 2024-10-07 21:24:22 +02:00
Tal
6f7c2dbcba chore: improve readability of code relating to downloader thread 2024-10-07 17:09:22 +02:00
Tal
d9ba0c3b3b fix: make autoplay actually function properly 2024-10-07 15:17:13 +02:00
talwat
c7d46e9872 feat: add --pause flag 2024-10-07 14:39:08 +02:00
Tal
6b157dd457 feat: remember volume 2024-10-06 18:52:11 +02:00
Tal
901bf0e871
feat: support for mpris (#14)
* feat: initial support for mpris

* feat: overhaul app flow, making audio server control main thread instead of the ui thread

* fix: remove useless extra thread

* fix: last touches

* fix: call interface with minimalist flag

* fix: fix oversight when silencing alsa
2024-10-06 17:46:47 +02:00
talwat
0ef844a3f2 feat: improve slightly media key support 2024-10-04 00:09:39 +02:00
Tal
706ba97428 feat: add wip support for media keys 2024-10-03 23:19:00 +02:00
Tal
b85d8c0be2 feat: improve UI flexibility if resizing is implemented 2024-10-03 18:05:22 +02:00
Samsu
49e7191369
feat: fine grained volume adjustment (#8) 2024-10-03 14:27:27 +02:00
Tal
6b85a83749 fix: only run the hack on linux targets 2024-10-02 22:58:41 +02:00
Tal
c2baa53ded fix: finally fix the alsa warnings with libc's freopen 2024-10-02 22:56:01 +02:00
Tal
5d2e6c6d23 fix: switch to using stdout 2024-10-02 22:07:02 +02:00
Brendan Mesters
86f3f56edb
feat: add volume control & display (#4)
* feat: added volume control

I added a simple volume control to the program, using native
functionality in `rodio::sink`.

This logic has also been linked through to the UI so that users will be
aware of this fucntionality (bound to the '-' and '+' keys) and adding a
volume readout to the UI as well.

* feat: add volume bindings which work without shift

A small issue I noticed I had was that I had to press shift to hit '+',
I now bound the volume up fucntionality to '+' and '=' and the volume
down functionality to '-' and '_', to make both undependant of shift
(assuming most default western keyboard layouts)

* feat: support arrow keys

* feat: add temporarily appearing audio bar

* fix: polish input controls

---------

Co-authored-by: talwat <83217276+talwat@users.noreply.github.com>
2024-10-02 21:20:16 +02:00