+ if (ao_config.pad_orientation != r) {
+#if ALLOW_SIX_AXIS_PAD
+ accel_t zero;
+ switch (r >> 1) {
+ case 0:
+ default:
+ zero = ao_config.accel_zero_along;
+ break;
+ case 1:
+ zero = ao_config.accel_zero_across;
+ break;
+ case 2:
+ zero = ao_config.accel_zero_through;
+ break;
+ }
+ accel_t plus2 = ao_config.accel_minus_g - ao_config.accel_plus_g;
+ if (plus2 < 0)
+ plus2 = -plus2;
+ accel_t plus1 = (plus2 >> 1);
+ accel_t minus1 = plus2 - plus1;
+ if (r & 1) {
+ ao_config.accel_plus_g = ao_data_accel_invert(zero + minus1);
+ ao_config.accel_minus_g = ao_data_accel_invert(zero - plus1);
+ } else {
+ ao_config.accel_plus_g = zero - plus1;
+ ao_config.accel_minus_g = zero + minus1;
+ }
+#else
+ accel_t t;