clickDetector
Class ClickDetector.NewClickMonitor

java.lang.Object
  extended by clickDetector.ClickDetector.NewClickMonitor
All Implemented Interfaces:
PamObserver
Enclosing class:
ClickDetector

 class ClickDetector.NewClickMonitor
extends java.lang.Object
implements PamObserver

To improve performance, raw data is sent to each ChannelGroupDetector into a different thread. Once a channel group detector has found something, it sends it to NewClickMonitor, which will again bring candidate clicks into a separate thread. Spreading the click detection tasks between threads in this way should help to spread them across processor cores and generally make full use fo available CPU.

Author:
Doug Gillespie

Constructor Summary
ClickDetector.NewClickMonitor()
           
 
Method Summary
 java.lang.String getObserverName()
           
 PamObserver getObserverObject()
           
 long getRequiredDataHistory(PamObservable o, java.lang.Object arg)
           
 void masterClockUpdate(long milliSeconds, long sampleNumber)
           
 void noteNewSettings()
           
 void removeObservable(PamObservable o)
          called when an Observable (PamDataBlock) is removed from the system
 void setSampleRate(float sampleRate, boolean notify)
          New sample rate
 void update(PamObservable o, PamDataUnit arg)
          Informs the PamObserver that new data have been added to the Observable class
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ClickDetector.NewClickMonitor

ClickDetector.NewClickMonitor()
Method Detail

getObserverName

public java.lang.String getObserverName()
Specified by:
getObserverName in interface PamObserver

getRequiredDataHistory

public long getRequiredDataHistory(PamObservable o,
                                   java.lang.Object arg)
Specified by:
getRequiredDataHistory in interface PamObserver
Parameters:
o - PamObservable class requiring the data
arg - optional argument from PamObservable
Returns:
time in milliseconds requried by data held in PamObservable

masterClockUpdate

public void masterClockUpdate(long milliSeconds,
                              long sampleNumber)
Specified by:
masterClockUpdate in interface PamObserver

getObserverObject

public PamObserver getObserverObject()
Specified by:
getObserverObject in interface PamObserver
Returns:
the actual observer. In most cases concrete classes will just return 'this' in response. The exception is the Threaded observer, which will return the single thread observer.

noteNewSettings

public void noteNewSettings()
Specified by:
noteNewSettings in interface PamObserver

removeObservable

public void removeObservable(PamObservable o)
Description copied from interface: PamObserver
called when an Observable (PamDataBlock) is removed from the system

Specified by:
removeObservable in interface PamObserver

setSampleRate

public void setSampleRate(float sampleRate,
                          boolean notify)
Description copied from interface: PamObserver
New sample rate

Specified by:
setSampleRate in interface PamObserver
notify - Notify other PamObservers and PamObservables in the chain.

update

public void update(PamObservable o,
                   PamDataUnit arg)
Description copied from interface: PamObserver
Informs the PamObserver that new data have been added to the Observable class

Specified by:
update in interface PamObserver
Parameters:
o - Reference to the Observable (a PamDataBlock)
arg - Reference to the new PamDataUnit