setBaseDirectory method

Future<void> setBaseDirectory([
  1. String? path
])

Set the base directory for model storage. Must be called during SDK initialization. Matches Swift: CppBridge.ModelPaths.setBaseDirectory()

Implementation

Future<void> setBaseDirectory([String? path]) async {
  final dir = path ?? (await getApplicationDocumentsDirectory()).path;

  try {
    final lib = PlatformLoader.loadCommons();
    final setBase = lib.lookupFunction<Int32 Function(Pointer<Utf8>),
        int Function(Pointer<Utf8>)>('rac_model_paths_set_base_dir');

    final dirPtr = dir.toNativeUtf8();
    try {
      final result = setBase(dirPtr);
      if (result == RacResultCode.success) {
        _logger.debug('C++ base directory set to: $dir');
      } else {
        _logger.warning('Failed to set C++ base directory: $result');
      }
    } finally {
      calloc.free(dirPtr);
    }
  } catch (e) {
    _logger.warning('rac_model_paths_set_base_dir error: $e');
  }
}