monitorEqualizer.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef EQS_MONITOREQUALIZER_H
00019 #define EQS_MONITOREQUALIZER_H
00020
00021 #include "equalizer.h"
00022
00023 #include <eq/client/types.h>
00024 #include <deque>
00025 #include <map>
00026
00027 namespace eq
00028 {
00029 namespace server
00030 {
00031 class Compound;
00032 class MonitorEqualizer;
00033 std::ostream& operator << ( std::ostream& os, const MonitorEqualizer* );
00034
00036 class MonitorEqualizer : public Equalizer
00037 {
00038 public:
00039 MonitorEqualizer();
00040 MonitorEqualizer( const MonitorEqualizer& from );
00041 virtual ~MonitorEqualizer();
00042 virtual Equalizer* clone() const { return new MonitorEqualizer(*this); }
00043 virtual void toStream( std::ostream& os ) const { os << this; }
00044
00046 virtual void attach( Compound* compound );
00047
00049 virtual void notifyUpdatePre( Compound* compound,
00050 const uint32_t frameNumber );
00051
00052 protected:
00053 virtual void notifyChildAdded( Compound* compound, Compound* child ){}
00054 virtual void notifyChildRemove( Compound* compound, Compound* child ){}
00055
00056 private:
00058 void _updateViewports();
00059
00062 void _updateZoomAndOffset();
00063
00064 eq::ViewportVector _viewports;
00065 FrameVector _outputFrames;
00066 };
00067 }
00068 }
00069
00070 #endif // EQS_MONITOREQUALIZER_H