File browser, music player and image viewer for the odroid-go.
- Browse the sdcard
- Display Metadata/Details of files
- Audio Player
- Supported Formats: MP3, OGG, WAV, FLAC, Modules(MOD,XM,IT,S3M)
- Experimental support for some chiptunes using gme
- Plays all audio files in a folder as a playlist
- Audio can be played through Speaker or external DAC
- Image viewer
- Opens small jpg, png, bmp files
- Optionally can launch roms using go-play emulators
There are a lot more ideas for features and improvements. You can find some of them in the TODO.md file.
You should be able to download the latest fw file from Githubs releases.
- UP: Go one file up in menu
- DOWN: Go one file down
- RIGHT: Jump page down
- LEFT: Jump page up
- A: Go into directory/Show file details/Play file
- B: Go up a directory
- MENU: Go back to firmware
- START: Display file details
- SELECT: Toggle file sizes(May make displaying slower)
- A: Play/Pause
- B: Close Song, Go back(Later: Continue playing in the background)
- VOLUME: Switch DAC/Speaker
- SELECT:
- Press shortly: Toggle display backlight for longer battery life
- Press for longer than one second: Toggle keylock and display
- START: Toggle playlist playing mode(repeat playlist)
- UP: Increase volume
- DOWN: Decrease volume
- RIGHT: Next Song
- LEFT: Previous Song
- B: Close Image, Go back
- RIGHT: Open next image in folder
- LEFT: Open previous image in folder
- START: Toggle fullscreen mode
For building I used the v3.2-odroid branch from crashoverdrive as a base.
In addition to that I patched the the sdcard functions of the idf to lock/unlock a mutex. This mutex is used to synchronize access to the HSPI bus which is shared by the sdcard and display on the odroid go. The patch is located in the patches folder.
So, to build the application you need to have the esp-idf installed.
To build the firmware you also need to have the mkfw utility installed.
Then simply run make dist
to make the .fw file.
Take a look at the Makefile to see how it works and if you want
to change the path to the mkfw utility.
If you wan't to build the fw file that includes the emulators you can use the script at
tools/make_emus_fw.sh
. Before running it make sure you set the GO_PLAY_PATH to the path where
your go-play repository is cloned at.
I used the hello-world-app from Jeff Kent which uses his hardware-lib to handle the odroids hardware. It made the development easier even though I had to modify some functions to provide me with error context. Thanks! Take a look at LICENSE.template for the license of his code.
The name and concept of this application is inspired by the similar 3dshell from joel16.
The audio playing libraries used are stb_vorbis, dr_mp3, dr_flac, dr_wav, libxmp-lite and gme.
For the image viewer stb_image is used.
I chose GPLv3 for ogo-shell mainly to be more compatible with future libraries I want to use. Take a look at LICENSE for a copy of the license.