Beispiel #1
0
RADIO_RX_STATUS Radio_Receive(radiopacket_t* buffer)
{
	uint8_t len = 32;
	uint8_t status;
	uint8_t pipe_number;
	uint8_t doMove = 1;
	RADIO_RX_STATUS result;

	transmit_lock = 0;

	RADIO_CE_LOW();

	status = _get_status();
    pipe_number =  (status & 0xE) >> 1;

    if (pipe_number == RADIO_PIPE_EMPTY) {
    	result = RADIO_RX_FIFO_EMPTY;
    	doMove = 0;
    }

    if (rx_pipe_widths[pipe_number] > len) {
    	// the buffer isn't big enough, so don't copy the data.
    	result = RADIO_RX_INVALID_ARGS;
    	doMove = 0;
    }

    if (doMove) {
    	// Move the data payload into the local
    	send_instruction(R_RX_PAYLOAD, (uint8_t*)buffer, (uint8_t*)buffer, rx_pipe_widths[pipe_number]);

    	status = _get_status();
    	pipe_number =  (status & 0xE) >> 1;

    	if (pipe_number != RADIO_PIPE_EMPTY)
    		result = RADIO_RX_MORE_PACKETS;
    	else
    		result = RADIO_RX_SUCCESS;
    }

    RADIO_CE_HIGH();
    transmit_lock = 0;

    return result;
}
static gboolean
_get_played_time (int *played_time)
{
    ol_assert_ret (played_time != NULL, FALSE);
    if (!_ensure_connection ())
        return FALSE;
    int muine_time = 0;
    if (!ol_dbus_get_int (proxy, GET_POSITION, &muine_time))
        return FALSE;
    muine_time *= 1000;
    _ensure_elapse (muine_time);
    enum OlPlayerStatus status = _get_status ();
    if (status == OL_PLAYER_PLAYING)
        *played_time = ol_elapse_emulator_get_real_ms (elapse_emulator, muine_time);
    else if (status == OL_PLAYER_PAUSED)
        *played_time = ol_elapse_emulator_get_last_ms (elapse_emulator, muine_time);
    else
        *played_time = 0;
    return TRUE;
}
static gboolean
_get_played_time (int *played_time)
{
  ol_assert_ret (played_time != NULL, FALSE);
  if (!_ensure_dbus ())
    return FALSE;
  int juk_time;
  if (!ol_dbus_get_int (proxy, CURRENT_TIME, &juk_time))
    return FALSE;
  juk_time *= 1000;
  _ensure_elapse (juk_time);
  enum OlPlayerStatus status = _get_status ();
  if (status == OL_PLAYER_PLAYING)
    *played_time = ol_elapse_emulator_get_real_ms (elapse_emulator, juk_time);
  else if (status == OL_PLAYER_PAUSED)
    *played_time = ol_elapse_emulator_get_last_ms (elapse_emulator, juk_time);
  else
    *played_time = 0;
  return TRUE;
}
Beispiel #4
0
int d2save_get_expansion(d2save_t d2s, int *val)
{
    return _get_status(d2s, STATUSBIT_EXPANSION, val);
}
Beispiel #5
0
int d2save_get_hardcore(d2save_t d2s, int *val)
{
    return _get_status(d2s, STATUSBIT_HARDCORE, val);
}
Beispiel #6
0
int d2save_get_died(d2save_t d2s, int *val)
{
    return _get_status(d2s, STATUSBIT_DIED, val);
}