Just a simple media player
  • C++ 97%
  • CMake 3%
Find a file
zachbacon d3680882a9 Podcast 2.0 Support added
Signed-off-by: zachbacon <thezachbacon@gmail.com>
2026-03-28 22:33:03 -04:00
src Podcast 2.0 Support added 2026-03-28 22:33:03 -04:00
triplets Initial commit 2026-03-22 21:00:56 -04:00
.gitignore Initial commit 2026-03-22 21:00:56 -04:00
CMakeLists.txt Podcast 2.0 Support added 2026-03-28 22:33:03 -04:00
CMakePresets.json Podcast 2.0 Support added 2026-03-28 22:33:03 -04:00
README.md Initial commit 2026-03-22 21:00:56 -04:00
vcpkg-configuration.json Initial commit 2026-03-22 21:00:56 -04:00
vcpkg.json Initial commit 2026-03-22 21:00:56 -04:00

Shriek

A cover-art-focused media player built with wxWidgets, FFmpeg, FAudio, and SQLite.

Dependencies

Library Purpose
wxWidgets GUI toolkit
FFmpeg (libavformat, libavcodec, libswresample) Audio decoding & metadata
FAudio Audio output (XAudio2-compatible)
SQLite3 Library database

All dependencies are managed via vcpkg (manifest mode).

Prerequisites

  • CMake 3.24+
  • Ninja (recommended generator)
  • vcpkg — set VCPKG_ROOT environment variable to your vcpkg clone

Windows

  • Visual Studio 2022 (or Build Tools) with C++ workload

macOS

  • Xcode command-line tools

Building

Windows (static, Release)

cmake --preset windows-x64-static
cmake --build --preset windows-release

Windows (Debug)

cmake --preset windows-x64-debug
cmake --build --preset windows-debug

macOS (Apple Silicon)

cmake --preset macos-arm64-static
cmake --build --preset macos-arm64

Linux

cmake --preset linux-x64
cmake --build --preset linux-x64

Project Structure

Shriek/
├── CMakeLists.txt              Root build script
├── CMakePresets.json           Build presets (Win/Mac/Linux)
├── vcpkg.json                  vcpkg manifest
├── vcpkg-configuration.json    vcpkg registry config
└── src/
    ├── main.cpp                Entry point
    ├── app/
    │   └── ShriekApp           wxApp subclass
    ├── ui/
    │   ├── MainWindow          Top-level frame
    │   ├── AlbumGridPanel      Scrollable album cover grid
    │   ├── NowPlayingPanel     Current-track art & info
    │   └── PlaybackControlsPanel  Transport & volume
    ├── audio/
    │   ├── AudioEngine         FAudio playback engine
    │   └── Decoder             FFmpeg decoder → float PCM
    ├── db/
    │   ├── Database            SQLite wrapper
    │   └── LibraryScanner      Recursive folder scanner
    └── models/
        ├── Album.h
        └── Track.h

Roadmap

  • Album deduplication on scan
  • Playlist / queue management
  • Seek bar integration
  • Gapless playback
  • Podcasting 2.0 support (RSS feeds, chapters, value tags)