/** * @file * @author chipsea * @brief * @version 0.1 * @date 2020-11-30 * @copyright Copyright (c) 2020, CHIPSEA Co., Ltd. * @note */ /************************************************************************************************** Filename: AudioGATTprofile.h Revised: Revision: Description: This file contains the Simple GATT profile definitions and prototypes. **************************************************************************************************/ #ifndef AUDIOGATTPROFILE_H #define AUDIOGATTPROFILE_H #ifdef __cplusplus extern "C" { #endif /********************************************************************* * INCLUDES */ /********************************************************************* * CONSTANTS */ // Profile Parameters #define AUDIOPROFILE_CHAR1 0 // RW uint8 - Profile Characteristic 1 value #define AUDIOPROFILE_CHAR2 1 // RW uint8 - Profile Characteristic 2 value //product id #define PRODUCT_ID 0x0046 // AUDIO Profile Service UUID #define AUDIOPROFILE_SERV_UUID 0xB000 // Key Pressed UUID #define AUDIOPROFILE_CHAR1_UUID 0xB001 #define AUDIOPROFILE_CHAR2_UUID 0xB002 // AUDIO Keys Profile Services bit fields #define AUDIOPROFILE_SERVICE 0x00000001 #define AUDIOPROFILE_CHAR1_LEN 20 #define AUDIOPROFILE_CHAR2_LEN 20 // Length of Characteristic 5 in bytes #define AUDIOPROFILE_CHAR5_LEN 5 /********************************************************************* * TYPEDEFS */ /********************************************************************* * MACROS */ /********************************************************************* * Profile Callbacks */ // Callback when a characteristic value has changed typedef void (*AudioProfileChange_t)( uint8 paramID ); typedef struct { AudioProfileChange_t pfnAudioProfileChange; // Called when characteristic value changes } AudioProfileCBs_t; /********************************************************************* * API FUNCTIONS */ /* * AudioProfile_AddService- Initializes the Audio GATT Profile service by registering * GATT attributes with the GATT server. * * @param services - services to add. This is a bit map and can * contain more than one service. */ extern bStatus_t AudioProfile_AddService( uint32 services ); /* * AudioProfile_RegisterAppCBs - Registers the application callback function. * Only call this function once. * * appCallbacks - pointer to application callbacks. */ extern bStatus_t AudioProfile_RegisterAppCBs( AudioProfileCBs_t *appCallbacks ); /* * AudioProfile_SetParameter - Set a Audio GATT Profile parameter. * * param - Profile parameter ID * len - length of data to right * value - pointer to data to write. This is dependent on * the parameter ID and WILL be cast to the appropriate * data type (example: data type of uint16 will be cast to * uint16 pointer). */ extern bStatus_t AudioProfile_SetParameter( uint8 param, uint8 len, void *value ); /* * AudioProfile_GetParameter - Get a Audio GATT Profile parameter. * * param - Profile parameter ID * value - pointer to data to write. This is dependent on * the parameter ID and WILL be cast to the appropriate * data type (example: data type of uint16 will be cast to * uint16 pointer). */ extern bStatus_t AudioProfile_GetParameter( uint8 param, void *value ); extern bStatus_t AudioProfile_Notify( uint8 param, uint8 len, void *value ); extern bStatus_t AudioProfile_Read( uint16 connHandle, gattAttribute_t *pAttr, uint8 *pValue, uint16 *pLen, uint16 offset, uint8 maxLen ); extern bStatus_t AudioProfile_Write( uint16 connHandle, gattAttribute_t *pAttr, uint8 *pValue, uint8 len, uint16 offset ); /********************************************************************* *********************************************************************/ #ifdef __cplusplus } #endif #endif /* SIMPLEGATTPROFILE_H */