Esempio n. 1
0
bool controller_playback_next_track(void)
{
  if (controller_state & STATE_WHEEL_RIGHT_RELEASED)
  {
    CLEAR_RELEASED_STATE(WHEEL_RIGHT);
    return true;
  }
  return false;
}
Esempio n. 2
0
bool controller_playback_decrease_volume(void)
{
  if (controller_state & STATE_WHEEL_DOWN_RELEASED)
  {
    CLEAR_RELEASED_STATE(WHEEL_DOWN);
    return true;
  }
  return false;
}
Esempio n. 3
0
bool controller_playback_previous_track(void)
{
  if (controller_state & STATE_WHEEL_LEFT_RELEASED)
  {
    CLEAR_RELEASED_STATE(WHEEL_LEFT);
    return true;
  }
  return false;
}
Esempio n. 4
0
// Key right
bool controller_navigation_change_directory(void)
{
  if (controller_state & STATE_WHEEL_RIGHT_RELEASED)
  {
    CLEAR_RELEASED_STATE(WHEEL_RIGHT);
    return true;
  }
  return false;
}
Esempio n. 5
0
// Key left
bool controller_navigation_go_to_parent_directory(void)
{
  if (controller_state & STATE_WHEEL_LEFT_RELEASED)
  {
    CLEAR_RELEASED_STATE(WHEEL_LEFT);
    return true;
  }
  return false;
}
Esempio n. 6
0
// Key DOWN or wheel right
bool controller_navigation_cursor_next(void)
{
  if (controller_state & STATE_WHEEL_DOWN_RELEASED)
  {
    CLEAR_RELEASED_STATE(WHEEL_DOWN);
    return true;
  }
  return controller_wheel_right(1);
}
Esempio n. 7
0
// Key UP or wheel left
bool controller_navigation_cursor_previous(void)
{
  if (controller_state & STATE_WHEEL_UP_RELEASED)
  {
    CLEAR_RELEASED_STATE(WHEEL_UP);
    return true;
  }
  return controller_wheel_left(1);
}
Esempio n. 8
0
bool controller_key_cs4(void)
{
  if (controller_state & STATE_CS4_RELEASED)
  {
    CLEAR_RELEASED_STATE(CS4);
    return true;
  }
  return false;
}
Esempio n. 9
0
/*! \brief Initializes QT60168 resources: GPIO and SPI
 */
static void qt60168_resources_init(int cpu_hz)
{
  static const gpio_map_t QT60168_SPI_GPIO_MAP =
  {
    {QT60168_SPI_SCK_PIN,          QT60168_SPI_SCK_FUNCTION         },  // SPI Clock.
    {QT60168_SPI_MISO_PIN,         QT60168_SPI_MISO_FUNCTION        },  // MISO.
    {QT60168_SPI_MOSI_PIN,         QT60168_SPI_MOSI_FUNCTION        },  // MOSI.
    {QT60168_SPI_NPCS0_PIN,        QT60168_SPI_NPCS0_FUNCTION}  // Chip Select NPCS.
  };

  // SPI options.
  spi_options_t spiOptions =
  {
    .reg          = QT60168_SPI_NCPS,
    .baudrate     = QT60168_SPI_MASTER_SPEED, // Defined in conf_qt60168.h.
    .bits         = QT60168_SPI_BITS,         // Defined in conf_qt60168.h.
    .spck_delay   = 0,
    .trans_delay  = 0,
    .stay_act     = 0,
    .spi_mode     = 3,
    .modfdis      = 1
  };

  // Assign I/Os to SPI.
  gpio_enable_module(QT60168_SPI_GPIO_MAP,
                     sizeof(QT60168_SPI_GPIO_MAP) / sizeof(QT60168_SPI_GPIO_MAP[0]));

  // Initialize as master.
  spi_initMaster(QT60168_SPI, &spiOptions);

  // Set selection mode: variable_ps, pcs_decode, delay.
  spi_selectionMode(QT60168_SPI, 0, 0, 0);

  // Enable SPI.
  spi_enable(QT60168_SPI);

  // Initialize QT60168 with SPI clock Osc0.
  spi_setupChipReg(QT60168_SPI, &spiOptions, cpu_hz);
}

bool controller_key_pressed(void)
{
  if (controller_state == STATE_IDLE)
    return false;
  return true;
}

bool controller_key_released(void)
{
  if (controller_state & STATE_BACK_RELEASED ||
      controller_state & STATE_FCT1_RELEASED ||
      controller_state & STATE_FCT2_RELEASED ||
      controller_state & STATE_FCT3_RELEASED)
    return true;
  return false;
}

bool controller_wheel_pressed(void)
{
  if (controller_state & STATE_WHEEL_LEFT ||
      controller_state & STATE_WHEEL_RIGHT)
    return true;
  return false;
}

bool controller_key_back(void)
{
  if (controller_state & STATE_BACK_RELEASED)
  {
    CLEAR_RELEASED_STATE(BACK);
    return true;
  }
  return false;
}

bool controller_key_reset(void)
{
  if (controller_state & STATE_BACK_LONG_PRESS)
  {
    controller_state &= ~STATE_BACK_LONG_PRESS;
    return true;
  }
  return false;
}

bool controller_key_fct1(void)
{
  if (controller_state & STATE_FCT1_RELEASED)
  {
    CLEAR_RELEASED_STATE(FCT1);
    return true;
  }
  return false;
}

bool controller_key_fct2(void)
{
  if (controller_state & STATE_FCT2_RELEASED)
  {
    CLEAR_RELEASED_STATE(FCT2);
    return true;
  }
  return false;
}

bool controller_key_fct3(void)
{
  if (controller_state & STATE_FCT3_RELEASED)
  {
    CLEAR_RELEASED_STATE(FCT3);
    return true;
  }
  return false;
}

bool controller_key_fct1_pressed(void)
{
  if (controller_state & STATE_FCT1_PRESSED)
    return true;
  return false;
}

bool controller_key_fct2_pressed(void)
{
  if (controller_state & STATE_FCT2_PRESSED)
    return true;
  return false;
}

bool controller_key_fct3_pressed(void)
{
  if (controller_state & STATE_FCT3_PRESSED)
    return true;
  return false;
}

bool controller_wheel_right(int wheel_inc)
{
  if (wheel_step_counter >= wheel_inc && controller_state & STATE_WHEEL_RIGHT)
  {
    wheel_step_counter -= wheel_inc;
    return true;
  }
  return false;
}

bool controller_wheel_left(int wheel_inc)
{
  if (wheel_step_counter >= wheel_inc && controller_state & STATE_WHEEL_LEFT)
  {
    wheel_step_counter -= wheel_inc;
    return true;
  }
  return false;
}

void controller_reset(void)
{
  controller_state = STATE_IDLE;
  wheel_step_counter = 0;
}