Commit Graph

210 Commits

Author SHA1 Message Date
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
353174ee3c
Spetrum analyser: expand my favourite comment 2021-07-09 20:08:53 +02:00
2d641d087f
Spectrum analyser: add some useful comments 2021-07-09 06:25:48 +02:00
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
fa4443a3ce
Rectify an obsolete comment 2021-07-08 04:33:03 +02:00
14ba637d4b
Expand the last comment once again 2021-07-08 04:32:53 +02:00
66bc3f1c2c
Expand the comment on spectrum frequency filtering 2021-07-05 23:42:51 +02:00
0646cea126
Silence a compiler warning
The statement can be eliminated, then it suggests braces.
2021-07-05 01:26:16 +02:00
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
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
7e531e95c5
Process focus events
Should help prevent accidents in other windows.
2021-06-29 05:28:54 +02:00
0335443b22
Bump version, update NEWS 2020-11-05 01:47:18 +01:00
70ff29e3d5
Add a real manual page
Closes #3
2020-11-05 01:47:06 +01:00
ba122b7672
Minor clarifications 2020-11-05 01:47:05 +01:00
456fab5b11
CMakeLists.txt: install the contrib directory 2020-11-05 01:47:05 +01:00
f4999a63a5
CMakeLists.txt: make this build in OpenBSD 2020-10-29 18:14:41 +01:00
33b4976d7a
CMakeLists.txt: omit end{if,foreach} expressions
Their usefulness was almost negative.
2020-10-29 18:14:41 +01:00
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
bd5152a9e7
Bump termo
This allows us to get rid of a compiler flag.
2020-10-29 18:14:40 +01:00
322a60aa39
Bump liberty 2020-10-29 18:14:40 +01:00
e86f4b6908
Comment the "poll_elapsed_time" option 2020-10-24 15:44:12 +02:00
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
8121046be6
Skip playlists in lsinfo responses
Instead of merging the fields into other items.
2020-10-24 14:58:48 +02:00
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
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
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
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
2d3909fdd1
Cleanup
No functional change.
2020-10-23 02:57:34 +02:00
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
9928eca274
Add a comment and update another one 2020-10-18 21:09:03 +02:00
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
b3579d1128
Explain the ticking mechanism
Took time to read.  Also fix an invalid comment.
2020-10-18 05:57:44 +02:00
525e952753
Bump liberty and termo 2020-10-10 21:31:31 +02:00
8707b38c48
Make direct SHOUTcast streams work again
Might be an issue specific to my bbc-on-ice, since we're not asking
for SHOUTcast by including "Icy-MetaData: 1" in request headers
but the proxy always outputs an "ICY 200 OK" header.
2020-10-10 14:48:22 +02:00
7af041ac01
Remove unnecessary quotes from macro definitions
The behaviour is defined by the standard.
2020-09-20 13:18:07 +02:00
1f0cab7cdd
Bump liberty 2020-09-07 18:15:39 +02:00
e21699ab47
Support iterating tabs with C-PgUp/Down and C-Left/Right 2020-09-07 18:15:39 +02:00
d124f43cf6
Support vi-like scrolling with C-y and C-e 2020-08-01 14:06:17 +02:00
0e2a050c4f
Name change 2020-08-01 14:04:10 +02:00
6c1546e919
Workaround cURL bug 2019-02-24 01:41:15 +01:00
15e583beb2
Bump version to 0.9 2018-11-02 21:50:36 +01:00
cdb86652b9
Fix unmarking behaviour, cleanup 2018-10-29 15:04:22 +01:00
cbdec0552d
Allow moving multiple items in the Current tab 2018-10-29 14:45:25 +01:00
2cd100af7a
Remove an outdated comment 2018-10-29 13:44:43 +01:00
44ebc3591e
Make holding Shift+Up/Down behave better 2018-10-29 13:42:39 +01:00
0691c533b4
Update selection on playlist changes 2018-10-29 13:22:56 +01:00
6298235e22
Add actions for repeat/random/single/consume
Now the user can at least toggle them from the help tab,
or even bind them as necessary.
2018-10-29 09:58:43 +01:00
841e2f79c0
Make help tab items actionable 2018-10-29 09:46:45 +01:00
5ade0f082e
Show unbound actions in help 2018-10-29 09:19:34 +01:00
0e443c0dcd
Add color themes to contrib 2018-10-22 20:36:06 +02:00