398 |
} |
} |
399 |
|
|
400 |
|
|
401 |
|
// update time of start and end of this audio fragment (as events' time stamps relate to this) |
402 |
|
pEventGenerator->UpdateFragmentTime(Samples); |
403 |
|
|
404 |
|
|
405 |
// empty the event lists for the new fragment |
// empty the event lists for the new fragment |
406 |
pEvents->clear(); |
pEvents->clear(); |
407 |
pCCEvents->clear(); |
pCCEvents->clear(); |
416 |
} |
} |
417 |
} |
} |
418 |
|
|
|
// read and copy events from input queue |
|
|
Event event = pEventGenerator->CreateEvent(); |
|
|
while (true) { |
|
|
if (!pEventQueue->pop(&event) || pEvents->poolIsEmpty()) break; |
|
|
*pEvents->allocAppend() = event; |
|
|
} |
|
|
|
|
419 |
|
|
420 |
// update time of start and end of this audio fragment (as events' time stamps relate to this) |
// get all events from the input event queue which belong to the current fragment |
421 |
pEventGenerator->UpdateFragmentTime(Samples); |
{ |
422 |
|
RingBuffer<Event>::NonVolatileReader eventQueueReader = pEventQueue->get_non_volatile_reader(); |
423 |
|
Event* pEvent; |
424 |
|
while (true) { |
425 |
|
// get next event from input event queue |
426 |
|
if (!(pEvent = eventQueueReader.pop())) break; |
427 |
|
// if younger event reached, ignore that and all subsequent ones for now |
428 |
|
if (pEvent->FragmentPos() >= Samples) { |
429 |
|
eventQueueReader--; |
430 |
|
dmsg(2,("Younger Event, pos=%d ,Samples=%d!\n",pEvent->FragmentPos(),Samples)); |
431 |
|
pEvent->ResetFragmentPos(); |
432 |
|
break; |
433 |
|
} |
434 |
|
// copy event to internal event list |
435 |
|
if (pEvents->poolIsEmpty()) { |
436 |
|
dmsg(1,("Event pool emtpy!\n")); |
437 |
|
break; |
438 |
|
} |
439 |
|
*pEvents->allocAppend() = *pEvent; |
440 |
|
} |
441 |
|
eventQueueReader.free(); // free all copied events from input queue |
442 |
|
} |
443 |
|
|
444 |
|
|
445 |
// process events |
// process events |
1164 |
} |
} |
1165 |
|
|
1166 |
String Engine::Version() { |
String Engine::Version() { |
1167 |
String s = "$Revision: 1.17 $"; |
String s = "$Revision: 1.18 $"; |
1168 |
return s.substr(11, s.size() - 13); // cut dollar signs, spaces and CVS macro keyword |
return s.substr(11, s.size() - 13); // cut dollar signs, spaces and CVS macro keyword |
1169 |
} |
} |
1170 |
|
|