Commit Graph

171 Commits

Author SHA1 Message Date
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
Přemysl Eric Janouch 525e952753
Bump liberty and termo 2020-10-10 21:31:31 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 7af041ac01
Remove unnecessary quotes from macro definitions
The behaviour is defined by the standard.
2020-09-20 13:18:07 +02:00
Přemysl Eric Janouch e21699ab47
Support iterating tabs with C-PgUp/Down and C-Left/Right 2020-09-07 18:15:39 +02:00
Přemysl Eric Janouch d124f43cf6
Support vi-like scrolling with C-y and C-e 2020-08-01 14:06:17 +02:00
Přemysl Eric Janouch 0e2a050c4f
Name change 2020-08-01 14:04:10 +02:00
Přemysl Eric Janouch 6c1546e919
Workaround cURL bug 2019-02-24 01:41:15 +01:00
Přemysl Eric Janouch cdb86652b9
Fix unmarking behaviour, cleanup 2018-10-29 15:04:22 +01:00
Přemysl Eric Janouch cbdec0552d
Allow moving multiple items in the Current tab 2018-10-29 14:45:25 +01:00
Přemysl Eric Janouch 2cd100af7a
Remove an outdated comment 2018-10-29 13:44:43 +01:00
Přemysl Eric Janouch 44ebc3591e
Make holding Shift+Up/Down behave better 2018-10-29 13:42:39 +01:00
Přemysl Eric Janouch 0691c533b4
Update selection on playlist changes 2018-10-29 13:22:56 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 841e2f79c0
Make help tab items actionable 2018-10-29 09:46:45 +01:00
Přemysl Eric Janouch 5ade0f082e
Show unbound actions in help 2018-10-29 09:19:34 +01:00
Přemysl Eric Janouch a6543a796d
Implement multiselect for deletion in Current tab 2018-10-21 05:11:20 +02:00
Přemysl Eric Janouch 1349e39941
Add keyboard shortcut d for deletion
As in vi(1).
2018-10-21 05:10:04 +02:00
Přemysl Eric Janouch f7e4d8d3d3
Add keyboard shortcuts g/G for goto top/bottom
As in less(1).
2018-10-21 04:20:06 +02:00
Přemysl Eric Janouch 8f362e787b
Add a search feature for Library tab 2018-10-21 04:17:05 +02:00
Přemysl Eric Janouch 609ddfab22
Cleanup 2018-10-20 22:22:26 +02:00
Přemysl Eric Janouch 804f051d66
Implement sequential multiselect for Library tab 2018-10-20 22:22:26 +02:00
Přemysl Eric Janouch 3c09a16a02
Fix input handling
When app_process_termo_event() returns false, it always means to beep,
not to quit the application.
2018-10-20 22:13:33 +02:00
Přemysl Eric Janouch 9c16ab4136
Mark an issue for later 2018-10-20 22:13:32 +02:00
Přemysl Eric Janouch f241a7016a
Move the line editor into its own file
Trying to make it reusable in other projects.
2018-10-20 22:13:32 +02:00
Přemysl Eric Janouch e957bba771
Use a common algorithm for scrollbars
Let's have reasonable behaviour with Unicode one as well.
2018-10-20 04:27:35 +02:00
Přemysl Eric Janouch 3fd88d593c
Improve fallback scrollbar behaviour 2018-10-20 02:51:09 +02:00
Přemysl Eric Janouch caba65b2bc
Bind the </> keys to previous/next
As in mpv.
2018-09-26 04:02:35 +02:00
Přemysl Eric Janouch 9b38c4c74f
Fix undefined behaviour 2018-07-21 23:36:13 +02:00
Přemysl Eric Janouch 7f8ad9430f
Relicense to 0BSD, update mail address
I've come to the conclusion that copyright mostly just stands in the way
of software development.  In my jurisdiction I cannot give up my own
copyright and 0BSD seems to be the closest thing to public domain.

The updated mail address, also used in my author/committer lines,
is shorter and looks nicer.  People rarely interact anyway.
2018-06-24 04:29:24 +02:00
Přemysl Eric Janouch 0f350f88b3
Cleanup 2017-06-27 04:35:02 +02:00
Přemysl Eric Janouch a1831a3ab8
Reorganize actions 2017-06-27 04:31:08 +02:00
Přemysl Eric Janouch 021bc214a3
Improve the Help tab
There are now up to three bindings per action by default, so grouping
is desirable.  We can even follow the more or less logical order given
by enumeration values.

It should be much easier to find what you need.
2017-06-27 04:31:08 +02:00
Přemysl Eric Janouch 23efe3bfdf
Cleanup 2017-06-27 04:31:08 +02:00
Přemysl Eric Janouch 4bb9b11fed
Customizable key bindings 2017-06-27 04:31:04 +02:00
Přemysl Eric Janouch 2375e0dd3e
Make Del/Bksp eat whole graphemes
Tested on some zalgo text.
2017-06-26 04:54:56 +02:00
Přemysl Eric Janouch 7d414c7647
Make left/right skip non-spacing characters 2017-06-26 04:19:42 +02:00
Přemysl Eric Janouch 33f5ba0b60
Allow running arbitrary MPD commands 2017-06-26 03:51:53 +02:00
Přemysl Eric Janouch 4261c81468
Teach the line editor to scroll + prompt 2017-06-26 03:50:29 +02:00