Audio Input Control Service Server API

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

typedef struct {
    btstack_linked_item_t item;

    hci_con_handle_t con_handle;

    // service
    uint16_t start_handle;
    uint16_t end_handle;
    uint8_t index;

    aics_info_t * info;

    att_service_handler_t    service_handler;
    btstack_context_callback_registration_t  scheduled_tasks_callback;
    uint8_t scheduled_tasks;

    // ORG_BLUETOOTH_CHARACTERISTIC_AUDIO_INPUT_STATE
    uint16_t audio_input_state_value_handle;
    uint8_t  audio_input_state_change_counter;

    uint16_t audio_input_state_client_configuration_handle;
    uint16_t audio_input_state_client_configuration;
    btstack_context_callback_registration_t audio_input_state_callback;

    // ORG_BLUETOOTH_CHARACTERISTIC_GAIN_SETTINGS_ATTRIBUTE
    uint16_t gain_settings_properties_value_handle;

    // ORG_BLUETOOTH_CHARACTERISTIC_AUDIO_INPUT_TYPE
    uint16_t audio_input_type_value_handle;

    // ORG_BLUETOOTH_CHARACTERISTIC_AUDIO_INPUT_STATUS
    uint16_t audio_input_status_value_handle;
    aics_audio_input_status_t audio_input_status;

    uint16_t audio_input_status_client_configuration_handle;
    uint16_t audio_input_status_client_configuration;
    btstack_context_callback_registration_t audio_input_status_callback;

    // ORG_BLUETOOTH_CHARACTERISTIC_AUDIO_INPUT_CONTROL_POINT
    uint16_t audio_input_control_value_handle;

    // ORG_BLUETOOTH_CHARACTERISTIC_AUDIO_INPUT_DESCRIPTION
    uint16_t audio_input_description_value_handle;
    uint8_t  audio_input_description_len;

    uint16_t audio_input_description_client_configuration_handle;
    uint16_t audio_input_description_client_configuration;
    btstack_context_callback_registration_t audio_input_description_callback;

} audio_input_control_service_server_t;


/**
 * @brief Init Audio Input Control Service Server with ATT DB
 * @param aics service storage
 */
void audio_input_control_service_server_init(audio_input_control_service_server_t * aics);

/**
 * @brief Set audio input state of the AICS service. If successful, all registered clients will be notified of change.
 * @param aics service
 * @param audio_input_state see aics_audio_input_state_t
 * @return status ERROR_CODE_SUCCESS if successful, otherwise ERROR_CODE_INVALID_HCI_COMMAND_PARAMETERS if gain setting is out of a valid range [gain_settings_minimum, gain_settings_maximum] .
 */
uint8_t audio_input_control_service_server_set_audio_input_state(audio_input_control_service_server_t * aics, aics_audio_input_state_t * audio_input_state);

/**
 * @brief Set audio input status of the AICS service. If successful, all registered clients will be notified of change.
 * @param aics service
 * @param audio_input_status see aics_audio_input_status_t
 */
void audio_input_control_service_server_set_audio_input_status(audio_input_control_service_server_t * aics, aics_audio_input_status_t audio_input_status);

/**
 * @brief Set audio input description of the AICS service. If successful, all registered clients will be notified of change.
 * @param aics service
 * @param audio_input_desc
 */
void audio_input_control_service_server_set_audio_input_description(audio_input_control_service_server_t * aics, const char * audio_input_desc);