Beispiel #1
0
void Player::mix_events(MessageQueue &queue, int samples) {
    assert(model);
    
    long long target = queue.read_samples + ((long long)samples<<32);
    while (queue.write_samples < target)
    {
        // send status package
        queue.status_msg();
        mix_frame(queue);
        long long framesize = get_frame_size();
        queue.write_samples += framesize;
        queue.position++;
        if (model->enable_loop && (queue.position == model->loop.get_end())) {
            queue.position = model->loop.get_begin();
        }
    }
}