/[svn]/linuxsampler/trunk/src/engines/gig/Engine.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/engines/gig/Engine.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 287 by schoenebeck, Sat Oct 16 17:38:03 2004 UTC revision 293 by schoenebeck, Mon Oct 25 15:14:27 2004 UTC
# Line 398  namespace LinuxSampler { namespace gig { Line 398  namespace LinuxSampler { namespace gig {
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();
# Line 412  namespace LinuxSampler { namespace gig { Line 416  namespace LinuxSampler { namespace gig {
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
# Line 1146  namespace LinuxSampler { namespace gig { Line 1164  namespace LinuxSampler { namespace gig {
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    

Legend:
Removed from v.287  
changed lines
  Added in v.293

  ViewVC Help
Powered by ViewVC