Commit Graph

60 Commits

Author SHA1 Message Date
Henrik Friedrichsen
cf31b2204a trigger redraw every 400ms while playing to keep statusbar in sync 2019-03-11 01:07:21 +01:00
Henrik Friedrichsen
805039032b trigger a redraw after screen change 2019-03-10 22:51:43 +01:00
Henrik Friedrichsen
13ef40254e Merge branch 'wip_event_redraw' into develop 2019-03-10 21:56:35 +01:00
Henrik
57893be64d Merge pull request #26 from andrewhalle/remove-log-file
turn off writing log to file
2019-03-10 21:37:57 +01:00
Henrik Friedrichsen
fa56b03133 attempt to reconstruct search term 2019-03-10 21:29:56 +01:00
Andrew Halle
d4c882768a turn off writing to file, but leave the file writing stuff for possible command line arguments later 2019-03-09 10:04:07 -08:00
KoffeinFlummi
fcf28183bc Add a vim-style command line 2019-03-09 15:04:02 +01:00
Henrik Friedrichsen
392e3efb87 turn off autorefresh and redraw only on demand
this should significantly reduce CPU usage but is a little bit more complicated.
while we're at it, remove the different screen redraw events and use a combined
event for all screens.

TODO:
the spotify player still needs to update the statusbar at least every second.
2019-03-09 01:55:55 +01:00
Henrik Friedrichsen
2bc87d8af5 make sure the title is set for the regular and chained method 2019-03-09 01:11:25 +01:00
Henrik Friedrichsen
2162a52544 use Cursive::noop 2019-03-09 00:32:48 +01:00
Henrik Friedrichsen
4776375f68 re-order screens 2019-03-08 10:58:25 +01:00
Henrik Friedrichsen
75fd57108e add 'clear playlist' keybinding 2019-03-08 00:23:03 +01:00
Henrik Friedrichsen
82f10fccde download playlist once at startup and keep it in memory 2019-03-08 00:13:45 +01:00
Henrik Friedrichsen
502ac36de3 get rid of the panel wrapper for more space
the screen title is now displayed by the layout
2019-03-07 22:34:45 +01:00
Henrik Friedrichsen
b075c96134 update current_track when tracks before the current one are removed
also:
don't use events to update the queue UI
this makes the Add/Remove queue events useless, but we'll keep them for now

hopefully fixes #22
2019-03-07 17:33:45 +01:00
Henrik Friedrichsen
0b14fc5da7 transform simple queue to a preserving, more complex kind
this is a pretty big but necessary change and might not be stable yet.

some key points:
- the queue is now responsible for playback controls and track management, as
this was scattered between the queue and spotify objects.
- because the queue is now retained, it should be easier to save it as a
spotify playlist

closes #12
2019-03-06 23:59:33 +01:00
Henrik Friedrichsen
c3fcb3ce21 use proper buttons for playlists
at some point the text on the right should display the number of tracks and
total duration of the playlist
2019-03-06 01:08:52 +01:00
Henrik Friedrichsen
0d2896363f small fixes 2019-03-06 00:47:30 +01:00
Henrik Friedrichsen
7b4c40026a extract SplitButton from TrackButton for future PlaylistButton 2019-03-06 00:46:47 +01:00
Henrik Friedrichsen
91e89c2970 introduce track data class 2019-03-06 00:15:28 +01:00
Henrik Friedrichsen
0f3cc41115 cargo fmt 2019-03-05 23:26:23 +01:00
Henrik Friedrichsen
766b894aa0 minor statusbar style tweaks 2019-03-05 23:26:06 +01:00
Henrik Friedrichsen
ea762dbed3 don't search with empty input 2019-03-05 22:15:07 +01:00
KoffeinFlummi
7a24eca809 Add main layout view and status bar
Fix #4
2019-03-05 19:18:36 +01:00
Henrik Friedrichsen
6d243eeb3c fix return type 2019-03-04 19:15:13 +01:00
Henrik Friedrichsen
92811a2ce3 use scrollview in linearlayout for playlist items
this approach is more flexible for future additions, e.g. further callbacks such
as playlist deletion.
2019-03-04 19:13:39 +01:00
Felipe Sere
7d948707fe Load playlists only when opening the playlist screen 2019-03-04 17:31:04 +00:00
Felipe Sere
99674a5ac0 Implement basic playlist that simply queues songs 2019-03-04 16:41:04 +00:00
Henrik Friedrichsen
9507add6a4 more refined queue events + playlist delete binding
- move from listview to linearlayout + scrollview
- doesn't redraw the whole view on queue changes anymore
- uses new cursive functions for linearlayout (needs cursive git)

closes #3
2019-03-04 00:56:34 +01:00
Henrik Friedrichsen
19ae8fcbfc rename player events 2019-03-04 00:29:48 +01:00
Henrik Friedrichsen
bb8326af88 refer to Self 2019-03-03 23:47:56 +01:00
Ben Kimock
c23956bcbd don't panic on missing/invalid config file, try to be helpful instead 2019-03-03 13:14:15 -05:00
Henrik Friedrichsen
909ce8c81d cargo fmt 2019-03-03 15:53:54 +01:00
Henrik Friedrichsen
b8d60917b4 hardcore client id 2019-03-03 15:46:15 +01:00
Henrik Friedrichsen
a562f0b7a7 implement custom track button view (closes #2) 2019-03-03 00:16:17 +01:00
Henrik Friedrichsen
0667b9ab65 remove unused status bar bits 2019-03-02 19:50:29 +01:00
Henrik Friedrichsen
c60324af61 cargo fmt 2019-03-02 18:39:58 +01:00
Henrik Friedrichsen
5a1c7dff69 fix some warnings 2019-03-02 18:38:10 +01:00
Henrik Friedrichsen
3d1673a7a4 add global play/pause/stop buttons + necessary state logic 2019-03-02 18:37:56 +01:00
Henrik Friedrichsen
70d68f8854 cargo fmt 2019-02-27 23:12:43 +01:00
Henrik Friedrichsen
d73a3c144e always trigger a cursive event when a queue event is generated 2019-02-27 23:12:09 +01:00
Henrik Friedrichsen
d3c439342a introduce global event sink to trigger updates across threads 2019-02-27 22:50:31 +01:00
Henrik Friedrichsen
f21e3b0bca wrap logview in ScrollView 2019-02-27 22:50:06 +01:00
Henrik Friedrichsen
bebc6175cc cargo fmt 2019-02-26 23:32:38 +01:00
Henrik Friedrichsen
862f835164 remove crossbeam-channel 2019-02-26 23:32:09 +01:00
Henrik Friedrichsen
212132c2c3 take control of cursive event loop, may be useful later 2019-02-26 23:31:47 +01:00
Henrik Friedrichsen
204cb18410 implement preliminary queue view
this approach needs some (re)work, as the UI is not fully sync'd with the data,
yet. it'd probably be better to have an event system triggered by the queue,
that will cause a UI refresh or similar.
2019-02-26 23:30:16 +01:00
Henrik Friedrichsen
ce566b0fb9 request full width for search results 2019-02-26 22:01:59 +01:00
Henrik Friedrichsen
b06b6bc15b rustfmt 2019-02-26 21:34:20 +01:00
Henrik Friedrichsen
8df48a7270 make theme a little more easy on the eyes 2019-02-26 21:29:05 +01:00