This page is intended for those who might be interested in hacking on JortJams or are simply curious about the way JortJams works.
The source code is available at https://gitlab.peach-bun.com/jortjams/jortjams. Build instructions are available.
Technologies
JortJams is built using Qt 5 and Qt Quick 2. It is written in C++ and uses C++17 language features. The build system uses CMake.
Music identification uses youtube-dl and, if available, ffprobe. The music player is built on GStreamer. Data storage and access is provided by SQLite.
Parts of JortJams’ network code use Ragel.
Source code tour
├── fetch Code for the status / URL fetch program.
├── gui Code for the GUI.
├── guilib Library code shared between the GUI and GUI experiments.
├── player The music player.
├── jj
│ ├── app [REMOVE]
│ ├── cmake Custom CMake modules.
│ ├── db Data models for objects in JortJams' database.
│ ├── feeds Data structures and tools for handling status feeds.
│ ├── icons Icons used in the GUI and other tools.
│ ├── ipc Code to communicate state between the fetch and GUI programs.
│ ├── log JortJams' logger utilities.
│ ├── models [REMOVE]
│ ├── network Network code: the HTTP client, youtube-dl interface, etc.
│ ├── prefs Data models for storing preferences.
│ ├── prof Profiling aids.
│ ├── sq3 An SQLite wrapper; mostly adds RAII semantics to SQLite objects.
│ ├── tasks [REMOVE]
│ ├── util Shared algorithms and data structures.
│ └── vendor Vendor code.