Remapping the accelerometer axes when changing the display's orientation so that the wakeup gesture continues to work as expected
This commit is contained in:
parent
34bf170dee
commit
5b0dea4cd7
@ -383,7 +383,37 @@ void watch_peripherals_set_brightness(uint8_t brightness)
|
|||||||
void watch_peripherals_set_orientation(LCDOrientation_e orientation)
|
void watch_peripherals_set_orientation(LCDOrientation_e orientation)
|
||||||
{
|
{
|
||||||
extern LCDConfig_t LCDConfig;
|
extern LCDConfig_t LCDConfig;
|
||||||
|
//Let's remap the accelerometer axes so that the wakeup gesture is still working correctly :)
|
||||||
|
struct bma4_remap remapping = {
|
||||||
|
.x = BMA4_X,
|
||||||
|
.y = BMA4_Y,
|
||||||
|
.z = BMA4_Z
|
||||||
|
};
|
||||||
|
switch(orientation)
|
||||||
|
{
|
||||||
|
case LCD_ORIENTATION_90:
|
||||||
|
remapping.x = BMA4_NEG_Y;
|
||||||
|
remapping.y = BMA4_X;
|
||||||
|
break;
|
||||||
|
case LCD_ORIENTATION_180:
|
||||||
|
remapping.x = BMA4_NEG_X;
|
||||||
|
remapping.y = BMA4_NEG_Y;
|
||||||
|
break;
|
||||||
|
case LCD_ORIENTATION_270:
|
||||||
|
remapping.x = BMA4_Y;
|
||||||
|
remapping.y = BMA4_NEG_X;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
remapping.x = BMA4_X;
|
||||||
|
remapping.y = BMA4_Y;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//If the call to the API is successful, we rotate the display's orientation
|
||||||
|
if(bma456w_set_remap_axes(&remapping, &_bma456.bma) == BMA4_OK)
|
||||||
|
{
|
||||||
lcd_orientation(&LCDConfig, orientation);
|
lcd_orientation(&LCDConfig, orientation);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool watch_peripherals_wakeup_source_is_user(void)
|
bool watch_peripherals_wakeup_source_is_user(void)
|
||||||
|
Loading…
Reference in New Issue
Block a user