- 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>
40 lines
1.7 KiB
C++
40 lines
1.7 KiB
C++
#include "mainwindow.hpp"
|
|
#include "backend/qobuzbackend.hpp"
|
|
|
|
#include <QApplication>
|
|
#include <QStyleFactory>
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
QApplication app(argc, argv);
|
|
app.setApplicationName(QStringLiteral("qobuz-qt"));
|
|
app.setOrganizationName(QStringLiteral("qobuz-qt"));
|
|
app.setApplicationVersion(QStringLiteral("0.1.0"));
|
|
|
|
// Dark palette consistent with spotify-qt style
|
|
app.setStyle(QStyleFactory::create(QStringLiteral("Fusion")));
|
|
QPalette darkPalette;
|
|
darkPalette.setColor(QPalette::Window, QColor(35, 35, 35));
|
|
darkPalette.setColor(QPalette::WindowText, Qt::white);
|
|
darkPalette.setColor(QPalette::Base, QColor(25, 25, 25));
|
|
darkPalette.setColor(QPalette::AlternateBase, QColor(45, 45, 45));
|
|
darkPalette.setColor(QPalette::ToolTipBase, Qt::white);
|
|
darkPalette.setColor(QPalette::ToolTipText, Qt::white);
|
|
darkPalette.setColor(QPalette::Text, Qt::white);
|
|
darkPalette.setColor(QPalette::Button, QColor(53, 53, 53));
|
|
darkPalette.setColor(QPalette::ButtonText, Qt::white);
|
|
darkPalette.setColor(QPalette::BrightText, Qt::red);
|
|
darkPalette.setColor(QPalette::Link, QColor(42, 130, 218));
|
|
darkPalette.setColor(QPalette::Highlight, QColor(42, 130, 218));
|
|
darkPalette.setColor(QPalette::HighlightedText, Qt::black);
|
|
darkPalette.setColor(QPalette::Disabled, QPalette::Text, QColor(127, 127, 127));
|
|
darkPalette.setColor(QPalette::Disabled, QPalette::ButtonText, QColor(127, 127, 127));
|
|
app.setPalette(darkPalette);
|
|
|
|
auto *backend = new QobuzBackend;
|
|
MainWindow window(backend);
|
|
window.show();
|
|
|
|
return app.exec();
|
|
}
|