mirror of
https://github.com/usatiuk/cardboy.git
synced 2025-10-28 23:27:49 +01:00
46 lines
1.6 KiB
C++
46 lines
1.6 KiB
C++
#include "cardboy/apps/clock_app.hpp"
|
|
#include "cardboy/apps/gameboy_app.hpp"
|
|
#include "cardboy/apps/menu_app.hpp"
|
|
#include "cardboy/apps/lockscreen_app.hpp"
|
|
#include "cardboy/apps/settings_app.hpp"
|
|
#include "cardboy/apps/snake_app.hpp"
|
|
#include "cardboy/apps/tetris_app.hpp"
|
|
#include "cardboy/backend/desktop_backend.hpp"
|
|
#include "cardboy/sdk/app_system.hpp"
|
|
#include "cardboy/sdk/persistent_settings.hpp"
|
|
|
|
#include <cstdio>
|
|
#include <exception>
|
|
|
|
using cardboy::backend::desktop::DesktopRuntime;
|
|
|
|
int main() {
|
|
try {
|
|
DesktopRuntime runtime;
|
|
|
|
cardboy::sdk::AppContext context(runtime.framebuffer, runtime.input, runtime.clock);
|
|
context.services = &runtime.serviceRegistry();
|
|
cardboy::sdk::AppSystem system(context);
|
|
|
|
const cardboy::sdk::PersistentSettings persistentSettings =
|
|
cardboy::sdk::loadPersistentSettings(context.getServices());
|
|
if (auto* buzzer = context.buzzer())
|
|
buzzer->setMuted(persistentSettings.mute);
|
|
|
|
system.registerApp(apps::createMenuAppFactory());
|
|
system.registerApp(apps::createLockscreenAppFactory());
|
|
system.registerApp(apps::createSettingsAppFactory());
|
|
system.registerApp(apps::createClockAppFactory());
|
|
system.registerApp(apps::createGameboyAppFactory());
|
|
system.registerApp(apps::createSnakeAppFactory());
|
|
system.registerApp(apps::createTetrisAppFactory());
|
|
|
|
system.run();
|
|
} catch (const std::exception& ex) {
|
|
std::fprintf(stderr, "Cardboy desktop runtime failed: %s\n", ex.what());
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|