diff options
author | John Ankarström <john@ankarstrom.se> | 2022-07-10 18:08:49 +0200 |
---|---|---|
committer | John Ankarström <john@ankarstrom.se> | 2022-07-10 18:08:49 +0200 |
commit | 85a4ad2c184ed915915a2fb630415a80ed9a286f (patch) | |
tree | e48608c341b60116b7dec01bab37809a87961f05 /README | |
parent | 5a6892cecfb33349a51466fc08c01a7d33a2dcbc (diff) | |
download | EpisodeBrowser-85a4ad2c184ed915915a2fb630415a80ed9a286f.tar.gz |
Add plain-text README.
Diffstat (limited to 'README')
-rw-r--r-- | README | 52 |
1 files changed, 52 insertions, 0 deletions
@@ -0,0 +1,52 @@ + +E P I S O D E B R O W S E R +d o c u m e n t a t i o n + +Introduction +~~~~~~~~~~~~ +Episode Browser is a simple graphical program that offers an interface +to episodes of TV series stored on the local hard drive. It offers +ways of keeping track of watched and unwatched episodes, as well as +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. For an overview of the functions provided by each file, see +defs.h. In summary: + +main.c Entry point and initialization. Contains the main event handler. +listview.c Creates and handles the shared aspects of the two list views. +episodelistview.c Defines the interface to the episode list view. +datalistview.c Defines the interface to the data list view. +common.c Some useful functions that don't fit elsewhere. + +The frontend interacts with the Prolog backend via the SWI-Prolog API. +Note, however, that most interaction is done through ten or so macros, +defined in defs.h, that make the code easier to write -- and read, +once you're used to it. + +Building +~~~~~~~~ +Episode Browser is built with swipl-ld, which is installed with +SWI-Prolog. It is a wrapper around a C compiler and linker, which in +Episode Browser's case happens to be GCC. The author personally uses +the MinGW toolchain conveniently included with Strawberry Perl. |