This page describes control flow sequences initiated by external events. These are supposed to be used in UseCases.

Daemon autoactivation

  1. A D-Bus call for the control object is issued
  2. The D-Bus messagebus daemon starts the daemon process
  3. The daemon registers the control object path and starts processing method calls

New studio creation

  1. User initiates studio creation. For wizard-like workflow, these could be the steps:
    1. User selects "new studio..." from a popup or the main menu.
    2. Window appears and user enters name of the studio.
    3. The UI sends the new studio command to daemon
  2. Current studio, if any, is unloaded
  3. If supplied studio name is empty, it is generated
  4. Studio appearance is announced by the daemon

Automatic studio creation on JACK server start

When JACK server is started not by ladish daemon and there is no loaded studio, a new studio is created.

  1. JACK start is detected by the daemon
  2. Unique studio name is generated
  3. Studio appearance is announced by the daemon
  4. JACK configuration is fetched
  5. Studio start is announced by the daemon

Load studio

  1. User initiates studio load:
    1. UI queries list of studios
    2. User chooses one of them and sends the load studio command to daemon
  2. Daemon unloads currently loaded studio, if any.
  3. Studio is loaded from disk
  4. Studio appearance is announced by the daemon
  5. Studio is started

Start studio

  1. JACK server start is initiated
  2. When JACK server gets started, studio start is announced by the daemon

Stop studio

  1. JACK server stop is initiated
  2. When JACK server gets stopped, studio stop is announced by the daemon

Rename studio

  1. User initiates studio rename (new studio name is supplied)
  2. Daemon changes the name
  3. Studio rename is announced by the daemon

Save studio

  1. Backup is created from current studio storage, if exists
  2. Studio is saved to disk

Unload studio

  1. If studio is started, it is stopped and stop is waited
  2. Studio inmemory data is unloaded

Delete studio

  1. User initiates studio delete:
    1. UI queries list of studios
    2. User chooses one of them and sends the delete studio command to daemon
  2. Daemon deletes and backup (it it exsists) for the named studio.

Deactivate daemon

  1. Current studio, if any, is unloaded
  2. Controller dbus object path is unregistered
  3. Daemon process exits