Commit Graph

263 Commits

Author SHA1 Message Date
Přemysl Eric Janouch c5fcc1c8c1
More beeping 2017-06-05 22:19:12 +02:00
Přemysl Eric Janouch 7f66f801f4
Give up on freeing tab resources 2017-06-05 21:34:50 +02:00
Přemysl Eric Janouch 1dbece753e
Auto-resume playback on replace 2017-06-05 21:20:31 +02:00
Přemysl Eric Janouch 19605f9b7b
Use song IDs when available 2017-06-05 20:54:50 +02:00
Přemysl Eric Janouch cadc846fd4
Cleanup 2017-06-05 20:26:28 +02:00
Přemysl Eric Janouch 34bbff2f71
Remove a pointless TODO 2017-06-05 20:14:49 +02:00
Přemysl Eric Janouch abb5022793
Invalidate a TODO 2017-06-05 20:09:47 +02:00
Přemysl Eric Janouch e0e63cb177
Make code a bit more compact 2017-06-05 20:02:21 +02:00
Přemysl Eric Janouch 627cb0dee9
Add and bind backward/forward seeks 2017-06-05 19:57:00 +02:00
Přemysl Eric Janouch 77c78d8866
Fix a little glitch 2017-06-05 19:50:04 +02:00
Přemysl Eric Janouch 7b41ae1658
Simplify view code
Now we beep if selection movement is impossible.

It still looks a bit more obfuscated than it needs to be.
2017-06-05 19:39:06 +02:00
Přemysl Eric Janouch e62c41f4a1
Use the ARRAY abstraction 2017-06-05 18:59:23 +02:00
Přemysl Eric Janouch b050113eed
Show playlist length time
Now we look distinctly Sonata-like.
2017-06-05 18:51:18 +02:00
Přemysl Eric Janouch 0541b7e179
Uncapitalize cURL errors 2017-06-05 13:05:33 +02:00
Přemysl Eric Janouch 99f2117d4c
Implement L/M/H bindings 2017-06-05 01:24:10 +02:00
Přemysl Eric Janouch 8c260c3fc3
Only display enabled options 2017-06-05 01:09:55 +02:00
Přemysl Eric Janouch a343156930
Show the current path in Library
The UI code is totally ad-hoc and ugly.
2017-06-05 00:56:34 +02:00
Přemysl Eric Janouch 2223680504
Add interface for database updates 2017-06-05 00:18:53 +02:00
Přemysl Eric Janouch 92f350ef04
Stop eating errors
Instead show them up in the status bar with a timeout.
2017-06-04 23:58:04 +02:00
Přemysl Eric Janouch c4965726f4
Add a basic statusbar
Unfortunately so far the user can't toggle the options.
2017-06-04 23:08:36 +02:00
Přemysl Eric Janouch e808d06651
Cleanup 2017-06-04 04:32:30 +02:00
Přemysl Eric Janouch 8c3b0670ce
Remember the position when browsing Library 2017-06-04 04:32:30 +02:00
Přemysl Eric Janouch e8a0864ead
Add an attribute for directories
Completely overrides row colors though.
2017-06-04 04:32:29 +02:00
Přemysl Eric Janouch 57b4a9688d
Only change path when we get its contents 2017-06-04 04:32:25 +02:00
Přemysl Eric Janouch 653ff1373f
Don't default to negative selection 2017-06-04 03:04:35 +02:00
Přemysl Eric Janouch 86b87bee74
Cleanup 2017-06-04 03:04:35 +02:00
Přemysl Eric Janouch 5721074b48
Make backspace go up a level 2017-06-03 23:33:08 +02:00
Přemysl Eric Janouch a1436318b6
Improve SIGWINCH handling 2017-06-03 23:03:38 +02:00
Přemysl Eric Janouch a1548bed00
Fix and update LICENSE 2017-02-03 23:09:25 +01:00
Přemysl Eric Janouch f9c85e3ef2
Don't show "playing" when we don't know 2017-01-29 18:21:27 +01:00
Přemysl Eric Janouch 4cc079b6b6
Fix segfault on insufficient privileges 2017-01-29 18:18:58 +01:00
Přemysl Eric Janouch 87a738161a
Factor out app_fitting_items() 2017-01-29 17:56:59 +01:00
Přemysl Eric Janouch d95eb500f7
ATTRIBUTE_HEADER -> ATTRIBUTE_NORMAL 2017-01-29 17:55:50 +01:00
Přemysl Eric Janouch 993fe3f2d6
g_ctx -> g
Because it's just plain noise.  But I still enjoy the indicator.
2017-01-29 15:26:55 +01:00
Přemysl Eric Janouch 36e726eca0
Resolve the APP_ATTR situation 2017-01-29 15:17:35 +01:00
Přemysl Eric Janouch 5939c7135a
Handle disconnects better
Reset all state and update the UI.
2017-01-29 15:03:00 +01:00
Přemysl Eric Janouch ae67595c3e
Rewrite mpd_update_playback_state()
- no longer make destructive changes to the state
 - use "duration" and support millisecond precision
 - clean up
2017-01-28 01:53:57 +01:00
Přemysl Eric Janouch efc14a94f0
Trivial source code fixes 2017-01-27 23:53:09 +01:00
Přemysl Eric Janouch acd6e32983
Fix memory leaks in uses of the MPD_SIMPLE macro 2017-01-24 16:25:42 +01:00
Přemysl Eric Janouch 912b424515
Use binary search for key bindings 2017-01-24 16:23:20 +01:00
Přemysl Eric Janouch 9697898b42
Update copyright years 2017-01-24 00:18:03 +01:00
Přemysl Eric Janouch 30498ff856
Fix visual regression 2017-01-24 00:12:46 +01:00
Přemysl Eric Janouch f76b060dc2
Mark some memory leaks to be fixed 2017-01-23 23:32:59 +01:00
Přemysl Eric Janouch a1e9d660bd
Bump liberty 2017-01-23 23:32:30 +01:00
Přemysl Eric Janouch fc5981a361
Cleanup 2017-01-17 19:29:39 +01:00
Přemysl Eric Janouch 4aea3239b9
Improve double click detection 2016-11-20 23:15:28 +01:00
Přemysl Eric Janouch 1fa2ddbdfd
Fix launch w/o configuration 2016-11-20 23:14:47 +01:00
Přemysl Eric Janouch b9a27cf187
Use case insensitive ordering 2016-10-23 18:51:07 +02:00
Přemysl Eric Janouch 214c6e848b
Show song length in the playlist 2016-10-23 01:01:07 +02:00
Přemysl Eric Janouch 1a1347839c
Handle double clicks on items 2016-10-13 14:03:17 +02:00
Přemysl Eric Janouch 62ac29993e
Nicer playlist 2016-10-13 02:03:32 +02:00
Přemysl Eric Janouch a8deb3c218
Factor out mpd_parse_kv() 2016-10-13 01:50:00 +02:00
Přemysl Eric Janouch 62a08ad4d3
Clean up mpd_process_info(), bump liberty
"command_list_ok_begin" allows us to partition the response easily.
2016-10-13 01:50:00 +02:00
Přemysl Eric Janouch 5bf0410587
Simplify mpd_process_info()
At a cost but still a win as I see it.
2016-10-13 01:49:56 +02:00
Přemysl Eric Janouch fd1d918832
Clean up library_tab_on_data() 2016-10-13 00:48:02 +02:00
Přemysl Eric Janouch 0c65af91d9
First round of Library tab cleanups 2016-10-12 23:45:48 +02:00
Přemysl Eric Janouch e92a23d679
Rename "user actions" to "actions" 2016-10-12 16:06:23 +02:00
Přemysl Eric Janouch ea6b12ba7d
Hack together a Library tab
This needs serious clean up.  Even though it's not the first iteration.
2016-10-12 15:23:38 +02:00
Přemysl Eric Janouch d364f28039
Fix view after playlist update 2016-10-12 15:10:38 +02:00
Přemysl Eric Janouch 7b79dc3e57
Try to optimize playlists
I'm not entirely sure about this.
2016-10-12 15:10:32 +02:00
Přemysl Eric Janouch 4542bdd239
Move the MPD client interface to liberty
It seems like there aren't going to be any big changes any time soon.
2016-10-11 10:58:38 +02:00
Přemysl Eric Janouch b3d9ac2514
Allow switching tabs with just numbers 2016-10-11 10:58:38 +02:00
Přemysl Eric Janouch c0e07ec5d1
Add some actions, implement playlist control 2016-10-11 10:58:14 +02:00
Přemysl Eric Janouch 0b9e21c7fe
Fix regression in appearance 2016-10-10 16:30:15 +02:00
Přemysl Eric Janouch d9f992b23d
Add a dumb Current tab 2016-10-10 16:25:16 +02:00
Přemysl Eric Janouch 01ab646b11
Clean up initialization a bit 2016-10-10 11:13:52 +02:00
Přemysl Eric Janouch e513102318
Rewrite Streams code to be more asynchronous
Also made cURL troubleshooting easier by adding a debug callback.
2016-10-10 10:40:12 +02:00
Přemysl Eric Janouch 29bc035ecf
Ensure UTF-8 when parsing playlists 2016-10-10 10:16:28 +02:00
Přemysl Eric Janouch 44e19d68f0
Bump liberty 2016-10-10 07:48:18 +02:00
Přemysl Eric Janouch 7944a91707
Factor out an abstraction for cURL multi interface 2016-10-10 07:45:17 +02:00
Přemysl Eric Janouch 1f565b4d32
Make the Streams tab actually work
Clean up work is required now.
2016-10-09 09:48:47 +02:00
Přemysl Eric Janouch 4480d3c0cf
Further simplify terminal output
Most mess has been eliminated now, I believe.

Also fixing a bug in row_buffer_space().
2016-10-07 22:15:46 +02:00
Přemysl Eric Janouch 44f114fc3b
Omitted part of the beeping commit 2016-10-07 21:41:32 +02:00
Přemysl Eric Janouch 6edf3d945e
Improve row_buffer_ellipsis()
Fixing a minor appearance regression from one of the last commits.
2016-10-07 00:51:49 +02:00
Přemysl Eric Janouch 4a1646c7e9
Beep on unhandled events
We have app_quit(), let's use the return booleans for something better.
2016-10-07 00:36:43 +02:00
Přemysl Eric Janouch f9744711b5
Simplify row_buffer_ellipsis() invocation 2016-10-07 00:19:22 +02:00
Přemysl Eric Janouch 74e6dd22ff
Factor out stupid column alignment loops 2016-10-06 07:21:36 +02:00
Přemysl Eric Janouch 54936c4bcb
Further optimize terminal output
By calling addstr() once instead of several addch() calls.

As a side effect, it's becoming easier to ditch ncurses altogether.
2016-10-06 07:03:51 +02:00
Přemysl Eric Janouch ca38c1d91a
Add CMakeLists.txt, link with cURL
My global .gitignore seems to be more trouble than it's worth.
2016-10-06 03:29:32 +02:00
Přemysl Eric Janouch c6e337e5c5
Add some actions for songs 2016-10-06 03:29:32 +02:00
Přemysl Eric Janouch 53ac2cf2c0
Clean up tab code, prepare for custom handlers 2016-10-06 03:29:32 +02:00
Přemysl Eric Janouch 2c7e8e3311
Add a non-functional Streams tab
Bump liberty.
2016-10-06 03:29:32 +02:00
Přemysl Eric Janouch dff58b1c16
Fill the Info tab with actual information 2016-10-05 02:54:43 +02:00
Přemysl Eric Janouch d723f9523f
Fix regression in Home/End handling 2016-10-05 02:53:09 +02:00
Přemysl Eric Janouch 16a19282cb
Some further shuffling and renaming 2016-10-05 01:55:06 +02:00
Přemysl Eric Janouch a59f0b237e
Rearrange code
I need to update tabs from MPD message handlers.
2016-10-05 01:13:48 +02:00
Přemysl Eric Janouch 319d0faffa
Don't advance the timer when not playing
Stupid regression.
2016-10-05 00:13:15 +02:00
Přemysl Eric Janouch 515d11114b
Postpone redraws
This solves a performance problem in debug mode.

But overall the has been simplified, with some renames taking place.
2016-10-04 23:44:43 +02:00
Přemysl Eric Janouch 07e3aafd84
Simplify some terminal output 2016-10-04 22:40:58 +02:00
Přemysl Eric Janouch fec9f83cbc
Optimize row_buffer
It was one of two obvious hotspots.
2016-10-04 21:32:13 +02:00
Přemysl Eric Janouch 859c9d2737
Enhance time tracking
Now with eliminated timer drift.
2016-10-04 18:33:14 +02:00
Přemysl Eric Janouch 87f5eddea0
Bump termo, use termo_strpkey_utf8() 2016-10-04 13:27:48 +02:00
Přemysl Eric Janouch 4a5be612c5
Stubplement an Info tab, make Help special 2016-10-04 07:13:24 +02:00
Přemysl Eric Janouch 8dff378617
Fix crash when not in debug mode 2016-10-04 06:47:30 +02:00
Přemysl Eric Janouch ac2c7d5108
Make the help tab useful 2016-10-04 06:43:24 +02:00
Přemysl Eric Janouch 2b77d65d4b
Add alternative bindings for home/end 2016-10-04 06:17:50 +02:00
Přemysl Eric Janouch 93e76a2221
Fix display of >=60 minute songs 2016-10-04 06:17:27 +02:00
Přemysl Eric Janouch 1e39ae52c5
Make the debug tab prettier
And the MPD code a little bit more generic.
2016-10-03 19:43:51 +02:00
Přemysl Eric Janouch 91b6a799c8
Handle mouse clicks on the scrollbar 2016-10-03 08:26:17 +02:00
Přemysl Eric Janouch 49c6a31742
Add a scrollbar 2016-10-03 08:14:43 +02:00
Přemysl Eric Janouch f0c7092521
Rectify listview behaviour 2016-10-03 04:00:56 +02:00
Přemysl Eric Janouch 563c278771
Fix header render
This may need a rewrite.
2016-10-03 03:59:37 +02:00
Přemysl Eric Janouch 800728da2b
Add a log tab in debug mode 2016-10-02 06:34:00 +02:00
Přemysl Eric Janouch 505a2559b8
Try to use MPD's "elapsed" rather than "time" 2016-10-02 05:47:50 +02:00
Přemysl Eric Janouch a60bbb9e4f
Add some MPD keyboard controls 2016-10-02 05:47:33 +02:00
Přemysl Eric Janouch 5f348ccb33
Ignore mouse clicks in deaf parts of the header 2016-10-02 05:12:13 +02:00
Přemysl Eric Janouch 400edb58cb
Simplify input handling 2016-10-02 05:00:59 +02:00
Přemysl Eric Janouch de7ab93aec
React to mouse clicks on player controls 2016-10-02 04:10:23 +02:00
Přemysl Eric Janouch 7e35164e77
Finer progress bar thanks to Unicode 2016-10-02 03:17:07 +02:00
Přemysl Eric Janouch e4f3f8ebf0
Finish display of the top part 2016-10-02 01:31:19 +02:00
Přemysl Eric Janouch 6bfa754f4d
Count elapsed seconds 2016-10-02 00:08:52 +02:00
Přemysl Eric Janouch 767e87bd3f
Better header layout 2016-10-01 21:20:07 +02:00
Přemysl Eric Janouch ec339eb0ff
Initial commit
This is mostly sdtui code ported over from GLib to liberty,
with some MPD code from desktop-tools.

It tracks the current song and that's it.
2016-10-01 04:41:54 +02:00