---
name: "YSHMOpenSound"
section: "3"
platform: "linux"
package: "liby-dev"
version: "2.14.5-7"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/YSHMOpenSound"
---

# YSHMOpenSound(3)

shared sound buffer opening

## NAME

YSHMOpenSound - 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)](/return/1.md);

        /\* 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);\
 }

## SEE ALSO

[YSHMCloseSound(3)](/YSHMCloseSound/3.md) [YEventYSHMSound(3)](/YEventYSHMSound/3.md)
