Exemple #1
0
static int dspio_get_output_sample(struct dspio_state *state, void *ptr,
	int is16bit)
{
    if (rng_count(&state->fifo_out)) {
	if (is16bit) {
	    rng_get(&state->fifo_out, ptr);
	} else {
	    Bit16u tmp;
	    rng_get(&state->fifo_out, &tmp);
	    *(Bit8u *) ptr = tmp;
	}
	return 1;
    }
    return 0;
}
Exemple #2
0
real_t rng_uniform(rng_t* rng)
{
  if (rng->vtable.uniform != NULL)
    return rng->vtable.uniform(rng->context);
  else
    return (real_t)(1.0 * rng_get(rng) / (rng->max + 1.0));
}
Exemple #3
0
Bit8u dspio_get_midi_in_byte(void *dspio)
{
    Bit8u val;
    int ret = rng_get(&DSPIO->midi_fifo_in, &val);
    assert(ret == 1);
    return val;
}
Exemple #4
0
static Bit8u dspio_get_midi_data(struct dspio_state *state)
{
    Bit8u val;
    int ret = rng_get(&state->midi_fifo_out, &val);
    assert(ret == 1);
    return val;
}
Exemple #5
0
static int dspio_get_dma_data(struct dspio_state *state, void *ptr, int is16bit)
{
    if (sb_get_dma_data(ptr, is16bit))
	return 1;
    if (rng_count(&state->fifo_in)) {
	if (is16bit) {
	    rng_get(&state->fifo_in, ptr);
	} else {
	    Bit16u tmp;
	    rng_get(&state->fifo_in, &tmp);
	    *(Bit8u *) ptr = tmp;
	}
	return 1;
    }
    error("SB: input fifo empty\n");
    return 0;
}
Exemple #6
0
STATIC mp_obj_t os_urandom(mp_obj_t num) {
    machine_int_t n = mp_obj_get_int(num);
    byte *data;
    mp_obj_t o = mp_obj_str_builder_start(&mp_type_bytes, n, &data);
    for (int i = 0; i < n; i++) {
        data[i] = rng_get();
    }
    return mp_obj_str_builder_end(o);
}
Exemple #7
0
STATIC mp_obj_t os_urandom(mp_obj_t num) {
    mp_int_t n = mp_obj_get_int(num);
    vstr_t vstr;
    vstr_init_len(&vstr, n);
    for (int i = 0; i < n; i++) {
        vstr.buf[i] = rng_get();
    }
    return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
}
Exemple #8
0
uint32_t rng_uniform_int(rng_t* rng, uint32_t n)
{
  if (rng->vtable.uniform_int != NULL)
    return rng->vtable.uniform_int(rng->context, n);
  else
  {
    uint32_t reduction_factor = rng->max / n;
    return rng_get(rng) / reduction_factor;
  }
}