Initial implementation of qobuz-qt

- Rust backend (qobuz-backend static lib): Qobuz API client (reqwest/tokio),
  Symphonia audio decoder, CPAL audio output, extern "C" FFI bridge
- Qt 6 frontend mirroring spotify-qt layout: toolbar with playback controls,
  left library dock, central track list, right search panel
- Auth: email/password login with MD5-signed requests; session token persisted
  via QSettings
- Playback: double-click a track → Rust fetches stream URL → Symphonia decodes
  → CPAL outputs to default audio device
- Dark Fusion palette matching spotify-qt feel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
joren
2026-03-23 23:34:23 +01:00
commit 9402dca7ed
40 changed files with 3963 additions and 0 deletions

44
src/CMakeLists.txt Normal file
View File

@@ -0,0 +1,44 @@
target_sources(qobuz-qt PRIVATE
# Entry point
main.cpp
# Main window
mainwindow.hpp
mainwindow.cpp
# Backend (Qt wrapper around Rust FFI)
backend/qobuzbackend.hpp
backend/qobuzbackend.cpp
# Views
view/maintoolbar.hpp
view/maintoolbar.cpp
view/maincontent.hpp
view/maincontent.cpp
view/sidepanel/view.hpp
view/sidepanel/view.cpp
# Lists
list/tracks.hpp
list/tracks.cpp
list/library.hpp
list/library.cpp
# Models
model/tracklistmodel.hpp
model/tracklistmodel.cpp
# Dialogs
dialog/login.hpp
dialog/login.cpp
dialog/settings.hpp
dialog/settings.cpp
# Widgets (header-only)
widget/clickableslider.hpp
widget/volumebutton.hpp
# Utils (header-only)
util/icon.hpp
util/settings.hpp
)