protected int EnqueueTrigger(int sound, int marker)
{
var pos = _queue_pos;
var p = _cmd_queue[pos].array;
p[0] = TriggerId;
p[1] = sound;
p[2] = marker;
pos = (uint)((pos + 1) % _cmd_queue.Length);
if (_queue_end == pos)
{
_queue_pos = (uint)((pos - 1) % _cmd_queue.Length);
return -1;
}
_queue_pos = pos;
_queue_adding = true;
_queueSound = (uint)sound;
_queue_marker = (byte)marker;
return 0;
}