<HTML> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- Created on February, 6 2003 by texi2html 1.64 --> <!-- Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author) Karl Berry <karl@freefriends.org> Olaf Bachmann <obachman@mathematik.uni-kl.de> and many others. Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de> Send bugs and suggestions to <texi2html@mathematik.uni-kl.de> --> <HEAD> <TITLE>Linux Audio Developer's Configuration and Connection API: 6.2.1 Normal clients</TITLE> <META NAME="description" CONTENT="Linux Audio Developer's Configuration and Connection API: 6.2.1 Normal clients"> <META NAME="keywords" CONTENT="Linux Audio Developer's Configuration and Connection API: 6.2.1 Normal clients"> <META NAME="resource-type" CONTENT="document"> <META NAME="distribution" CONTENT="global"> <META NAME="Generator" CONTENT="texi2html 1.64"> </HEAD> <BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000"> <A NAME="SEC27"></A> <TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> <TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual_26.html#SEC26"> < </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual_28.html#SEC28"> > </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual_19.html#SEC19"> << </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual_19.html#SEC19"> Up </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual_20.html#SEC20"> >> </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual.html#SEC_Top">Top</A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual_toc.html#SEC_Contents">Contents</A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual_abt.html#SEC_About"> ? </A>]</TD> </TR></TABLE> <HR SIZE=1> <H3> 6.2.1 Normal clients </H3> <!--docid::SEC27::--> <P> <DL COMPACT> <DT><CODE>CCA_Client_Name</CODE> <DD><DL COMPACT> <DT><EM>To server, non-<CODE>NULL</CODE> string</EM> <DD>Set the client's user-visible name. <DT><EM>To server, <CODE>NULL</CODE> string</EM> <DD>Request the client's user-visible name. <DT><EM>From server</EM> <DD>This will only be sent in response to a <CODE>CCA_Client_Name</CODE> with a <CODE>NULL</CODE> string. The string will be <CODE>NULL</CODE> if the client has not set a user-visible name, and the name itself if it has. </DL> <P> <DT><CODE>CCA_Jack_Client_Name</CODE> <DD><DL COMPACT> <DT><EM>To server, non-<CODE>NULL</CODE> string</EM> <DD>Tell the server what name the client is connected to JACK with. It is valid to send a <CODE>CCA_Jack_Client_Name</CODE> event after connecting without the <CODE>CCA_Use_Jack</CODE> flag; the server will simply update its server-side description to reflect this. Bear in mind that flags are inherited by resumed clients. This may be an in issue if a client that does not set the <CODE>CCA_Use_Jack</CODE> flag sends a <CODE>CCA_Jack_Client_Name</CODE> event and is later resumed by a client which does not become a JACK client. The <SAMP>`--ladcca-no-autoresume'</SAMP> option can still be used in such situations. <P> Clients should only ever send one non-<CODE>NULL</CODE> <CODE>CCA_Jack_Client_Name</CODE> event. </P><P> <DT><EM>To server, <CODE>NULL</CODE> string</EM> <DD>Request the client name that the server thinks the client is connected to JACK with. <DT><EM>From server</EM> <DD>This will only be sent in response to a <CODE>CCA_Jack_Client_Name</CODE> with a <CODE>NULL</CODE> string. The string will be <CODE>NULL</CODE> if the client has not set a JACK client name, and the client name itself if it has. </DL> <P> <DT><CODE>CCA_Alsa_Client_ID</CODE> <DD>To communicate ALSA client IDs within events, use the first character of a two character string of the form <CODE>{ <VAR>id</VAR>, '\0' }</CODE> as the event string. A convenience function, <CODE>cca_alsa_client_id</CODE>, exists to do this for you (see <A HREF="ladcca-manual_21.html#cca_alsa_client_id">cca_alsa_client_id</A>.) <P> <DL COMPACT> <DT><EM>To server, non-<CODE>NULL</CODE> string</EM> <DD>Tell the server what ID the client is connected to ALSA with. It is valid to send a <CODE>CCA_Alsa_Client_ID</CODE> event after connecting without the <CODE>CCA_Use_Alsa</CODE> flag; the server will simply update its server-side description to reflect this. Bear in mind that flags are inherited by resumed clients. This may be an in issue if a client that does not set the <CODE>CCA_Use_Alsa</CODE> flag sends a <CODE>CCA_Alsa_Client_ID</CODE> event and is later resumed by a client which does not become an ALSA client. The <SAMP>`--ladcca-no-autoresume'</SAMP> option can still be used in such situations. <P> Clients should only ever send one non-<CODE>NULL</CODE> <CODE>CCA_Alsa_Client_ID</CODE> event. </P><P> <DT><EM>To server, <CODE>NULL</CODE> string</EM> <DD>Request the client ID that the server thinks the client is connected to ALSA with. <DT><EM>From server</EM> <DD>This will only be sent in response to a <CODE>CCA_Alsa_Client_ID</CODE> with a <CODE>NULL</CODE> string. The string will be <CODE>NULL</CODE> if the client has not set an ALSA client ID, and a string containing the ALSA client ID as described above if it has. </DL> <P> <DT><CODE>CCA_Save_File</CODE> <DD><DL COMPACT> <DT><EM>From server</EM> <DD>Tell the client to save all its data to files within a specific directory. The event string will never be <CODE>NULL</CODE> and will contain the name of the directory in which the client should save its data. Clients must always send a <CODE>CCA_Save_File</CODE> event back to the server when they have finished saving their data. The client should not rely on the directory existing after it has sent its <CODE>CCA_Save_File</CODE> event back. It is valid behaviour for a client to save no files within the directory. Files should always be overwritten (ie, using the "w" flag with <CODE>fopen()</CODE>,) preferably without user confirmation if you care for their sanity. <DT><EM>From client</EM> <DD>Tell the server that the client has finished saving its data within the directory it was told to. The string is ignored. </DL> <P> <DT><CODE>CCA_Restore_File</CODE> <DD><DL COMPACT> <DT><EM>From server</EM> <DD>Tell the client to load all its data from files within a specific directory. The event string will never be <CODE>NULL</CODE> and will contain the name of the directory from which the client should load its data. Clients must always send a <CODE>CCA_Restore_File</CODE> event back to the server when they have finished saving their data. The client should not rely on the directory existing after it has sent its <CODE>CCA_Restore_File</CODE> event back. <DT><EM>From client</EM> <DD>Tell the server that the client has finished restoring its data from within the directory it was told to. The string is ignored. </DL> <P> <DT><CODE>CCA_Save_Data_Set</CODE> <DD><DL COMPACT> <DT><EM>From server</EM> <DD>Tell the client to send all its configuration data to the server with a number of configs. The client must always send a <CODE>CCA_Save_Data_Set</CODE> event back to the server when it has finished sending its configs. The event string will always be <CODE>NULL</CODE>. <DT><EM>From client</EM> <DD>Tell the server that the client has finished sending its configs to the server. The event string is ignored. </DL> <P> <DT><CODE>CCA_Restore_Data_Set</CODE> <DD><DL COMPACT> <DT><EM>From server</EM> <DD>Tell the client to immediately expect a stream of configs from the server. This event will only be sent if there are one or more configs to be sent. The event string will always be <CODE>NULL</CODE>. The client must always send a <CODE>CCA_Restore_Data_Set</CODE> back to the server when it has recieved all of its configs. <DT><EM>From client</EM> <DD>Tell the server that the client has finished recieving its configs from the server. The event string is ignored. </DL> <P> <DT><CODE>CCA_Save</CODE> <DD><DL COMPACT> <DT><EM>From client</EM> <DD>Tell the server to save the project that the client is attached to. <DT><EM>From server</EM> <DD>Never occurs. </DL> <P> <DT><CODE>CCA_Quit</CODE> <DD><DL COMPACT> <DT><EM>From client</EM> <DD>Tell the server to close all clients in the project that the client is attached to. <DT><EM>From server</EM> <DD>The client should immediately quit without saving. No more events will be sent by the server and the client's connection will be terminated. </DL> </DL> <P> <HR SIZE=1> <TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> <TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual_26.html#SEC26"> < </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual_28.html#SEC28"> > </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual_19.html#SEC19"> << </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual_19.html#SEC19"> Up </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual_20.html#SEC20"> >> </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual.html#SEC_Top">Top</A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual_toc.html#SEC_Contents">Contents</A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ladcca-manual_abt.html#SEC_About"> ? </A>]</TD> </TR></TABLE> <BR> <FONT SIZE="-1"> This document was generated on <I>February, 6 2003</I> using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html "><I>texi2html</I></A> </BODY> </HTML>