⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 headset_configmanager.c

📁 BlueLab 3.5.2 单声道耳机源码
💻 C
📖 第 1 页 / 共 2 页
字号:
    ConfigRetrieve(PSKEY_LINK_LOSS_NUM_RETRIES , &theHeadset->LinkLossNumRetries , sizeof(uint16) ) ;       CONF_DEBUG(("CONF: NumLL Retries [%x]\n", theHeadset->LinkLossNumRetries));}/****************************************************************************NAME   configManagerPIOBlockDESCRIPTION  Read the system PIO block and configure accordingly RETURNS  void*/ static void configManagerPIOBlock ( hsTaskData * theHeadset ) {    /* Initialise the memory */    memset(&theHeadset->PIO , 0 , sizeof ( PIO_block));	/* Read output PIO assignments */    ConfigRetrieve(PSKEY_PIO_BLOCK, &theHeadset->PIO, sizeof(PIO_block));  	    CONF_DEBUG(("Co [%x][%x]\n" , theHeadset->PIO.PowerOnPIOEnabled , theHeadset->PIO.PowerOnPIO )) ;    CONF_DEBUG(("Co [%x][%x]\n" , theHeadset->PIO.IncomingRingPIOEnabled , theHeadset->PIO.IncomingRingPIO )) ;    CONF_DEBUG(("Co [%x][%x]\n" , theHeadset->PIO.OutgoingRingPIOEnabled , theHeadset->PIO.OutgoingRingPIO )) ;	/* Read input PIO assignments */	ConfigRetrieve(PSKEY_INPUT_PIO_BLOCK, &theHeadset->input_PIO, sizeof(input_pio_config_type));	}/****************************************************************************NAME   configManagerTimeoutsDESCRIPTION  Read and configure the automatic switch off time if the range allows    Also now handles the power on timeout RETURNS  void*/ static void configManagerTimeouts ( hsTaskData* theHeadset){	if(!ConfigRetrieve(PSKEY_AUTOMATIC_SWITCH_OFF, &theHeadset->AutoSwitchOffTimeSecs, sizeof(uint16)))		theHeadset->AutoSwitchOffTimeSecs = 0;    CONF_DEBUG(("Co : AOff ![%d]\n" , theHeadset->AutoSwitchOffTimeSecs )) ;	if(!ConfigRetrieve(PSKEY_POWER_ON_TIMEOUT, &theHeadset->AutoPowerOnTimeoutSecs, sizeof(uint16)))		theHeadset->AutoPowerOnTimeoutSecs = 0;            CONF_DEBUG(("Co : APOnTimeout ![%d]\n" , theHeadset->AutoPowerOnTimeoutSecs )) ;        if (!ConfigRetrieve(PSKEY_NETWORK_SERVICE_IND_TIME  , &theHeadset->NetworkServiceIndicatorRepeatTimeSecs , sizeof(uint16) ) )        theHeadset->NetworkServiceIndicatorRepeatTimeSecs = 0 ;             CONF_DEBUG(("CO : NETWORKIndTimeout [%d]\n", theHeadset->NetworkServiceIndicatorRepeatTimeSecs))     ;        if (!ConfigRetrieve(PSKEY_POWER_OFF_DISABLED_TIME , &theHeadset->DisablePowerOffAfterPowerOnTimeSecs , sizeof(uint16) ) )         theHeadset->DisablePowerOffAfterPowerOnTimeSecs = 0 ;            CONF_DEBUG(("CO: PowerOffDisabledTimeout [%d]\n" , theHeadset->DisablePowerOffAfterPowerOnTimeSecs)) ;}/****************************************************************************NAME   	configManagerButtonDurationsDESCRIPTION  	Read the button configuration from persistent store and configure  	the button durations RETURNS  	void*/ static void configManagerButtonDurations(hsTaskData* theHeadset){ 	button_config_type  buttons;     	if(ConfigRetrieve(PSKEY_BUTTON_CONFIG, &buttons, sizeof(button_config_type))) 	{  		buttonManagerConfigDurations (buttons.long_press_time,           							  buttons.very_long_press_time,           							  buttons.double_press_time,           							  buttons.repeat_time);  	}                  }    /****************************************************************************NAME  	configManagerPowerDESCRIPTION 	Read the Power Manager configuration RETURNS 	void*/ static void configManagerPower(hsTaskData* theHeadset){ 	power_config_type config;  	memset(&config, 0, sizeof(power_config_type));  	/* 1. Determine battery chemistry from features block, assumes LiON by default */ 	if(theHeadset->features.nimh_charger_en)  		config.chemistry = nimh;  	/* 2. Read in the battery monitoring configuration */  	ConfigRetrieve(PSKEY_BATTERY_CONFIG, &config.battery, sizeof(battery_config_type));   	/* 3. Read in the NiMH battery charging configuration if enabled */ 	if(config.chemistry == nimh) 	{    	ConfigRetrieve(PSKEY_NIMH_CHARGER_CONFIG, &config.charger, sizeof(charger_config_type));  	}    	/* 3. Setup the power manager */  	powerManagerConfig(theHeadset->power, &config);}/****************************************************************************NAME   	configManagerRadioDESCRIPTION  	Read the Radio configuration parameters RETURNS  	void*/ static void configManagerRadio(hsTaskData* theHeadset){   	if(!ConfigRetrieve(PSKEY_RADIO_CONFIG, &theHeadset->radio, sizeof(radio_config_type)))  	{    	/* Assume HCI defaults */    	theHeadset->radio.page_scan_interval = HCI_PAGESCAN_INTERVAL_DEFAULT;    	theHeadset->radio.page_scan_window = HCI_PAGESCAN_WINDOW_DEFAULT;    	theHeadset->radio.inquiry_scan_interval = HCI_INQUIRYSCAN_INTERVAL_DEFAULT;    	theHeadset->radio.inquiry_scan_interval = HCI_INQUIRYSCAN_WINDOW_DEFAULT;  	}}/****************************************************************************NAME   	configManagerSoundDESCRIPTION  	Read the Volume Mappings and set them up RETURNS  	void*/ static void configManagerVolume (hsTaskData * theHeadset ){    uint16 lSize = (SOM_NUM_VOL_SETTINGS * sizeof(vol_config_type) );        /* The volume configuaration */    vol_config_type lVolConfig [ SOM_NUM_VOL_SETTINGS ];    uint16 lTemp [10] ;     /* Set to known values */    memset(lVolConfig, 0, lSize);    if(ConfigRetrieve(PSKEY_SPEAKER_GAIN_MAPPING, lVolConfig, lSize))  	{    	uint16 lProfileVol;     	memcpy ( lTemp , lVolConfig , 10 ) ;            CONF_DEBUG (("CO: TEMP[%x][%x][%x][%x] [%x][%x][%x][%x]\n" , lTemp[0] ,lTemp[1],lTemp[2],lTemp[3],lTemp[4],lTemp[5],lTemp[6],lTemp[7])) ;     	/* Now we have the event configuration, map required events to system events */    	for(lProfileVol = 0; lProfileVol < SOM_NUM_VOL_SETTINGS; lProfileVol++)        {            CONF_DEBUG(("Co : AddVolCfg[%d] [%d][%d]\n", lProfileVol , lVolConfig[lProfileVol].IncVol , lVolConfig[lProfileVol].DecVol)) ;                                    /* For now*/            soundManagerConfigureVolumeSettings ( theHeadset ,                                                  lProfileVol ,                                                   lVolConfig[lProfileVol].IncVol,                                                   lVolConfig[lProfileVol].DecVol,                                                  lVolConfig[lProfileVol].Mic   ,                                                   (HeadsetTone_t) lVolConfig[lProfileVol].Tone ,                                                  lVolConfig[lProfileVol].VolGain ,                                                  lVolConfig[lProfileVol].MicGain) ;                                                              CONF_DEBUG(("CONF: [%d][%d]\n" ,    lVolConfig[lProfileVol].VolGain ,                                                  lVolConfig[lProfileVol].MicGain)) ;        }    }    else    {        CONF_DEBUG(("Co: !Vol\n")) ;    }    {        uint16 lTemp ;        	     if(!ConfigRetrieve(PSKEY_MUTE_REMIND_TIME, &lTemp, sizeof(uint16)))         {        		     theHeadset->theSoundTask.gSMMuteRemindTimeSec = DEFAULT_VOLUME_MUTE_REMINDER_TIME_SEC;         }         else         {            theHeadset->theSoundTask.gSMMuteRemindTimeSec = lTemp ;         }    }    }/****************************************************************************NAME   	configManagerGetMicBiasPioDESCRIPTION  	Retrieves the MicBias PIO RETURNS  	void*/ uint16 configManagerGetMicBiasPio ( void ){    uint16 lResult = 0;        PsFullRetrieve(441, &lResult, sizeof(uint16));    CONF_DEBUG(("Co :MicPio[%x]\n", lResult));         return lResult ;}/****************************************************************************NAME   	configManagerResetDESCRIPTION    Resets the Paired Device List - Reboots if PSKEY says to do so RETURNS  	void*/ void configManagerReset ( hsTaskData * pApp ) {    CONF_DEBUG(("CO: Reset\n")) ;            /* Reset the Default AG */       (void )PsStore ( PSKEY_DEFAULT_AG , 0 , 0 ) ;        /* Reset the Last AG */    (void)PsStore ( PSKEY_LAST_USED_AG , 0 , 0 ) ;        /* Delete the Connecction Libs Paired Device List */        ConnectionSmDeleteAllAuthDevices(SOM_VOLUME_PSKEY_BASE);/*        ConnectionSmDeleteAllAuthDevices();*/}                /****************************************************************************NAME   	configManagerEventToneDESCRIPTION  	Configure an event tone only if one is defined RETURNS  	void*/ static void configManagerEventTones ( hsTaskData* theHeadset  ){     uint16 no_tones = 0;   	/* First read the number of events configured */  	if(ConfigRetrieve(PSKEY_NO_TONES, &no_tones, sizeof(uint16)))  	{        /* Allocate enough memory to hold event configuration */    	tone_config_type * config = (tone_config_type *) mallocPanic(no_tones * sizeof(tone_config_type));      	/* Now read in tones configuration */    	if(ConfigRetrieve(PSKEY_TONES, config, no_tones * sizeof(tone_config_type)))    	{      		uint16 n;          		/* Now we have the event configuration, map required events to system events */        	for(n = 0; n < no_tones; n++)        	{                CONF_DEBUG(("CO: Ev[%x]Tone[%x] \n" , config[n].event, config[n].tone )) ;                soundManagerConfigureEventTone ( theHeadset , (config[n].event + EVENTS_EVENT_BASE), config[n].tone  ) ;            }           }                        }            }/****************************************************************************NAME  	configManagerSupportedFeaturesDESCRIPTION    Gets the Supported features set from PS - exposed as this needs to be done prior to a HFPInit()  RETURNS 	void*/ uint16 configManagerSupportedFeatures(hsTaskData * theHeadset) {	    	if(!ConfigRetrieve(PSKEY_HFP_SUPPORTED_FEATURES, &theHeadset->supp_features_local, sizeof(uint16)))    {             	theHeadset->supp_features_local = (HFP_NREC_FUNCTION        |             		     				   HFP_THREE_WAY_CALLING    | 				                   		   HFP_CLI_PRESENTATION     | 			             				   HFP_VOICE_RECOGNITION    | 				              			   HFP_REMOTE_VOL_CONTROL   |                                           HFP_ENHANCED_CALL_STATUS |                                           HFP_ENHANCED_CALL_CONTROL    );    }    CONF_DEBUG(("CONF: SupportedFeatures[%x]\n", theHeadset->supp_features_local )) ;    	return theHeadset->supp_features_local  ;}/****************************************************************************NAME  	configManagerHFP_1_5_SupportedFeaturesDESCRIPTION    Gets the HFP 1.5 Supported features set from PS RETURNS 	void*/void configManagerHFP_1_5_SupportedFeatures(hsTaskData* theHeadset){           ConfigRetrieve( PSKEY_HFP_1_5_SUPPORTED_FEATURES , &theHeadset->HFP_1_5_supp_features , sizeof( HFP_1_5_features_type ) ) ;        if ( ! theHeadset->HFP_1_5_supp_features.HFP_1_5_Is_Enabled )    {        /*then set the defaults*/        theHeadset->HFP_1_5_supp_features.HFP_1_5_Is_Enabled = FALSE ;        theHeadset->HFP_1_5_supp_features.supportedSyncPacketTypes = (sync_hv1 | sync_hv2 | sync_hv3) ;            }    else    {           /*make sure the mask we have read in is within range*/        uint16 lAllPktTypes = ( sync_hv1  | sync_hv2  |  sync_hv3 |                                 sync_ev3  | sync_ev4  |  sync_ev5 |                                 sync_2ev3 | sync_3ev3 | sync_2ev5 | sync_3ev5 ) ;                                         uint16 lPSPktTypes = theHeadset->HFP_1_5_supp_features.supportedSyncPacketTypes ;                CONF_DEBUG(("CONF: Feat[%x]&[%x] = [%x]\n" , lAllPktTypes , lPSPktTypes , (lAllPktTypes & lPSPktTypes) )) ;        theHeadset->HFP_1_5_supp_features.supportedSyncPacketTypes =  (lAllPktTypes & lPSPktTypes) ;    }}/****************************************************************************NAME  	configManagerWriteVolumeOrientationDESCRIPTION    Set the Volume Orientation Inverted PSKEY to Inverted (true ) or not (false) RETURNS 	void*/ static void configManagerReadVolumeOrientation ( hsTaskData * theHeadset ) {    uint16 lTemp = 0 ;            /*read in the volume orientation*/    ConfigRetrieve( PSKEY_VOLUME_ORIENTATION , &lTemp , sizeof( uint16 ) ) ;      theHeadset->VolumeOrientationIsInverted = FALSE ;        if( lTemp )    {        theHeadset->VolumeOrientationIsInverted = TRUE ;    }    CONF_DEBUG(("CONF : Rd Vol Inverted [%c]\n", theHeadset->VolumeOrientationIsInverted ? 'T':'F' )) ;}/****************************************************************************NAME  	configManagerWriteVolumeOrientationDESCRIPTION    Set the Volume Orientation Inverted PSKEY to Inverted (true ) or not (false) RETURNS 	void*/ void configManagerWriteVolumeOrientation( hsTaskData * theHeadset , bool pInverted ){    uint16 lTemp = (uint16) pInverted ;    CONF_DEBUG(("CONF : PS Write Vol Inverted[%c]\n" , lTemp ? 'T':'F'));        (void) PsStore(PSKEY_VOLUME_ORIENTATION, &lTemp, sizeof(uint16)); }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -