Synthizer constructor

Synthizer({
  1. String? filename,
})

Create an instance.

Implementation

Synthizer({final String? filename})
    : eventPointer = calloc<syz_Event>(),
      intPointer = calloc<Int>(),
      bigIntPointer = calloc<UnsignedLongLong>(),
      majorPointer = calloc<UnsignedInt>(),
      minorPointer = calloc<UnsignedInt>(),
      patchPointer = calloc<UnsignedInt>(),
      routeConfig = calloc<syz_RouteConfig>(),
      doublePointer = calloc<Double>(),
      x1 = calloc<Double>(),
      y1 = calloc<Double>(),
      z1 = calloc<Double>(),
      x2 = calloc<Double>(),
      y2 = calloc<Double>(),
      z2 = calloc<Double>(),
      userdataFreeCallbackPointer = nullptr.cast<syz_UserdataFreeCallback>(),
      deleteBehaviorConfigPointer = calloc<syz_DeleteBehaviorConfig>(),
      sineBankWavePointer = calloc<syz_SineBankWave>(),
      sineBankConfigPointer = calloc<syz_SineBankConfig>(),
      _wasInit = false {
  final DynamicLibrary library;
  if (filename == null) {
    if (Platform.isWindows) {
      library = DynamicLibrary.open('synthizer.dll');
    } else if (Platform.isLinux) {
      library = DynamicLibrary.open(
        path.join(Directory.current.path, 'libsynthizer.so'),
      );
    } else if (Platform.isMacOS) {
      library = DynamicLibrary.open('libsynthizer.dylib');
    } else {
      throw SynthizerError('Unhandled platform.', -1);
    }
  } else if (filename == synthizerExecutableFilename) {
    library = DynamicLibrary.executable();
  } else if (filename == synthizerProcessFilename) {
    library = DynamicLibrary.process();
  } else {
    library = DynamicLibrary.open(filename);
  }
  synthizer = DartSynthizer(library);
}