Commit Graph

328 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 6b871898d8
Fix build on macOS and other non-GNU systems 2021-11-08 06:36:01 +01:00
Přemysl Eric Janouch 4598c45d2f
Generate actions from a text file
Mostly because I wanted to nest preprocessing.

This makes the build more complex and slightly less portable,
but the code itself is much cleaner.
2021-11-08 06:07:04 +01:00
Přemysl Eric Janouch 66c77c3f8d
Update README 2021-11-07 23:21:32 +01:00
Přemysl Eric Janouch 7165a8eb02
Add ability to control PulseAudio volume
I know, son, it might be hard to accept,
but you're imported.  Your true parents are wmstatus
and paswitch, from the desktop-tools family.

Also, fix unnecessary linking of optional dependencies.
2021-11-07 23:07:55 +01:00
Přemysl Eric Janouch 87b57bb24c
Add a comment about the music directory 2021-11-07 13:29:13 +01:00
Přemysl Eric Janouch ba86961ba5
Bump version, update NEWS 2021-11-04 14:19:50 +01:00
Přemysl Eric Janouch 0cdb4989e5
Bump termo 2021-11-04 14:16:25 +01:00
Přemysl Eric Janouch 6de940fe96
Do not beep on focus changes 2021-11-04 13:24:15 +01:00
Přemysl Eric Janouch 6bd8c1db2f
CMakeLists.txt: fix macOS build 2021-11-02 17:17:32 +01:00
Přemysl Eric Janouch 56efe9c6a9
Update .gitignore 2021-10-30 03:35:49 +02:00
Přemysl Eric Janouch 8a17e674f8
CMakeLists.txt: clean up 2021-10-30 03:02:00 +02:00
Přemysl Eric Janouch bd0ee66c19
Add clang-format configuration 2021-10-30 03:02:00 +02:00
Přemysl Eric Janouch 6f6efe077b
CMakeLists.txt: synchronize with sdtui 2021-10-27 19:48:47 +02:00
Přemysl Eric Janouch ee5c41b2bf
README: update dependencies 2021-10-21 09:21:08 +02:00
Přemysl Eric Janouch 9a67e076a9
Bump version, update NEWS 2021-10-21 09:16:51 +02:00
Přemysl Eric Janouch 53fbb3dec1
Fix the line editor/spectrum analyser interaction
The updater assumed the terminal cursor was invisible.
2021-10-21 09:13:07 +02:00
Přemysl Eric Janouch 267598643a
Add program arguments to MPD's current playlist
I was tired of using `mpv --no-video`, this is a bit better.

It's all rather quirky, but very little code is involved.

I've added a few related TODO entries.
2021-09-07 06:35:24 +02:00
Přemysl Eric Janouch fba1210e9f
Clean up connection initialisation
Also, do not set up the spectrum visualiser before a password is sent.

It would look a bit weird to have it run but display "Disconnected",
even though technically, it would probably work.
2021-09-06 21:48:27 +02:00
Přemysl Eric Janouch 30777e8fd3
Improve terminal initialisation
Don't just abort() on failures, print a proper error message.

Also, set up ncurses as late as possible.  This should be alright wrt.
signal handlers according to ncurses code, as well as XSI:

> Curses implementations may provide for special handling of
> the SIGINT, SIGQUIT and SIGTSTP signals if their disposition
> is SIG_DFL at the time initscr is called ...

termo blocks job control, so SIGTSTP is not a concern at all.
2021-09-06 21:30:03 +02:00
Přemysl Eric Janouch 353174ee3c
Spetrum analyser: expand my favourite comment 2021-07-09 20:08:53 +02:00
Přemysl Eric Janouch 2d641d087f
Spectrum analyser: add some useful comments 2021-07-09 06:25:48 +02:00
Přemysl Eric Janouch 20c8385f2e
Spectrum analyser: optimise the x:16:2 case
nncmpp CPU usage went from 2 to 1.7 percent, a 15% improvement.

Sort of worth it, given that it's a constant load.

The assembly certainly looks nicer.
2021-07-08 19:14:26 +02:00
Přemysl Eric Janouch fa4443a3ce
Rectify an obsolete comment 2021-07-08 04:33:03 +02:00
Přemysl Eric Janouch 14ba637d4b
Expand the last comment once again 2021-07-08 04:32:53 +02:00
Přemysl Eric Janouch 66bc3f1c2c
Expand the comment on spectrum frequency filtering 2021-07-05 23:42:51 +02:00
Přemysl Eric Janouch 0646cea126
Silence a compiler warning
The statement can be eliminated, then it suggests braces.
2021-07-05 01:26:16 +02:00
Přemysl Eric Janouch a439a56ee9
Add an optional spectrum visualiser
This is really more of a demo.  It's doable, just rather ugly.

It would deserve some further tuning, if anyone cared enough.
2021-07-05 01:10:46 +02:00
Přemysl Eric Janouch 120a11ca1b
Update a comment about mouse modes
We might even depend on termo now more than is stated.
2021-07-04 10:23:37 +02:00
Přemysl Eric Janouch 7e531e95c5
Process focus events
Should help prevent accidents in other windows.
2021-06-29 05:28:54 +02:00
Přemysl Eric Janouch 0335443b22
Bump version, update NEWS 2020-11-05 01:47:18 +01:00
Přemysl Eric Janouch 70ff29e3d5
Add a real manual page
Closes #3
2020-11-05 01:47:06 +01:00
Přemysl Eric Janouch ba122b7672
Minor clarifications 2020-11-05 01:47:05 +01:00
Přemysl Eric Janouch 456fab5b11
CMakeLists.txt: install the contrib directory 2020-11-05 01:47:05 +01:00
Přemysl Eric Janouch f4999a63a5
CMakeLists.txt: make this build in OpenBSD 2020-10-29 18:14:41 +01:00
Přemysl Eric Janouch 33b4976d7a
CMakeLists.txt: omit end{if,foreach} expressions
Their usefulness was almost negative.
2020-10-29 18:14:41 +01:00
Přemysl Eric Janouch df82357cfd
Bump minimum CMake version to 3.0
A nice, round number.  This allows us to remove some boilerplate.
2020-10-29 18:14:41 +01:00
Přemysl Eric Janouch bd5152a9e7
Bump termo
This allows us to get rid of a compiler flag.
2020-10-29 18:14:40 +01:00
Přemysl Eric Janouch 322a60aa39
Bump liberty 2020-10-29 18:14:40 +01:00
Přemysl Eric Janouch e86f4b6908
Comment the "poll_elapsed_time" option 2020-10-24 15:44:12 +02:00
Přemysl Eric Janouch 26b6b1f902
Show song duration in the library
Ideally we'd make columns configurable, which isn't trivial.

This brings the "Current" and "Library" tabs closer together.

Closes #2
2020-10-24 14:58:53 +02:00
Přemysl Eric Janouch 8121046be6
Skip playlists in lsinfo responses
Instead of merging the fields into other items.
2020-10-24 14:58:48 +02:00
Přemysl Eric Janouch 0dc29a3e2d
Refactor the library tab, track duration
The `struct strv` was clunky, it's better to store items
directly in the format we use for all processing.
The additional memory cost is negligible.
2020-10-24 14:55:25 +02:00
Přemysl Eric Janouch 791c000791
Use '-' instead of '?' for unknown duration
It is less distracting.

Also use mpd_read_time() and load "duration" as well.
This value isn't rounded to whole seconds, so we load
it before "time" as a fail-safe measure.
2020-10-24 14:54:17 +02:00
Přemysl Eric Janouch c0119027b1
Improve the MPD time parser
- reject negative values, which strtoul() happily accepts
 - deal with an arbitrary number of decimal digits
 - don't return milliseconds when we fail to parse seconds
2020-10-24 14:54:12 +02:00
Přemysl Eric Janouch 3934d9b1f9
Bind M-Up to the "up" action
Taken from Windows Explorer, which abandoned the Backspace binding.
2020-10-23 03:33:26 +02:00
Přemysl Eric Janouch 2d3909fdd1
Cleanup
No functional change.
2020-10-23 02:57:34 +02:00
Přemysl Eric Janouch b6ce8a0913
Avoid jumping around in polling mode
While still avoiding busy loops.

It works well enough to enable this by default.

Closes #1
2020-10-23 02:42:18 +02:00
Přemysl Eric Janouch 9928eca274
Add a comment and update another one 2020-10-18 21:09:03 +02:00
Přemysl Eric Janouch 6c2ae2f6bb
Give up and implement elapsed time polling
Playback may sometimes stall but it won't produce any events.

This popular workaround likes to jump around, though.
It might be a good idea to use some kind of hybrid approach.

Therefore this is disabled by default so far.

Updates #1
2020-10-18 07:28:14 +02:00
Přemysl Eric Janouch b3579d1128
Explain the ticking mechanism
Took time to read.  Also fix an invalid comment.
2020-10-18 05:57:44 +02:00