[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
After the user has done some work in the two clients, they want to save
their work. They click a button on one of the clients (or something similar)
and the client sends a CCA_Save
event to server. The server recieves
this and then iterates through each client in the project and checks its
flags. The JACK client saves data by itself (it has the
CCA_Config_File
flag set,) so the server creates a
directory under the project directory for it to save in and then sends a
CCA_Save_File
event to the client with a string containing the name
of the directory it made. The client recieves the event and saves its data into
the specified directory.
Next, the server examines the ALSA client. It wishes to save data on the
server, so the server sends a CCA_Save_Data_Set
to the client. With
all of the clients iterated through, it now saves all the information it
needs to be able to restore them; their working directory, command line
options, etc. In order to do this, it asks the JACK server
to find the connections for the JACK client, and asks the ALSA sequencer to
find the connections for the ALSA client. It uses the client name and ID
that both clients sent to the server after opening their connections to the
respective systems. All of this information is stored
in a file under the project's directory. When this is done, the server goes
back to listening for events and configs.
The client, meanwhile,
has recieved the CCA_Save_Data_Set
event and sends back a number of
configs to the server. When it has sent all the data it wishes to be saved,
it sends back a CCA_Save_Data_Set
event. The server passes all of
the configs to the object managing the data store for the ALSA client.
When the server recieves the CCA_Save_Data_Set
event
from the client, it tells the data store to write the data to
disk. The save is now complete.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |