#include #include #include #include #include #include "apiclient.h" #include "chatmodel.h" #include "player.h" #include "recorder.h" #include "settings.h" #include "voicerecorder.h" Q_DECL_EXPORT int main(int argc, char *argv[]) { QGuiApplication *app = SailfishApp::application(argc, argv); // Identita' allineata al profilo X-Sailjail del desktop file: // AppConfigLocation = ~/.config/harbour/hermes (zona persistente della sandbox). app->setOrganizationName(QStringLiteral("harbour")); app->setApplicationName(QStringLiteral("hermes")); app->setApplicationVersion(QStringLiteral("0.3.1")); qDebug() << "harbour-hermes v0.3.1 build" << __DATE__ << __TIME__; Settings settings; ApiClient api(&settings); ChatModel chat(&api); Recorder recorder; Player player; VoiceRecorder voiceRec(&settings); // Flusso voce: registrazione -> trascrizione; TTS pronto -> riproduzione. QObject::connect(&recorder, &Recorder::finished, &api, &ApiClient::transcribeFile); QObject::connect(&api, &ApiClient::ttsReady, &player, &Player::play); QQuickView *view = SailfishApp::createView(); view->rootContext()->setContextProperty(QStringLiteral("appSettings"), &settings); view->rootContext()->setContextProperty(QStringLiteral("api"), &api); view->rootContext()->setContextProperty(QStringLiteral("chat"), &chat); view->rootContext()->setContextProperty(QStringLiteral("recorder"), &recorder); view->rootContext()->setContextProperty(QStringLiteral("player"), &player); view->rootContext()->setContextProperty(QStringLiteral("voiceRec"), &voiceRec); view->rootContext()->setContextProperty(QStringLiteral("appVersion"), QCoreApplication::applicationVersion()); view->setSource(SailfishApp::pathTo(QStringLiteral("qml/harbour-hermes.qml"))); view->show(); return app->exec(); }