mirror of
https://github.com/ALEZ-DEV/Babylonia-terminal.git
synced 2025-12-16 17:38:51 +00:00
47 lines
1.2 KiB
Dart
47 lines
1.2 KiB
Dart
import 'package:babylonia_terminal_launcher/messages/config.pb.dart';
|
|
|
|
class Config {
|
|
String path;
|
|
|
|
static late Config instance;
|
|
Config._({required this.path});
|
|
|
|
static bool _isLoadingConfig = false;
|
|
|
|
static Future update() async {
|
|
if (!_isLoadingConfig) {
|
|
_isLoadingConfig = true;
|
|
ConfigInput().sendSignalToRust();
|
|
final stream = ConfigOutput.rustSignalStream;
|
|
|
|
await for (final rustSignal in stream) {
|
|
instance = Config._(
|
|
path: rustSignal.message.configPath,
|
|
);
|
|
break;
|
|
}
|
|
_isLoadingConfig = false;
|
|
}
|
|
}
|
|
|
|
static bool _isLoadingGetLaunchOptions = false;
|
|
|
|
static Future<String?> getLaunchOptions() async {
|
|
if (!_isLoadingGetLaunchOptions) {
|
|
_isLoadingGetLaunchOptions = true;
|
|
GetLaunchOptionsInput().sendSignalToRust();
|
|
final stream = GetLaunchOptionsOutput.rustSignalStream;
|
|
|
|
await for (final rustSignal in stream) {
|
|
_isLoadingGetLaunchOptions = false;
|
|
return rustSignal.message.launchOptions;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
static void setLaunchOptions(String? newLaunchOptions) {
|
|
SetLaunchOptionsInput(launchOptions: newLaunchOptions).sendSignalToRust();
|
|
}
|
|
}
|