[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.1.1.4 Saving the project

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] [ ? ]

This document was generated on June, 25 2005 using texi2html