Commit Graph

556 Commits

Author SHA1 Message Date
casey
60cdbdded8 Functional TrackListViewQuery! We can actually see selected tracks for albums now. 2016-05-16 16:27:12 -07:00
casey
c259e911db Added a "SelectionChanged" event to ListWindow 2016-05-16 09:51:57 -07:00
casey
d1f2d867f5 A couple small bug fixes related to the new message queue interaction. 2016-05-15 21:28:06 -07:00
casey
2353f827eb Removed remaining "OnIdle" callback junk and replaced with the new
immediate, message-driven functionality.
2016-05-15 20:54:55 -07:00
casey
06ff327ff2 - Working WindowMessageQueue implementation
- TransportWindow is now self-updating via messages posted at a regular
  interval; no longer relies on the idle loop.
2016-05-15 17:13:00 -07:00
casey
6bc828775d More implementation of MessageQueue. Interfaces and names are going to need to change. 2016-05-15 16:43:44 -07:00
casey
132bc25d43 - Fixed Window to no longer use derwin() -- subwindows share data with
their parent, in a sometimes buggy and unpredictable ways. always use
  newwin() and ensure redraws happen from the bottom up.

- Optimized redraw to not immediately call doupdate(), but rather wait
  until the end of the runloop and call it once. This may cause buggy
  behavior, but seems fine now...
2016-05-15 12:18:29 -07:00
casey
1a0d297b30 - Renamed MetadataValue -> MetadataKeyValue
- Cleaned up some of the requery logic in CategoryListView,
  TrackListView
- Started working on the message-queue related functionality that will
  be required for clean callback logic
- Reduced the main loop timeout delay
2016-05-15 11:14:43 -07:00
casey
45e8cf956e Fixed focus problems in top-level layout management, and also fixed a bug in CommandWindow where it wasn't re-shown properly. 2016-05-14 22:10:24 -07:00
casey
4eabea9f20 Fixed UTF8 decoding in TaglibMetadataReader. Oops. 2016-05-14 21:55:44 -07:00
casey
2aef8ee6a4 Updated Layout focus semantics, and fixed sort order re-indexing in
LayoutBase
2016-05-14 19:15:58 -07:00
casey
95d8e8ab42 - Initial crack at generalizing focus in LayoutBase
- Renamed Create -> Show, Destroy -> Hide
- Added IDisplayable interface for Layouts and Windows
- A couple other small fixes.
2016-05-14 15:07:23 -07:00
casey
f6fcdaaab0 Functional top-level windows. Finally. 2016-05-14 02:35:34 -07:00
casey
47fffa7f73 boost::shared_ptr -> std::shared_ptr, boost::weak_ptr -> std::weak_ptr 2016-05-14 01:16:50 -07:00
casey
dd29f1e500 Added IWindowGroup, which is extended by ILayout and implemented by
LayoutBase. Recursive create/destroy working.
2016-05-14 01:11:03 -07:00
casey
17b56ddbab A couple minor changes to make screen updates more efficient. 2016-05-13 23:00:32 -07:00
casey
7016c2aac2 Added the ability for views to have real parent views. Added LayoutBase,
which is a subclass of Window, and now acts as a parent.
2016-05-13 21:52:30 -07:00
casey
d11c4fc425 Introduction of ListWindow, a special type of ScrollableWindow that
tracks a user selected row and has slightly different scrolling
behaviors.
2016-05-13 00:25:12 -07:00
casey
66c19c2123 More improvements to layouts and stuff. Need to figure out scroll focus
situation soon.
2016-05-12 02:31:44 -07:00
casey
2de2a21291 Much improved ScrollableWindow and Adapter interfaces which allow for
virtual lists with extremely large item counts.
2016-05-12 00:16:58 -07:00
casey
c179878e80 Boring, necessary refactors to support more dynamic lists of content. 2016-05-11 01:15:24 -07:00
casey
b718691553 Fixed a bug where ScrollableWindow wasn't properly notifying the adapter
of the display dimensions.
2016-05-10 21:25:16 -07:00
casey
c4111850fe - Consolidated LibraryBase, LocalLibrary. introduced ILibrary interface
- Added IIndexer interface for ILibrary
- Fixed and simplified LocalLibrary and Indexer startup behavior
- Added IQuery interface, fixed QueryBase
- Fixed LocalLibrary.enqueue() to work properly with new IQuery
  interface
- Introduced ILayout interface and MainLayout implementation
2016-05-10 20:47:30 -07:00
casey
adb0ed14b1 With a heavy heart, I've decided to retire most of the current
implementation of Library and QueryBase. There is just too much buggy
and difficult to follow synchronization logic built in.
2016-05-09 22:47:24 -07:00
casey
d96b44f236 - Created IWindow interface
- Renamed BorderedWindow -> Window
- Fixed more layout bugs in SimpleScrollAdapter -- I think it's stable
  now for reals.
2016-05-09 18:51:36 -07:00
casey
b5a9a22020 Fixed up some more output formatting. 2016-05-09 10:13:45 -07:00
casey
ac0176f057 Fixed an annoying off-by-1 error that was messing with scrollability. 2016-05-09 02:56:24 -07:00
casey
d776317e81 - Disabled file counting to speed up sync
- Added better focus and tab control
2016-05-09 02:42:25 -07:00
casey
32e5c2764e - Fixed the SimpleScrollAdapter to have a max size, and do so
efficiently without a speed trade-off.
- Fixed a couple color-related things
- Removed a bunch of additional dead code, headers, libraries, projects
2016-05-09 00:32:36 -07:00
casey
4d279004c7 - Added SystemInfo and ResourcesWindow for real-time resource usage monitoring
- Renamed GenericTrack -> InMemoryTrack
- A few other random cleanups
2016-05-08 21:18:08 -07:00
casey
0639b3f0c2 Small bugfix in CommandWindow's filename parser. 2016-05-08 10:04:53 -07:00
casey
2fe495cb2b Tab selection and some other minor bug fixes. 2016-05-08 02:56:05 -07:00
casey
e3af440479 Small bug fix to SimpleScrollAdapter (sometimes adding additional lines to the output), and a couple cleanups. 2016-05-08 00:47:55 -07:00
casey
55912dc0b4 - Updated utf8.h
- Fixed SimpleScrollAdapter to split lines in a UTF8-compatible way.
2016-05-07 23:51:41 -07:00
casey
8f972ad4d8 Fixed SimpleScrollAdapter to run in O(log_n) when refreshing the screen. Previously was O(n) 2016-05-07 19:45:30 -07:00
casey
2407547325 Preliminary work on ScrollableWindow. 2016-05-07 19:01:15 -07:00
casey
9126c6ca6a Rewrote the console app using some basic curses and crappy home-grown C++ wrappers. 2016-05-07 02:48:04 -07:00
casey
14096724a2 Added pdcurses to help with the command-line app. 2016-05-06 12:30:42 -07:00
casey
59a68e3a50 Deleted some old libraries, and moved debug.h/cpp up a level. 2016-05-06 12:19:44 -07:00
casey
2c7fc4613b More interface cleanup... IPlayer -> IBufferProvider 2016-05-06 02:48:26 -07:00
casey
1eee0ed459 The beginnings of a logging infrastructure and a few more bug fixes and
cleanups.
2016-05-06 02:22:06 -07:00
casey
e7fec08771 Backed out a half-baked change I made last night when it was late. 2016-05-06 00:08:52 -07:00
casey
0172fe489a A few interface cleanups, and completed the implementation of the CDDA
decoder with a custom IDataStreamFactory and IDataStream that uses win32
CreateFile and DeviceIoControl APIs. Most implementation was there, but
very broken.
2016-05-05 23:54:31 -07:00
casey
30f50c997c Checkpoint commit for Indexer logging, plus a few necessary file/class renames. 2016-05-05 01:55:38 -07:00
casey
a3a19aaf07 More various cleanup, epsecially to some nasty Indexer.cpp stuff. 2016-05-05 00:20:22 -07:00
casey
95a1803ba0 Second/final commit for correcting filename case issues. 2016-05-04 23:50:11 -07:00
casey
de1d21abe5 Intermediate commit to correct filename case. 2016-05-04 23:45:36 -07:00
casey
1dd67ccc41 More minor cleanup in the taglib metadata reader plugin. 2016-05-04 23:42:20 -07:00
casey
b81136fe58 Upgraded sqlite3, taglib to the latest versions. 2016-05-04 22:31:43 -07:00
casey
36e12d845d Upgraded libogg and libvorbis. Build from source. Release build works now! 2016-05-04 17:19:47 -07:00