Immersitech SDK Documentation
Engage SDK documentation
immersitech_sound_manager.h
Go to the documentation of this file.
1 #pragma once
2 
21 
22 #ifndef IMMERSITECH_LIBRARY_H_
23 #define IMMERSITECH_LIBRARY_H_
24 
25 #if HAVE_VISIBILITY
26 #define IMMERSITECH_SOUND_MANAGER_API __attribute__((__visibility__("default")))
27 #elif defined _WIN32
28 #define IMMERSITECH_SOUND_MANAGER_API __declspec(dllexport)
29 #else
30 #define IMMERSITECH_SOUND_MANAGER_API
31 #endif
32 
41 typedef struct immersitech_position {
42  int x;
43  int y;
44  int z;
46 
54 typedef struct immersitech_heading {
58 
81 
93 
107 
117 
121  IMM_ERROR_START = -10001,
146 
150 #define IMM_VERSION_BUFFER_LENGTH 11
151 
156 
157 #ifdef __cplusplus
158 extern "C" {
159 #endif
160 
166  IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_get_version(char *character_buffer, int buffer_len);
167 
177  IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_initialize_library(const char* license_file_name, int sampling_rate, int num_frames_per_buffer, immersitech_output_format output_format, int impulse_length);
178 
185 
191 
197 
206  IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_add_participant(Immersitech_Conference conference, int sampling_rate, int num_channels, immersitech_participant_types participant_type, int* new_id);
207 
214 
222  IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_input_audio(Immersitech_Conference conference, short* audio_data, int number_frames, int participant_ID);
223 
231 
241 
250 
260 
269 
281  IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_get_participant_spherical(Immersitech_Conference conference, int listener_ID, int source_ID, int* azimuth, int* elevation, int* distance);
282 
291 
292 #ifdef __cplusplus
293 }
294 #endif
295 
296 #endif // IMMERSITECH_LIBRARY_H_
IMM_ERROR_START
@ IMM_ERROR_START
This value allows you to identify the start of the enum.
Definition: immersitech_sound_manager.h:121
IMM_DEVICE_START
@ IMM_DEVICE_START
This value allows you to identify the start of the enum.
Definition: immersitech_sound_manager.h:88
IMM_ERROR_LIBRARY_NOT_YET_INITIALIZED
@ IMM_ERROR_LIBRARY_NOT_YET_INITIALIZED
This error code will be generated if you call any functions before initializing the library.
Definition: immersitech_sound_manager.h:139
IMM_ERROR_ENGINE_NULL
@ IMM_ERROR_ENGINE_NULL
This error code indicates you have not initialized one of the handles properly yet.
Definition: immersitech_sound_manager.h:123
IMM_PARTICIPANT_END
@ IMM_PARTICIPANT_END
This value allows you to identify the end of the enum.
Definition: immersitech_sound_manager.h:105
IMM_PARTICIPANT_START
@ IMM_PARTICIPANT_START
This value allows you to identify the start of the enum.
Definition: immersitech_sound_manager.h:101
IMM_ERROR_LICENSE_TAMPERED
@ IMM_ERROR_LICENSE_TAMPERED
This error code indicates your license file has been corrupted. All audio effects will be bypassed.
Definition: immersitech_sound_manager.h:142
IMM_ERROR_INVALID_HEADING
@ IMM_ERROR_INVALID_HEADING
This error code indicates you provide a heading that was outside the allowed values....
Definition: immersitech_sound_manager.h:134
imm_edit_participant_position
IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_edit_participant_position(Immersitech_Conference conference, int participant_ID, immersitech_position position, immersitech_heading heading)
Function to edit x,y,z position of a given participant.
imm_input_audio
IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_input_audio(Immersitech_Conference conference, short *audio_data, int number_frames, int participant_ID)
Function to add audio data from a participant into the conference.
immersitech_position
A structure to describe a postion within a three-dimensional space.
Definition: immersitech_sound_manager.h:41
IMM_CONTROL_MIXING_3D_MAX_DISTANCE
@ IMM_CONTROL_MIXING_3D_MAX_DISTANCE
If 3D mixing is enabled, this control will determine the max distance up to which attenuation will ap...
Definition: immersitech_sound_manager.h:72
immersitech_output_format
immersitech_output_format
Output Types - how your output stream will be formatted.
Definition: immersitech_sound_manager.h:110
immersitech_heading::elevation_heading
int elevation_heading
Definition: immersitech_sound_manager.h:56
imm_create_conference
IMMERSITECH_SOUND_MANAGER_API Immersitech_Conference imm_create_conference()
Function to allocate memory and initialize a conference.
IMM_CONTROL_STEREO_BYPASS_ENABLE
@ IMM_CONTROL_STEREO_BYPASS_ENABLE
If the stereo bypass is enabled, all effects will be bypassed, meaning no processing will occur....
Definition: immersitech_sound_manager.h:65
IMM_ERROR_LICENSE_VERSION_MISMATCH
@ IMM_ERROR_LICENSE_VERSION_MISMATCH
This error code indicates your license files version requirements no longer match....
Definition: immersitech_sound_manager.h:141
IMM_ERROR_NO_INPUT_AUDIO
@ IMM_ERROR_NO_INPUT_AUDIO
This error code indicates that there was no input audio to be processed, meaning an output buffer cou...
Definition: immersitech_sound_manager.h:135
IMM_CONTROL_END
@ IMM_CONTROL_END
This value allows you to identify the end of the enum.
Definition: immersitech_sound_manager.h:79
IMM_DEVICE_SPEAKER
@ IMM_DEVICE_SPEAKER
The listening device is a stereo loudspeaker pair. If this is selected, the participant should also s...
Definition: immersitech_sound_manager.h:90
IMM_ERROR_NONE
@ IMM_ERROR_NONE
This error code indicates the function worked successfully without error.
Definition: immersitech_sound_manager.h:122
IMM_CONTROL_MIXING_3D_ENABLE
@ IMM_CONTROL_MIXING_3D_ENABLE
If a participant has 3D mixing enabled, they will hear all other participants spatially rendering in ...
Definition: immersitech_sound_manager.h:70
IMM_ERROR_LICENSE_DATE_EXPIRED
@ IMM_ERROR_LICENSE_DATE_EXPIRED
This error code indicates your license files no longer matches the date requirements....
Definition: immersitech_sound_manager.h:140
immersitech_participant_types
immersitech_participant_types
Types of participants you can instantiate.
Definition: immersitech_sound_manager.h:100
imm_remove_participant
IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_remove_participant(Immersitech_Conference conference, int participant_ID)
Function to remove a participant from a conference.
IMM_ERROR_CONFERENCE_EMPTY
@ IMM_ERROR_CONFERENCE_EMPTY
This error code indicates that there are not yet any participants in the conference to be processed.
Definition: immersitech_sound_manager.h:136
IMM_CONTROL_DEVICE
@ IMM_CONTROL_DEVICE
The device setting will help optimize 3D processing for a particular participant's listening device....
Definition: immersitech_sound_manager.h:74
immersitech_audio_controls
immersitech_audio_controls
Audio Controls you can change in real-time.
Definition: immersitech_sound_manager.h:63
imm_output_audio
IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_output_audio(Immersitech_Conference conference, int participant_ID, short *output)
Function to process audio data and return the output audio data for a participant.
immersitech_device_types
immersitech_device_types
Output Device Types you may be listening on.
Definition: immersitech_sound_manager.h:87
immersitech_heading
A strucutre to describe the direction a participant is facing in three-dimensional space.
Definition: immersitech_sound_manager.h:54
imm_destroy_conference
IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_destroy_conference(Immersitech_Conference conference)
Function to removes all remaining participants from a conference and frees all the data for the confe...
Immersitech_Conference
void * Immersitech_Conference
Immersitech Library API Handler.
Definition: immersitech_sound_manager.h:155
imm_add_participant
IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_add_participant(Immersitech_Conference conference, int sampling_rate, int num_channels, immersitech_participant_types participant_type, int *new_id)
Function to add a new pariticipant into a conference.
IMM_PARTICIPANT_SOURCE_ONLY
@ IMM_PARTICIPANT_SOURCE_ONLY
A source only participant will only input audio and will NOT receive other participant's audio.
Definition: immersitech_sound_manager.h:103
IMM_CONTROL_MIXING_3D_ATTENUATION
@ IMM_CONTROL_MIXING_3D_ATTENUATION
If 3D mixing is enabled, this control will determine how the volume of a source drops off as they mov...
Definition: immersitech_sound_manager.h:71
immersitech_position::x
int x
Definition: immersitech_sound_manager.h:42
IMM_ERROR_DATA_LENGTH
@ IMM_ERROR_DATA_LENGTH
This error code indicates there is a mismatch between the size of the data buffer you provided and th...
Definition: immersitech_sound_manager.h:125
immersitech_error_codes
immersitech_error_codes
All error codes that may be produced by the library.
Definition: immersitech_sound_manager.h:120
IMM_CONTROL_AGC_ENABLE
@ IMM_CONTROL_AGC_ENABLE
If a participant has AGC enabled, their input audio will be automatically adjusted to match the volum...
Definition: immersitech_sound_manager.h:68
IMM_OUTPUT_FORMAT_START
@ IMM_OUTPUT_FORMAT_START
This value allows you to identify the start of the enum.
Definition: immersitech_sound_manager.h:111
immersitech_position::z
int z
Definition: immersitech_sound_manager.h:44
IMM_ERROR_OUTPUT_TYPE
@ IMM_ERROR_OUTPUT_TYPE
This error code indicates that you specified an invalid output type. Reference immersitech_output_for...
Definition: immersitech_sound_manager.h:128
IMM_OUTPUT_FORMAT_STEREO_BLOCK
@ IMM_OUTPUT_FORMAT_STEREO_BLOCK
The output will have two channels, first the entire left channel, then followed by the entire right c...
Definition: immersitech_sound_manager.h:114
IMM_ERROR_INVALID_VALUE
@ IMM_ERROR_INVALID_VALUE
This error code indicates the value provided is outside the bounds specified for the various immersit...
Definition: immersitech_sound_manager.h:133
IMMERSITECH_SOUND_MANAGER_API
#define IMMERSITECH_SOUND_MANAGER_API
Definition: immersitech_sound_manager.h:30
IMM_CONTROL_AUTO_EQ_ENABLE
@ IMM_CONTROL_AUTO_EQ_ENABLE
If a participant has Auto EQ enabled, their input audio will automatically adjusted to maximize the c...
Definition: immersitech_sound_manager.h:69
IMM_ERROR_SAMPLE_RATE
@ IMM_ERROR_SAMPLE_RATE
This error code indicates that you tried to specify an output sampling rate that is unsupported or an...
Definition: immersitech_sound_manager.h:127
IMM_CONTROL_SIDEBAR_ROOM
@ IMM_CONTROL_SIDEBAR_ROOM
If a participant's sidebar room is set to a non-zero value from 1-100, they will be rendered inside t...
Definition: immersitech_sound_manager.h:78
IMM_CONTROL_MUTE_ENABLE
@ IMM_CONTROL_MUTE_ENABLE
If a participant's mute is enabled, their input audio will not be passed to the other participants....
Definition: immersitech_sound_manager.h:66
IMM_PARTICIPANT_REGULAR
@ IMM_PARTICIPANT_REGULAR
A regular participant will both input audio and receive other participant's audio.
Definition: immersitech_sound_manager.h:102
imm_destroy_library
IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_destroy_library()
Function to frees all memory associated with the immersitech library.
IMM_OUTPUT_FORMAT_END
@ IMM_OUTPUT_FORMAT_END
This value allows you to identify the end of the enum.
Definition: immersitech_sound_manager.h:115
IMM_DEVICE_END
@ IMM_DEVICE_END
This value allows you to identify the end of the enum.
Definition: immersitech_sound_manager.h:91
IMM_CONTROL_START
@ IMM_CONTROL_START
This value allows you to identify the start of the enum.
Definition: immersitech_sound_manager.h:64
immersitech_position
struct immersitech_position immersitech_position
A structure to describe a postion within a three-dimensional space.
IMM_CONTROL_MIXING_3D_REVERB_ENABLE
@ IMM_CONTROL_MIXING_3D_REVERB_ENABLE
If 3D mixing is enabled, this control will determine if reverb is applied to the 3D rendering....
Definition: immersitech_sound_manager.h:73
IMM_ERROR_IMPULSE_LENGTH
@ IMM_ERROR_IMPULSE_LENGTH
This error code indicates that you specified an invalid impulse length. Allowable values are from 512...
Definition: immersitech_sound_manager.h:129
IMM_CONTROL_ANC_ENABLE
@ IMM_CONTROL_ANC_ENABLE
If a participant has ANC enabled, all noise in their input audio will be automatically cancelled....
Definition: immersitech_sound_manager.h:67
IMM_PARTICIPANT_LISTENER_ONLY
@ IMM_PARTICIPANT_LISTENER_ONLY
A listener only participant will only receive other participant's audio and will NOT input audio.
Definition: immersitech_sound_manager.h:104
IMM_ERROR_INVALID_ROOM_ID
@ IMM_ERROR_INVALID_ROOM_ID
This error code indicates that you requested a room with an ID that doesn't exist....
Definition: immersitech_sound_manager.h:130
imm_initialize_library
IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_initialize_library(const char *license_file_name, int sampling_rate, int num_frames_per_buffer, immersitech_output_format output_format, int impulse_length)
Function to allocate memory for the immersitech library.
IMM_OUTPUT_FORMAT_STEREO_INTERLEAVED
@ IMM_OUTPUT_FORMAT_STEREO_INTERLEAVED
The output will have two channels which will be interleaved.
Definition: immersitech_sound_manager.h:113
imm_edit_participant_state
IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_edit_participant_state(Immersitech_Conference conference, int participant_ID, immersitech_audio_controls control_to_edit, int value)
Function to edit state of a given participant.
imm_get_participant_spherical
IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_get_participant_spherical(Immersitech_Conference conference, int listener_ID, int source_ID, int *azimuth, int *elevation, int *distance)
Function to retrieve Spherical Coordinates of a given source of a given conference participant.
IMM_ERROR_END
@ IMM_ERROR_END
This value allows you to identify the end of the enum.
Definition: immersitech_sound_manager.h:144
imm_flush_data
IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_flush_data(Immersitech_Conference conference, int participant_id)
Function to clear all data related to a particular participant.
IMM_CONTROL_WHISPER_ROOM
@ IMM_CONTROL_WHISPER_ROOM
If a participant's whisper room is set to a non-zero value from 1-100, they will be rendered inside t...
Definition: immersitech_sound_manager.h:77
immersitech_position::y
int y
Definition: immersitech_sound_manager.h:43
IMM_ERROR_INVALID_CONTROL
@ IMM_ERROR_INVALID_CONTROL
This error code indicates the control specified is not a valid one with the bounds of immersitech_aud...
Definition: immersitech_sound_manager.h:132
IMM_ERROR_NUM_CHANNELS
@ IMM_ERROR_NUM_CHANNELS
This error code indicates that you tried to specify a number of channels outside the allowed bounds.
Definition: immersitech_sound_manager.h:126
IMM_ERROR_DATA_NULL
@ IMM_ERROR_DATA_NULL
This error code indicates you tried to use a buffer or variable that wasn't allocated properly.
Definition: immersitech_sound_manager.h:124
immersitech_heading
struct immersitech_heading immersitech_heading
A strucutre to describe the direction a participant is facing in three-dimensional space.
IMM_CONTROL_MASTER_GAIN
@ IMM_CONTROL_MASTER_GAIN
The master gain setting will adjust the volume for a participant's output audio. It is given as a per...
Definition: immersitech_sound_manager.h:76
imm_get_participant_state
IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_get_participant_state(Immersitech_Conference conference, int participant_ID, immersitech_audio_controls control_to_edit, int *value)
Function to retrieve state of a given conference participant.
IMM_OUTPUT_FORMAT_MONO
@ IMM_OUTPUT_FORMAT_MONO
The output will have only one channel.
Definition: immersitech_sound_manager.h:112
imm_get_version
IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_get_version(char *character_buffer, int buffer_len)
Function to return the current version of the immersitech library.
IMM_ERROR_PARTICIPANT_TYPE
@ IMM_ERROR_PARTICIPANT_TYPE
This error code matches the exceptions specified under immersitech_participant_types.
Definition: immersitech_sound_manager.h:137
immersitech_heading::azimuth_heading
int azimuth_heading
Definition: immersitech_sound_manager.h:55
IMM_ERROR_LIBRARY_ALREADY_INITIALIZED
@ IMM_ERROR_LIBRARY_ALREADY_INITIALIZED
This error code will be generated if you try to initialize the library after you have already initial...
Definition: immersitech_sound_manager.h:138
IMM_CONTROL_HALF_SPAN_ANGLE
@ IMM_CONTROL_HALF_SPAN_ANGLE
If the participant is using speakers, they should set the Half Span Angle from 1 to 90 to match the p...
Definition: immersitech_sound_manager.h:75
imm_get_participant_position
IMMERSITECH_SOUND_MANAGER_API immersitech_error_codes imm_get_participant_position(Immersitech_Conference conference, int participant_ID, immersitech_position *position, immersitech_heading *heading)
Function to retrieve Location of a given conference participant.
IMM_ERROR_INVALID_PARTICIPANT_ID
@ IMM_ERROR_INVALID_PARTICIPANT_ID
This error code indicates that you requested a participant with an ID that doesn't exist.
Definition: immersitech_sound_manager.h:131
IMM_DEVICE_HEADPHONE
@ IMM_DEVICE_HEADPHONE
The listening device is a headphone, including in-ear, on-ear, and over-ear variants.
Definition: immersitech_sound_manager.h:89
IMM_ERROR_LICENSE_MISSING
@ IMM_ERROR_LICENSE_MISSING
This error code indicates the path to your license file is invalid. All audio effects will be bypasse...
Definition: immersitech_sound_manager.h:143