ocarina/DESIGN

43 lines
1.7 KiB
Plaintext

===============================================================================
= =
= Ocarina 6.3 =
= =
===============================================================================
Ocarina 6.2 is the 6th implementation of the Ocarina music player - a
lightweight, GTK+ based music player with all the features that I want.
Improvements over the 5.x series will include the existence of both a design
document (this file) and unit tests. This should make maintenance easier and
help me stay focused.
Ocarina 6.2 will use Gstreamer 1.0 for audio playback, GTK-MM 3 for user
interface development, and Taglib for extracting tags.
Install:
Ocarina will be compiled into a single executable placed under
/usr/bin/. Any extra files needed to run will be placed under
/usr/share/ocarina/.
Core Layers:
Ocarina was written with an "every file is a layer" strategy. This
means code can only call functions that reside in a lower layer.
From top to bottom, core layers are:
* Audio (include/core/audio.h)
* Audio driver (include/core/driver.h)
* Deck (include/core/deck.h)
* Playlist (include/core/playlist.h)
* Library (include/core/library.h)
* Queue (include/core/queue.h)
* RNG (include/core/random.h)
* Tags (include/core/tags/*.h)
* Idle queue (include/core/idle.h)
* Filter (include/core/filter.h)
* Index (include/core/index.h)
* Databases (include/core/database.h)
* File (include/core/file.h)
* Version (include/core/version.h)