Volume Control Service Server API

src/le-audio/gatt-service/volume_control_service_server.h

/**
 * @brief Init Volume Control Service Server with ATT DB
 * @param volume_setting        range [0,255]
 * @param mute                  see vcs_mute_t
 * @param volume_change_step
 * @param aics_info_num
 * @param aics_info
 * @param vocs_info_num
 * @param vocs_info
 */
void volume_control_service_server_init(uint8_t volume_setting, vcs_mute_t mute,
    uint8_t aics_info_num, aics_info_t * aics_info, 
    uint8_t vocs_info_num, vocs_info_t * vocs_info);

/**
 * @brief Register callback to receive updates of volume state and volume flags GATTSERVICE_SUBEVENT_VCS_VOLUME_STATE and GATTSERVICE_SUBEVENT_VCS_VOLUME_FLAGS events respectively.
 * @param callback
 */
void volume_control_service_server_register_packet_handler(btstack_packet_handler_t callback);


/**
 * @brief Set volume state.
 * @param volume_setting        range [0,255]
 * @param mute                  see vcs_mute_t
 */
void volume_control_service_server_set_volume_state(uint8_t volume_setting, vcs_mute_t mute);

/**
 * @brief Set volume change step.
 * @param volume_change_step    
 */
void volume_control_service_server_set_volume_change_step(uint8_t volume_change_step);

/**
 * @brief Set mute and gain mode, as well as gain setting of the AICS service identified by aics_index.
 * @param aics_index
 * @param audio_input_state see aics_audio_input_state_t in audio_input_control_service_server.h
 * @return status ERROR_CODE_SUCCESS if successful, otherwise ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER if aics_index is out of range, or ERROR_CODE_INVALID_HCI_COMMAND_PARAMETERS if gain setting is out of valid range.
 */
uint8_t volume_control_service_server_set_audio_input_state_for_aics(uint8_t aics_index, aics_audio_input_state_t * audio_input_state);

/**
 * @brief Set audio input description of the AICS service identified by aics_index.
 * @param aics_index
 * @param audio_input_state see aics_audio_input_state_t in audio_input_control_service_server.h
 * @return status ERROR_CODE_SUCCESS if successful, otherwise ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER if aics_index is out of range.
 */
uint8_t volume_control_service_server_set_audio_input_description_for_aics(uint8_t aics_index, const char * audio_input_desc);

/**
 * @brief Set audio input status of the AICS service identified by aics_index.
 * @param aics_index
 * @param audio_input_status see aics_audio_input_status_t in audio_input_control_service_server.h
 * @return status ERROR_CODE_SUCCESS if successful, otherwise ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER if aics_index is out of range.
 */
uint8_t volume_control_service_server_set_audio_input_status_for_aics(uint8_t aics_index, aics_audio_input_status_t audio_input_status);


/**
 * @brief Set volume offset location of the VOCS service. If successful, all registered clients will be notified of change.
 * @param vocs service
 * @param volume_offset
 * @return ERROR_CODE_SUCCESS if successful, otherwise ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER if aics_index is out of range.
 */
uint8_t volume_control_service_server_set_volume_offset_for_vocs(uint8_t vocs_index, int16_t volume_offset);

/**
 * @brief Set audio location of the VOCS service. If successful, all registered clients will be notified of change.
 * @param vocs service
 * @param audio_location see VOCS_AUDIO_LOCATION_* defines in volume_offset_control_service_server.h
 * @return ERROR_CODE_SUCCESS if successful, otherwise ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER if aics_index is out of range.
 */
uint8_t volume_control_service_server_set_audio_location_for_vocs(uint8_t vocs_index, uint32_t audio_location);

/**
 * @brief Set audio output description of the VOCS service. If successful, all registered clients will be notified of change.
 * @param vocs service
 * @param audio_output_desc
 * @return ERROR_CODE_SUCCESS if successful, otherwise ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER if aics_index is out of range.
 */
uint8_t volume_control_service_server_set_audio_output_description_for_vocs(uint8_t vocs_index, const char * audio_output_desc);