getEnvironmentList static method
Implementation
static List<AiliaEnvironment> getEnvironmentList() {
List<AiliaEnvironment> envList =
List<AiliaEnvironment>.empty(growable: true);
final ailia =
ailia_dart.ailiaFFI(_ailiaCommonGetLibrary(_ailiaCommonGetPath()));
final Pointer<Uint32> count = malloc<Uint32>();
count.value = 0;
int status = ailia.ailiaGetEnvironmentCount(count);
if (status != ailia_dart.AILIA_STATUS_SUCCESS) {
throw Exception("ailiaGetEnvironmentCount failed $status");
}
for (int envIdx = 0; envIdx < count.value; envIdx++) {
Pointer<Pointer<ailia_dart.AILIAEnvironment>> ppEnv =
malloc<Pointer<ailia_dart.AILIAEnvironment>>();
status = ailia.ailiaGetEnvironment(
ppEnv,
envIdx,
ailia_dart.AILIA_ENVIRONMENT_VERSION,
);
if (status != ailia_dart.AILIA_STATUS_SUCCESS) {
throw Exception("ailiaGetEnvironment failed $status");
}
Pointer<ailia_dart.AILIAEnvironment> pEnv = ppEnv.value;
malloc.free(ppEnv);
AiliaEnvironment env = AiliaEnvironment();
env.id = pEnv.ref.id;
env.name = pEnv.ref.name.cast<Utf8>().toDartString();
env.props = pEnv.ref.props;
envList.add(env);
}
malloc.free(count);
return envList;
}