请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC2564CSTBTBLESW 尊敬的 RogelioD:
我正在使用您在另一个线程中提供的最新堆栈
("4111.CC2564CSTBTBLESW-v5.1.1-windows-x64-installer.exe")
我能够成功编译和加载固件。
HCI 日志仍将其显示为版本1.4。
我们正在使用 AUD API。
当我尝试降级到1.3版时、它可以正常工作。 但是、当我为版本1.5提供枚举时、我无法获得版本1.5。
我在这里连接 AUD 模块初始化。
int Initialize_Sink(unsigned int id)
{
int ret_val;
AUD_Initialization_Info_t InitializationInfo;
AUD_Stream_Initialization_Info_t InitializationInfoSNK;
AUD_Remote_Control_Initialization_Info_t InitializationInfoAVR;
AUD_Remote_Control_Role_Info_t RemoteControlRoleInfo;
AUD_Remote_Control_Role_Info_t TargetRoleInfo;
BluetoothStackID=id;
AbsoluteVolumeEnabled=1;
//VolumeChangedEventTransactionID=1;
FWFlags.MusicStartSyncCount = 0;
FWFlags.PrimaryPhone.AVRCPCommandSupported = TRUE;
osTimerDef(ABS_VOLUME_PRESS_MAX, absVolume_gradMax);
abs_Max_volumeTimerId=osTimerCreate(osTimer(ABS_VOLUME_PRESS_MAX), osTimerPeriodic, (void*) 0);
osTimerDef(ABS_VOLUME_PRESS_MIN, absVolume_gradMin);
abs_Min_volumeTimerId=osTimerCreate(osTimer(ABS_VOLUME_PRESS_MIN), osTimerPeriodic, (void*) 0);
/* First, check to make sure that a valid Bluetooth Stack ID exists. */
if(BluetoothStackID)
{
/* Next, check to make sure that the Audio Manager has not already*/
/* been initialized. */
if(!Initialized)
{
VolumeChangedEventTransactionID = -1;
AVRCP_VerificationTID = osTimerCreate(osTimer(AVRCP_VERIFICATION), osTimerOnce , (void*) 0);
CheckHFP_Connection_TID= osTimerCreate(osTimer(CHECKHFP_CONNECTION), osTimerOnce , (void*) 0);
SyncMusic_TID = osTimerCreate(osTimer(SYNC_MUSICSTATE), osTimerOnce , (void*) 0);
AVRCP_PreviousCommand.Command = 0;
AVRCP_PreviousCommand.MessageType = amtUnknown;
/* Audio has not been initialized, now let's attempt to */
/* initialize it. */
BTPS_MemInitialize(&InitializationInfo, 0, sizeof(AUD_Initialization_Info_t));
BTPS_MemInitialize(&InitializationInfoSNK, 0, sizeof(AUD_Stream_Initialization_Info_t));
BTPS_MemInitialize(&InitializationInfoAVR, 0, sizeof(AUD_Remote_Control_Initialization_Info_t));
BTPS_MemInitialize(&RemoteControlRoleInfo, 0, sizeof(AUD_Remote_Control_Role_Info_t));
InitializationInfo.SNKInitializationInfo = &InitializationInfoSNK;
InitializationInfo.RemoteControlInitializationInfo = &InitializationInfoAVR;
InitializationInfoSNK.EndpointSDPDescription = (char *)SinkDescription;
InitializationInfoSNK.NumberConcurrentStreams = 1;
InitializationInfoSNK.NumberSupportedStreamFormats = NUM_SNK_SUPPORTED_FORMATS;
BTPS_MemCopy(InitializationInfoSNK.StreamFormat, AudioSNKSupportedFormats, sizeof(AudioSNKSupportedFormats));
InitializationInfoAVR.ControllerRoleInfo = &RemoteControlRoleInfo;
InitializationInfoAVR.TargetRoleInfo = &TargetRoleInfo;
InitializationInfoAVR.SupportedVersion = apvVersion1_5; //given 3 which should be corresponding to AVRCP_1.5
RemoteControlRoleInfo.ProviderName = (char *)ProviderName;
RemoteControlRoleInfo.ServiceName = (char *)ControllerDescription;
RemoteControlRoleInfo.SupportedFeaturesFlags = SDP_AVRCP_SUPPORTED_FEATURES_CONTROLLER_CATEGORY_2;
TargetRoleInfo.ProviderName = (char *)ProviderName;
TargetRoleInfo.ServiceName = (char *)ControllerDescription;
TargetRoleInfo.SupportedFeaturesFlags = SDP_AVRCP_SUPPORTED_FEATURES_CONTROLLER_CATEGORY_2;
/* Everything has been initialized, now attemp to initialize */
/* the Audio Manager. */
ret_val = AUD_Initialize(BluetoothStackID, &InitializationInfo, AUD_Event_Callback, 0);
if(!ret_val){
// DisplayFunctionSuccess("AUD_Initialize() Sink");
}
else
DisplayFunctionError("AUD_Initialize()", ret_val);
}
else
ret_val = -1;
}
else
ret_val = -1;
return(ret_val);
}