Version 9 (modified by nedko, 4 years ago)

--

This page describes control flow sequences initiated by external events.

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
  2. Unique studio name is generated
  3. Studio appearance is announced
  4. JACK configuration is fetched
  5. Studio start is announced

THE NEXT ONES ARE BORROWED FROM OLD LASH WORK. They need to be rewritten for ladish.


Creating new session and saving it

  • Goal: Launch some applications and save session so it can be restored later.
  • Flow
    1. user launches applications and thus adds them to a new session
    2. user issues "save" command using control application that displays dialog to enter session name. If save is issued by normal application, session is saved using generated name.
    3. if application requires is using external storage or user has explicitly enabled use of external path storage, it displays dialog (application specific) where to save things. Using of external path storage is disabled by default. If user has enabled it in (per application setting, not stored in by LASH), save as dialog will be displayed when saving new application data.
    4. control application(s) display session save progress, applications display application data save progress.
    5. save complete, control application(s) know that and indicate it to user.

Loading existing session

  • Prerequisites: saved session
  • Goal: Load existing session
  • Flow:
    1. using control application, user chooses existing session to load and issues "load" command
    2. applications are started and their state is restored
    3. control application(s) display session load progress, applications display application data load progress.
    4. load complete, control application(s) know that and indicate that to user

Saving existing session

  • Prerequisites: loaded session
  • Goal: Save changes in already existing session
  • Flow:
    1. user issues "save" command. any client "save button" will do that. control application will do same.
    2. control application(s) display session save progress, applications display application data save progress.
    3. save complete, control app(s) know that and indicate it to user

"Save as" of an application data

  • Prerequisites: loaded session
  • Goal: Copy [after modification] data of external storage application to other place and change current session to use it.
  • Flow:
    1. Session is loaded
    2. User issues "save as" in an application
    3. dialog for saving application data elsewhere is displayed by application
    4. user chooses and confirms
    5. current session is modified to contain new location of application data for the application
  • Remarks: Probably not important at all.

Export session

  • Prerequisites: saved session
  • Goal: Export existing session as "tarball" suitable for transfering session data over network to other computer or storing it in a backup archive.
  • Flow:
    1. using control application, session is chosen (by name)
    2. export command is issued
    3. dialog is shown to user, with options like where (path) to export, whether to create tarball or directory tree, and in case of tarball, whether it should be compressed and how.
    4. user confirms options
    5. control application(s) display session export progress, applications display application data export progress.
    6. upon completion user is notified that project export has finished (successfully or not).

Import session

  • Prerequisites: exported session "tarball"
  • Goal: Import session tarball so session can be later loaded.
  • Flow:
    1. using control application, location of exported session data is chosen
    2. import command is issued
    3. control application(s) display session import progress.
    4. upon completion user is notified that project import has finished (successfully or not).
    5. new session available for load appears. current session is not changed

Duplicate session

  • Prerequisites: saved session
  • Goal: produce copy of a session
  • Flow:
    1. Session copy (with new name) is created using control application
    2. if session is currently loaded, it is not modified
    3. user can choose to load the new session as any other session

"Save as" session

  • Prerequisites: loaded session
  • Goal: produce copy of a [modified] session
  • Flow:
    1. Session is loaded
    2. session is modified in some way
    3. "save as" is issued using control app
    4. new session is created (with new name)