view src/cs/drivers/drv_app/buzzer/vibrator.c @ 301:4bb5772a05a3

AT%SPVER: new command for setting custom speech version lists The speech version list in the Bearer Capability IE tells the network which speech codecs are supported by the MS, and in which order of preference. The standard behaviour is to list all codecs that are supported by the hw+fw platform, and the standard preference order is newer over older, FR over HR. But sometimes it is desirable (for network testing) to artificially restrict which codecs the test MS will declare as supported, and/or to list them in some peculiar non-standard order of preference. Add a new private AT command, AT%SPVER, allowing the user to set and clear custom speech version lists for the Bearer Capability IE composer in CC.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 21 May 2023 21:43:10 +0000
parents 4d203ef0eb4b
children
line wrap: on
line source

/*
 * This C module is a FreeCalypso addition: it implements hardware vibrator
 * control as appropriate for different hw targets.
 */

#include "main/sys_types.h"
#include "memif/mem.h"
#include "armio/armio.h"
#include "buzzer.h"
#include "vibrator.h"
#include "abb/abb.h"

#include "board.cfg"
#include "fc-target.h"

/* flag tells L1 to suppress deep sleep */
SYS_BOOL HW_vibrator_is_on;

void HW_vibrator_on(SYS_UWORD8 level)
{
    HW_vibrator_is_on = 1;
    #ifdef CONFIG_TARGET_PIRELLI
	/* vibrator is controlled via BU output */
	BZ_Tone(0);
	BZ_Volume(level >> 2);
	BZ_Enable();
    #elif defined(CONFIG_TARGET_COMPAL)
	/* vibrator is controlled via Iota AUX DAC */
	ABB_Write_Register_on_page(PAGE0, TOGBR1, 0x20);
	ABB_Write_Register_on_page(PAGE0, AUXDAC, (level << 2) | 3);
    #endif
}

void HW_vibrator_off(void)
{
    #ifdef CONFIG_TARGET_PIRELLI
	BZ_Disable();
    #elif defined(CONFIG_TARGET_COMPAL)
	ABB_Write_Register_on_page(PAGE0, AUXDAC, 0);
	ABB_Write_Register_on_page(PAGE0, TOGBR1, 0x10);
    #endif
    HW_vibrator_is_on = 0;
}