30 lines
1.2 KiB
C
30 lines
1.2 KiB
C
#pragma once
|
|
#include <3ds/types.h>
|
|
#include <stddef.h>
|
|
|
|
typedef enum {
|
|
UPD_IDLE, // noch nicht geprüft
|
|
UPD_CHECKING, // fragt den Server
|
|
UPD_LATEST, // schon die neueste Version
|
|
UPD_AVAILABLE, // neue Version gefunden, wartet auf update_download()
|
|
UPD_DOWNLOADING, // lädt neue Version
|
|
UPD_INSTALLED, // neue Version liegt auf der SD, App neu starten
|
|
UPD_NONE, // Server bietet keine Updates an
|
|
UPD_ERROR, // Server nicht erreichbar o. Ä.
|
|
} UpdateState;
|
|
|
|
// Startet die Prüfung im Hintergrund. selfPath = Pfad der laufenden .3dsx.
|
|
void update_start(const char *server, const char *selfPath);
|
|
// Lädt und installiert die gefundene neue Version (nur im Zustand UPD_AVAILABLE).
|
|
void update_download(void);
|
|
// true, solange ein Update ansteht, lädt oder auf den Neustart wartet
|
|
bool update_pending(void);
|
|
UpdateState update_state(void);
|
|
const char *update_new_version(void);
|
|
// Wartet auf den Hintergrund-Thread (höchstens 15 s). false = läuft noch.
|
|
bool update_finish(void);
|
|
// Laufender Download-Versuch (1-3)
|
|
int update_attempt(void);
|
|
// Beschreibung des letzten Fehlers (Schritt und Code)
|
|
void update_error(char *out, size_t len);
|