ComponentContainer

public protocol ComponentContainer

Collection of UIViewControllers and protocol facades which helps establish inter-controller relationships during the application launch. Each view controller is responsible for establishing the connections in their establishConnections method. The goal should be to have relations between a controller and protocols / facades, and not between controllers themselves. This is enforced here through access restrictions to known controllers.

  • The Sampler that is used to generate sounds

    Declaration

    Swift

    var sampler: Sampler { get }
  • The collection of installed sound font files

    Declaration

    Swift

    var soundFonts: SoundFonts { get }
  • The collection of favorite presets

    Declaration

    Swift

    var favorites: Favorites { get }
  • The collection of user-defined tags for sound fonts

    Declaration

    Swift

    var tags: Tags { get }
  • The manager that tracks and holds the active preset that is in use in the samplers

    Declaration

    Swift

    var activePatchManager: ActivePatchManager { get }
  • The manager that tracks and holds the selected sound font. It is not necessarily the sound font that has the active preset.s

    Declaration

    Swift

    var selectedSoundFontManager: SelectedSoundFontManager { get }
  • The manager for the info bar that sits below the sound font and preset table views and above the keyboard.

    Declaration

    Swift

    var infoBar: InfoBar { get }
  • The keyboard manager if inside the application; the AUv3 component has no keyboard and so this will be nil.

    Declaration

    Swift

    var keyboard: Keyboard? { get }
  • The manager of the preset table view

    Declaration

    Swift

    var fontsViewManager: FontsViewManager { get }
  • The manager of the favorites collection view

    Declaration

    Swift

    var favoritesViewManager: FavoritesViewManager { get }
  • The provider of swipe actions for the sound fonts view

    Declaration

    Swift

    var fontEditorActionGenerator: FontEditorActionGenerator { get }
  • The reverb effect that is used if inside the application; the AUv3 component has none, so this will be nil.

    Declaration

    Swift

    var reverbEffect: ReverbEffect? { get }
  • The delay effect that is used if inside the application; the AUv3 component has none, so this will be nil.

    Declaration

    Swift

    var delayEffect: DelayEffect? { get }
  • Subscribe to notifications when the collection changes. The types of changes are defined in FavoritesEvent enum.

    Declaration

    Swift

    @discardableResult
    func subscribe<O: AnyObject>(
      _ subscriber: O,
      notifier: @escaping (ComponentContainerEvent) -> Void
    ) -> SubscriberToken

    Parameters

    subscriber

    the object doing the monitoring

    notifier

    the closure to invoke when a change takes place

    Return Value

    token that can be used to unsubscribe

  • isMainApp Extension method

    Returns true if running in the app, false when running in the AUv3 extension.

    Declaration

    Swift

    public var isMainApp: Bool { get }