I got the change to play with an apple TV for the first time during my winter vacation back home and wanted one of my own, and at the same time, I needed to make use of a raspberry pi that I had acquired during the previous semester. This seemed like a perfect solution, and though the project is far from complete, I now have a firm grounding to continue to build upon.
What it does
It currently finds music in its directery, builds a library and plays music, only .wav files though as the java utility I used to play the music doesn't support mp3 or mp4.
How I built it
I used a Complex system of precedence to determine which layer of the program gets modified when, for example, the user probably doesn't want to modify the main menu when browsing music, so I made a way for commands to be "bubbled up" through the program. The library is made with a file sniffer algorithm which goes through every directory within a given directory and saves links to all of the files it encounters. From there is is a simple matter of implementation.
Challenges I ran into
Input was particularly challenging as I had originally wanted to use an XBOX One controller to use the program and navigate the menus, as a key board and mouse are not viable for most smart TVs. I tried for the life of me to scour google and the participants of the hackathon for a good way to implement this control, but in the wanning hours of Sunday morning, I decided to write simple keyboard commands to act like the XBOX ones, so if I decide to go back to the XBOX controller, I will have an easy time of it.
Accomplishments that I'm proud of
I am very proud of my file sniffer because it was a simple and elegant solution to a potentially problematic situation.
What I learned
I learned a lot about how different layers of a program can interact with each other, as well as the value of keeping your program as modular as possible, mainly for debugging, but it also makes adding more code extremely easy.
What's next for Dane-TV
Video Streaming From YouTube, Netflix, Twitch ect.
More ways of controlling the system
actual deployment to a raspberry pi