|
|
|
|
Jump to: Introduction | Slideshow software | Remote control module
The first incarnation of the software was quite simple: simply list all the files in a directory, then draw each to the screen at a predetermined interval. While this worked, it did not have the level of interactivity that I wanted.
So I came up with this set of goals for the software:
For the first requirement, I decided to go with the Windows GDI+ API, which supports a wide range of image formats and abstracts them so that I can open any supported type of image using the same set of commands. Of course, using the Windows GDI+ API locked me into using Windows, and the 32mb of RAM on the laptop limits me to Windows 98 as an operating system choice. Yes, I hate it too. Yes, it bluescreens every 15th boot. I've got a lot of flak from my linux-loving friends about this choice, but I really didn't have the time to learn Linux programming (or learn how to install/configure Linux, or find all the right drivers, etc etc etc) for this project. So Windows 98 it was. I decided to fancy it up a bit, with a custom loading screen featuring my sister's dog Tink.
File management was fairly straightforward. Every few minutes, it crawls the base directory and immediate subdirectories using the FindFirstFile and FindNextFile API functions. A few C++ classes mimic the directory structure and maintain an alphabetically sorted list of images and directories.
The user interface is nonexistent for the most part. I decided to first implement the input side of the interface with the keyboard - more on that later. When the user presses a key (or, a button on the remote), a simple white-on-black text screen shows up, centering the album's name and the photo number. Other functions such as speed-changing and pausing have similar screens.
For the remote control part, I decided to make use of an earlier project of mine which I hadn't made public. Using the PIC16F628 microcontroller and an IR remote receiver module, the remote control module can receive remote signals, and accompanying software recognizes those signals. See the next page for a proper writeup.
Read about The remote control module