YSHMOpenSound(3) shared sound buffer opening

SYNTAX

#include <Y2/Y.h>
#include <Y2/Ylib.h>

void *YSHMOpenSound(

        YConnection *connection,

        int *length,

        int *id
)

ARGUMENTS

connection
Specifies the connection to the Y server, obtained by a call to YOpenConnection.
length
Returns the length of the sound buffer in bytes.
id
Returns the shared memory id of the sound buffer.

DESCRIPTION

The YSHMOpenSound obtains a direct pointer to the sound buffer on the Y server. The returned buffer must be deallocated with a call to YSHMCloseSound.

If you receive a YSHMSound event with the minor_op_code set to YSHMSoundClose then the pointer to the sound buffer obtained from YSHMOpenSound is no longer referenced by the Y server and is now useless. You need to reopen the buffer by calling YSHMCloseSound and then YSHMOpenSound to reobtain the direct pointer to the sound buffer on the Y server.

The process of the client and the server must both be running on the same physical machine.

RETURN VALUE

The YSHMSoundOpen returns a direct pointer to the sound buffer on the Y server or NULL on error.

EXAMPLE

#include <stdio.h>
#include <Y2/Y.h>
#include <Y2/Ylib.h>

int main(int argc, char *argv[])
{

        int length, id;

        void *buf;

        YConnection *con = YOpenConnection(

                "/usr/sbin/starty",

                "127.0.0.1:9433"

        );

        if(con == NULL)

                return(1);


        /* Obtain the pointer to the sound buffer. */

        buf = YSHMOpenSound(con, &length, &id);

        if(buf != NULL)

        {

                /* Do something with the buffer here. */


                /* Close the pointer to the sound buffer. */

                YSHMCloseSound(con, buf);

        }


        YCloseConnection(con, False);


        return(0);
}