| Version 29 (modified by nedko, 4 years ago) |
|---|
This page describes control flow sequences initiated by external events. These are supposed to be used in UseCases.
New studio creation
- User initiates studio creation. For wizard-like workflow, these could be the steps:
- User selects "new studio..." from a popup or the main menu.
- Window appears and user enters name of the studio.
- The UI sends the new studio command to daemon
- Current studio, if any, is unloaded
- If supplied studio name is empty, it is generated
- 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.
- JACK start is detected by the daemon
- Unique studio name is generated
- Studio appearance is announced by the daemon
- JACK configuration is fetched
- Studio start is announced by the daemon
Load studio
- User initiates studio load:
- UI queries list of studios
- User chooses one of them and sends the load studio command to daemon
- Daemon unloads currently loaded studio, if any.
- Studio is loaded from disk
- Studio appearance is announced by the daemon
- Studio is started
Start studio
- JACK server start is initiated
- When JACK server gets started, studio start is announced by the daemon
Stop studio
- JACK server stop is initiated
- When JACK server gets stopped, studio stop is announced by the daemon
Rename studio
- User initiates studio rename (new studio name is supplied)
- Daemon changes the name
- Studio rename is announced by the daemon
Save studio
- Backup is created from current studio storage, if exists
- Studio is saved to disk
Unload studio
- If studio is started, it is stopped and stop is waited
- Studio inmemory data is unloaded
Delete studio
- User initiates studio delete:
- UI queries list of studios
- User chooses one of them and sends the delete studio command to daemon
- Daemon deletes and backup (it it exsists) for the named studio.
Deactivate daemon
- Current studio, if any, is unloaded
- Controller dbus object path is unregistered
- Daemon process exits
