summaryrefslogtreecommitdiff
path: root/nncmpp.c
Commit message (Collapse)AuthorAgeFilesLines
* Generate actions from a text filePřemysl Eric Janouch2021-11-081-111/+5
| | | | | | | Mostly because I wanted to nest preprocessing. This makes the build more complex and slightly less portable, but the code itself is much cleaner.
* Add ability to control PulseAudio volumePřemysl Eric Janouch2021-11-071-69/+456
| | | | | | | | 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.
* Add a comment about the music directoryPřemysl Eric Janouch2021-11-071-0/+1
|
* Do not beep on focus changesPřemysl Eric Janouch2021-11-041-3/+5
|
* CMakeLists.txt: fix macOS buildPřemysl Eric Janouch2021-11-021-2/+0
|
* Add clang-format configurationPřemysl Eric Janouch2021-10-301-1/+1
|
* Fix the line editor/spectrum analyser interactionPřemysl Eric Janouch2021-10-211-0/+6
| | | | The updater assumed the terminal cursor was invisible.
* Add program arguments to MPD's current playlistPřemysl Eric Janouch2021-09-071-10/+79
| | | | | | | | 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.
* Clean up connection initialisationPřemysl Eric Janouch2021-09-061-10/+10
| | | | | | | 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.
* Improve terminal initialisationPřemysl Eric Janouch2021-09-061-3/+3
| | | | | | | | | | | | | 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.
* Spetrum analyser: expand my favourite commentPřemysl Eric Janouch2021-07-091-1/+2
|
* Spectrum analyser: add some useful commentsPřemysl Eric Janouch2021-07-091-0/+4
|
* Spectrum analyser: optimise the x:16:2 casePřemysl Eric Janouch2021-07-081-8/+21
| | | | | | | | 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.
* Rectify an obsolete commentPřemysl Eric Janouch2021-07-081-1/+1
|
* Expand the last comment once againPřemysl Eric Janouch2021-07-081-0/+1
|
* Expand the comment on spectrum frequency filteringPřemysl Eric Janouch2021-07-051-2/+11
|
* Silence a compiler warningPřemysl Eric Janouch2021-07-051-1/+2
| | | | The statement can be eliminated, then it suggests braces.
* Add an optional spectrum visualiserPřemysl Eric Janouch2021-07-051-0/+464
| | | | | | This is really more of a demo. It's doable, just rather ugly. It would deserve some further tuning, if anyone cared enough.
* Update a comment about mouse modesPřemysl Eric Janouch2021-07-041-2/+2
| | | | We might even depend on termo now more than is stated.
* Process focus eventsPřemysl Eric Janouch2021-06-291-3/+17
| | | | Should help prevent accidents in other windows.
* Minor clarificationsPřemysl Eric Janouch2020-11-051-1/+3
|
* Comment the "poll_elapsed_time" optionPřemysl Eric Janouch2020-10-241-0/+6
|
* Show song duration in the libraryPřemysl Eric Janouch2020-10-241-4/+11
| | | | | | | | Ideally we'd make columns configurable, which isn't trivial. This brings the "Current" and "Library" tabs closer together. Closes #2
* Skip playlists in lsinfo responsesPřemysl Eric Janouch2020-10-241-4/+11
| | | | Instead of merging the fields into other items.
* Refactor the library tab, track durationPřemysl Eric Janouch2020-10-241-66/+73
| | | | | | 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.
* Use '-' instead of '?' for unknown durationPřemysl Eric Janouch2020-10-241-34/+33
| | | | | | | | 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.
* Improve the MPD time parserPřemysl Eric Janouch2020-10-241-9/+18
| | | | | | - 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
* Bind M-Up to the "up" actionPřemysl Eric Janouch2020-10-231-0/+1
| | | | Taken from Windows Explorer, which abandoned the Backspace binding.
* CleanupPřemysl Eric Janouch2020-10-231-25/+30
| | | | No functional change.
* Avoid jumping around in polling modePřemysl Eric Janouch2020-10-231-7/+18
| | | | | | | | While still avoiding busy loops. It works well enough to enable this by default. Closes #1
* Add a comment and update another onePřemysl Eric Janouch2020-10-181-0/+4
|
* Give up and implement elapsed time pollingPřemysl Eric Janouch2020-10-181-4/+35
| | | | | | | | | | | 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
* Explain the ticking mechanismPřemysl Eric Janouch2020-10-181-1/+7
| | | | Took time to read. Also fix an invalid comment.
* Bump liberty and termoPřemysl Eric Janouch2020-10-101-10/+6
|
* Make direct SHOUTcast streams work againPřemysl Eric Janouch2020-10-101-0/+4
| | | | | | 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.
* Remove unnecessary quotes from macro definitionsPřemysl Eric Janouch2020-09-201-73/+73
| | | | The behaviour is defined by the standard.
* Support iterating tabs with C-PgUp/Down and C-Left/RightPřemysl Eric Janouch2020-09-071-7/+29
|
* Support vi-like scrolling with C-y and C-ePřemysl Eric Janouch2020-08-011-0/+2
|
* Name changePřemysl Eric Janouch2020-08-011-1/+1
|
* Workaround cURL bugPřemysl Janouch2019-02-241-0/+3
|
* Fix unmarking behaviour, cleanupPřemysl Janouch2018-10-291-18/+26
|
* Allow moving multiple items in the Current tabPřemysl Janouch2018-10-291-13/+29
|
* Remove an outdated commentPřemysl Janouch2018-10-291-1/+0
|
* Make holding Shift+Up/Down behave betterPřemysl Janouch2018-10-291-25/+37
|
* Update selection on playlist changesPřemysl Janouch2018-10-291-1/+54
|
* Add actions for repeat/random/single/consumePřemysl Janouch2018-10-291-0/+16
| | | | | Now the user can at least toggle them from the help tab, or even bind them as necessary.
* Make help tab items actionablePřemysl Janouch2018-10-291-18/+57
|
* Show unbound actions in helpPřemysl Janouch2018-10-291-3/+30
|
* Implement multiselect for deletion in Current tabPřemysl Janouch2018-10-211-3/+25
|
* Add keyboard shortcut d for deletionPřemysl Janouch2018-10-211-0/+1
| | | | As in vi(1).