/[svn]/linuxsampler/trunk/src/Sampler.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/Sampler.cpp

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

revision 1777 by persson, Mon Sep 15 16:58:10 2008 UTC revision 1789 by iliev, Sat Nov 1 19:01:27 2008 UTC
# Line 259  namespace LinuxSampler { Line 259  namespace LinuxSampler {
259    
260      Sampler::Sampler() {      Sampler::Sampler() {
261          eventHandler.SetSampler(this);          eventHandler.SetSampler(this);
262            uiOldTotalVoiceCount = uiOldTotalStreamCount = 0;
263      }      }
264    
265      Sampler::~Sampler() {      Sampler::~Sampler() {
# Line 344  namespace LinuxSampler { Line 345  namespace LinuxSampler {
345      }      }
346    
347      void Sampler::fireVoiceCountChanged(int ChannelId, int NewCount) {      void Sampler::fireVoiceCountChanged(int ChannelId, int NewCount) {
348            std::map<uint, uint>::iterator it = mOldVoiceCounts.find(ChannelId);
349            if (it != mOldVoiceCounts.end()) {
350                uint oldCount = it->second;
351                if (NewCount == oldCount) return;
352            }
353    
354            mOldVoiceCounts[ChannelId] = NewCount;
355    
356          for (int i = 0; i < llVoiceCountListeners.GetListenerCount(); i++) {          for (int i = 0; i < llVoiceCountListeners.GetListenerCount(); i++) {
357              llVoiceCountListeners.GetListener(i)->VoiceCountChanged(ChannelId, NewCount);              llVoiceCountListeners.GetListener(i)->VoiceCountChanged(ChannelId, NewCount);
358          }          }
# Line 358  namespace LinuxSampler { Line 367  namespace LinuxSampler {
367      }      }
368    
369      void Sampler::fireStreamCountChanged(int ChannelId, int NewCount) {      void Sampler::fireStreamCountChanged(int ChannelId, int NewCount) {
370            std::map<uint, uint>::iterator it = mOldStreamCounts.find(ChannelId);
371            if (it != mOldStreamCounts.end()) {
372                uint oldCount = it->second;
373                if (NewCount == oldCount) return;
374            }
375    
376            mOldStreamCounts[ChannelId] = NewCount;
377    
378          for (int i = 0; i < llStreamCountListeners.GetListenerCount(); i++) {          for (int i = 0; i < llStreamCountListeners.GetListenerCount(); i++) {
379              llStreamCountListeners.GetListener(i)->StreamCountChanged(ChannelId, NewCount);              llStreamCountListeners.GetListener(i)->StreamCountChanged(ChannelId, NewCount);
380          }          }
# Line 386  namespace LinuxSampler { Line 403  namespace LinuxSampler {
403      }      }
404    
405      void Sampler::fireTotalStreamCountChanged(int NewCount) {      void Sampler::fireTotalStreamCountChanged(int NewCount) {
406            if (NewCount == uiOldTotalStreamCount) return;
407            uiOldTotalStreamCount = NewCount;
408    
409          for (int i = 0; i < llTotalStreamCountListeners.GetListenerCount(); i++) {          for (int i = 0; i < llTotalStreamCountListeners.GetListenerCount(); i++) {
410              llTotalStreamCountListeners.GetListener(i)->TotalStreamCountChanged(NewCount);              llTotalStreamCountListeners.GetListener(i)->TotalStreamCountChanged(NewCount);
411          }          }
# Line 400  namespace LinuxSampler { Line 420  namespace LinuxSampler {
420      }      }
421    
422      void Sampler::fireTotalVoiceCountChanged(int NewCount) {      void Sampler::fireTotalVoiceCountChanged(int NewCount) {
423            if (NewCount == uiOldTotalVoiceCount) return;
424            uiOldTotalVoiceCount = NewCount;
425    
426          for (int i = 0; i < llTotalVoiceCountListeners.GetListenerCount(); i++) {          for (int i = 0; i < llTotalVoiceCountListeners.GetListenerCount(); i++) {
427              llTotalVoiceCountListeners.GetListener(i)->TotalVoiceCountChanged(NewCount);              llTotalVoiceCountListeners.GetListener(i)->TotalVoiceCountChanged(NewCount);
428          }          }
# Line 486  namespace LinuxSampler { Line 509  namespace LinuxSampler {
509          for (; iterChan != mSamplerChannels.end(); iterChan++) {          for (; iterChan != mSamplerChannels.end(); iterChan++) {
510              if (iterChan->second == pSamplerChannel) {              if (iterChan->second == pSamplerChannel) {
511                  fireChannelToBeRemoved(pSamplerChannel);                  fireChannelToBeRemoved(pSamplerChannel);
512                    mOldVoiceCounts.erase(pSamplerChannel->Index());
513                    mOldStreamCounts.erase(pSamplerChannel->Index());
514                  pSamplerChannel->RemoveAllEngineChangeListeners();                  pSamplerChannel->RemoveAllEngineChangeListeners();
515                  mSamplerChannels.erase(iterChan);                  mSamplerChannels.erase(iterChan);
516                  delete pSamplerChannel;                  delete pSamplerChannel;
# Line 713  namespace LinuxSampler { Line 738  namespace LinuxSampler {
738                  fireVoiceCountChanged(iter->first, pEngineChannel->GetVoiceCount());                  fireVoiceCountChanged(iter->first, pEngineChannel->GetVoiceCount());
739                  fireStreamCountChanged(iter->first, pEngineChannel->GetDiskStreamCount());                  fireStreamCountChanged(iter->first, pEngineChannel->GetDiskStreamCount());
740                  fireBufferFillChanged(iter->first, pEngine->DiskStreamBufferFillPercentage());                  fireBufferFillChanged(iter->first, pEngine->DiskStreamBufferFillPercentage());
                 fireTotalStreamCountChanged(GetDiskStreamCount());  
                 fireTotalVoiceCountChanged(GetVoiceCount());  
741              }              }
742                
743                fireTotalStreamCountChanged(GetDiskStreamCount());
744                fireTotalVoiceCountChanged(GetVoiceCount());
745    
746              LSCPServer::UnlockRTNotify();              LSCPServer::UnlockRTNotify();
747          }          }
748      }      }

Legend:
Removed from v.1777  
changed lines
  Added in v.1789

  ViewVC Help
Powered by ViewVC