ISLGroop client C API

 

This is a simple C API to create and control the standalone ISL Groop client. It supports creating a client instance, that can be joined into an ISL Groop session. The client is able to actively participate with audio video streaming and listening to audio streams and viewing video streams. It also has support for creating custom streams for integration purposes.


Remark: As of now. This API does not support watching of shared content.

islgroop_c_api.h

void ISLGroopClientAudioEnable(ISLGroopClientHandle clientHandle, BOOL enableAudio)

Start or stop the capturing of audio. Start or stop the audio recording device on the client computer. Device used is the default communication device, unless explicitly specified with the ISLGroopClientSetAudioPlaybackDevice or ISLGroopClientSetAudioCaptureDevice functions.

ISLGroopClientHandle ISLGroopClientCreate(ISLGroopClientParameters params)

Create a new client instance. Creates an instance of the ISL Groop client, returning the handle, which is used to access all the functions of the client.

int ISLGroopClientCreateStream(ISLGroopClientHandle clientHandle, ISLGroopClientStreamData streamData, ISLGroopClientStreamHandle *streamHandle)

Create a new session stream. Upon successful creation ISLGROOP_OK is returned and the streamHandle value is set to the value of newly created stream

int ISLGroopClientDestroy(ISLGroopClientHandle clientHandle)

Destroy the client instance. Destroys the client referenced by the handle.

void ISLGroopClientDestroyStream(ISLGroopClientHandle clientHandle, ISLGroopClientStreamHandle streamHandle)

Destroy the locally created stream. Destroy and close a stream that was created with the ISLGroopClientCreateStream function.

int ISLGroopClientGetAudioCaptureDevices(ISLGroopClientAVDevice *deviceArray, int deviceArraySize)

Enumerate audio capture devices. Return the list of all known audio capture devices. You can pass NULL as deviceArray and 0 as size in order to receive the number of devices in the system.

int ISLGroopClientGetAudioPlaybackDevices(ISLGroopClientAVDevice *deviceArray, int deviceArraySize)

Enumerate audio playback devices. Return the list of all known audio playback devices. You can pass NULL as deviceArray and 0 as size in order to receive the number of devices in the system.

int ISLGroopClientGetVideoDevices(ISLGroopClientAVDevice *deviceArray, int deviceArraySize)

Enumerate video capture devices. Return the list of all known video capture devices. You can pass NULL as deviceArray and 0 as size in order to receive the number of devices in the system.

void ISLGroopClientInitialize()

Initialize the ISL Groop Client Library. Initializes the internal structures of the ISL Groop Client Library. This must be called before any other functions from this API are called!!!

void ISLGroopClientSetAudioCaptureDevice(LPCTSTR deviceID)

Select audio capture device.

void ISLGroopClientSetAudioPlaybackDevice(LPCTSTR deviceID)

Select audio playback device.

void ISLGroopClientSetVideoDevice(LPCTSTR deviceID)

Select video capture device.

void ISLGroopClientShareDesktop(ISLGroopClientHandle clientHandle, int left, int top, int right, int bottom)

Setup desktop sharing. Select area of screen to be shared:

void ISLGroopClientStreamReceiveRegister(ISLGroopClientHandle clientHandle, ISLGroopClientStreamHandle streamHandle, ISLGroopClientStreamDataReceiveCB func, void *cbArg)

Register a callback for receiving stream data. This function registers a callback for receiving data from a given remote stream. The callback will be called for every packet of data that arrives on this stream. The function will subscribe the client to this stream.

void ISLGroopClientStreamReceiveUnRegister(ISLGroopClientHandle clientHandle, ISLGroopClientStreamHandle streamHandle, ISLGroopClientStreamDataReceiveCB func, void *cbArg)

Unregister a callback for receiving stream data. Unregister a callback that was previously registered via the ISLGroopClientStreamReceiveRegister function. If there are no more callbacks registered for the stream, then the client will unsubscribe from this stream.

int ISLGroopClientStreamRenderVideo(ISLGroopClientHandle clientHandle, ISLGroopClientStreamHandle streamHandle, HWND wndHandle)

Start rendering video stream in a window. To render personal video streams, use the ISLGroopClientUserRenderVideo To stop rendering this stream, either call this function again with the wndHandle set to NULL or delete the window

int ISLGroopClientStreamSend(ISLGroopClientHandle clientHandle, ISLGroopClientStreamHandle streamHandle, char *buffer, int bufferSize)

Send data to the locally created stream. Upon successful send ISLGROOP_OK is returned In case of a known stream type, the function will demand that the data be structured correctly for each send, if it cannot parse the data correctly, the ISLGROOP_ERR_INVALID_DATA return value is returned, and nothing is sent

int ISLGroopClientUserGetNickname(ISLGroopClientHandle clientHandle, ISLGroopClientUserHandle userHandle, LPTSTR buffer, int *bufferSize)

Get nickname for the user.

int ISLGroopClientUserIsLocal(ISLGroopClientHandle clientHandle, ISLGroopClientUserHandle userHandle, BOOL *isLocalUser)

Is this the local user.

int ISLGroopClientUserRenderVideo(ISLGroopClientHandle clientHandle, ISLGroopClientUserHandle userHandle, HWND wndHandle)

Start rendering user's video in a window. Start rendering the stream in the window given by window handle. To stop rendering this stream, either call this function again with the wndHandle set to NULL or delete the window Renderer will automatically select the best personal video stream from the user. It will also render the personal image from the user, when there are no streams available.

void ISLGroopClientVideoEnable(ISLGroopClientHandle clientHandle, BOOL enableVideo)

Start or stop the capturing of video. Start or stop the video recording device on the client computer. Device used is the default system device, unless explicitly specified with the ISLGroopClientSetVideoCaptureDevice function.

Was this article helpful?