diff options
Diffstat (limited to 'README')
-rw-r--r-- | README | 78 |
1 files changed, 40 insertions, 38 deletions
@@ -11,50 +11,52 @@ fetching episode information from the internet. In its current form, it is designed specifically for Detective Conan. -Backend -~~~~~~~ -The fundamental features of Episode Browser, such as detecing and -keeping track of local episodes, fetching information from the -internet and interacting with the MPC-HC media player, are implemented -in Prolog (see the pl folder). - -At the time of writing, the backend implementation is tightly coupled -to the author's specific system. To be used for anything else than -episodes of Detective Conan stored in a specific folder on the hard -drive, the predicates defined in local_episodes.pl must be modified -and the program recompiled. To fetch episode information from other -sources than Detective Conan World, the episode_data.pl file must be -modified. - -Frontend -~~~~~~~~ -The graphical interface is implemented in C++ using the Win32 API (see -the c folder). The source code is spread across a small number of -files. In summary: - -main.cpp Entry point and initialization. Contains the main event handler. -listview.* Creates and handles the shared aspects of the two list views. -episodelistview.* Defines the interface to the episode list view. -datalistview.* Defines the interface to the data list view. -layout.* Handles the placement of child windows. -pl.* Interface to Prolog backend. -win.* Helpers for interacting with the Win32 API. -wcharptr.* Defines WcharPtr, a class that owns a wchar_t*. -util.h Simple utility functions. -debug.* Helpers for debugging. - -The code operates under the assumption that "raw" pointers are -non-owning -- i.e., their lifetime is managed by somebody else, such -as Windows or Prolog. When strings need to be heap-allocated, like -when converting from a narrow to a wide string, they are put within a -WcharPtr object, which manages the lifetime of the string. +Implementation +~~~~~~~~~~~~~~ +Episode Browser is implemented in C++ using the Win32 API (see the c +folder). The source code is spread across a number of files: + +>> Frontend << + +main.cpp + Entry point and initialization. Contains the main event handler. +listview.cpp,h + Defines the shared aspects of the two list views. +episodelistview.cpp,h + Defines the interface to the episode list view. +datalistview.cpp,h + Defines the interface to the data list view. +layout.cpp,h + Handles the placement of child windows. +resource.rc + Defines menu and dialog window resources. +resource.h + Defines identifiers and macros for resources. + +>> Backend << + +ext.cpp,h + Interacts with the external world (to open an episode). +data.cpp,h + Defines the underlying data representation, as well as + functions to retrieve data from Detective Conan World. + +>> Miscellanea << + +win.cpp,h + Helpers for interacting with the Win32 API. +util.h + Utility functions. +test.cpp,h + Simple test framework (work in progress). +debug.cpp,h + Helpers for debugging. Building ~~~~~~~~ Episode Browser is built with GNU Make. For the build process, the following additional programs are required: - - swipl-ld (included with SWI-Prolog) - GCC/G++ - Perl |