Lines 82-88
Link Here
|
82 |
{ |
82 |
{ |
83 |
FXDECLARE(CLevelMeter); |
83 |
FXDECLARE(CLevelMeter); |
84 |
public: |
84 |
public: |
85 |
CLevelMeter::CLevelMeter(FXComposite *parent) : |
85 |
CLevelMeter(FXComposite *parent) : |
86 |
FXHorizontalFrame(parent,LAYOUT_FILL_X|LAYOUT_FIX_HEIGHT|LAYOUT_TOP | FRAME_NONE,0,0,0,0, 0,0,0,0, 0,0), |
86 |
FXHorizontalFrame(parent,LAYOUT_FILL_X|LAYOUT_FIX_HEIGHT|LAYOUT_TOP | FRAME_NONE,0,0,0,0, 0,0,0,0, 0,0), |
87 |
statusFont(getApp()->getNormalFont()), |
87 |
statusFont(getApp()->getNormalFont()), |
88 |
canvas(new FXCanvas(this,this,ID_CANVAS,FRAME_NONE | LAYOUT_FILL_X|LAYOUT_FILL_Y)), |
88 |
canvas(new FXCanvas(this,this,ID_CANVAS,FRAME_NONE | LAYOUT_FILL_X|LAYOUT_FILL_Y)), |
Lines 121-127
Link Here
|
121 |
|
121 |
|
122 |
} |
122 |
} |
123 |
|
123 |
|
124 |
CLevelMeter::~CLevelMeter() |
124 |
~CLevelMeter() |
125 |
{ |
125 |
{ |
126 |
delete statusFont; |
126 |
delete statusFont; |
127 |
} |
127 |
} |
Lines 133-139
Link Here
|
133 |
setHeight(max(statusFont->getFontHeight(),MIN_METER_HEIGHT)); // make meter only as tall as necessary (also with a defined minimum) |
133 |
setHeight(max(statusFont->getFontHeight(),MIN_METER_HEIGHT)); // make meter only as tall as necessary (also with a defined minimum) |
134 |
} |
134 |
} |
135 |
|
135 |
|
136 |
long CLevelMeter::onCanvasPaint(FXObject *sender,FXSelector sel,void *ptr) |
136 |
long onCanvasPaint(FXObject *sender,FXSelector sel,void *ptr) |
137 |
{ |
137 |
{ |
138 |
FXDCWindow dc(canvas); |
138 |
FXDCWindow dc(canvas); |
139 |
|
139 |
|
Lines 327-333
Link Here
|
327 |
{ |
327 |
{ |
328 |
FXDECLARE(CBalanceMeter); |
328 |
FXDECLARE(CBalanceMeter); |
329 |
public: |
329 |
public: |
330 |
CBalanceMeter::CBalanceMeter(FXComposite *parent) : |
330 |
CBalanceMeter(FXComposite *parent) : |
331 |
FXHorizontalFrame(parent,LAYOUT_FILL_X|LAYOUT_FIX_HEIGHT | FRAME_NONE, 0,0,0,0, 0,0,0,0, 0,0), |
331 |
FXHorizontalFrame(parent,LAYOUT_FILL_X|LAYOUT_FIX_HEIGHT | FRAME_NONE, 0,0,0,0, 0,0,0,0, 0,0), |
332 |
statusFont(getApp()->getNormalFont()), |
332 |
statusFont(getApp()->getNormalFont()), |
333 |
leftLabel(new FXLabel(this,"-1.0")), |
333 |
leftLabel(new FXLabel(this,"-1.0")), |
Lines 361-367
Link Here
|
361 |
|
361 |
|
362 |
} |
362 |
} |
363 |
|
363 |
|
364 |
CBalanceMeter::~CBalanceMeter() |
364 |
~CBalanceMeter() |
365 |
{ |
365 |
{ |
366 |
delete statusFont; |
366 |
delete statusFont; |
367 |
} |
367 |
} |
Lines 372-378
Link Here
|
372 |
setHeight(max(statusFont->getFontHeight(),MIN_METER_HEIGHT)); // make meter only as tall as necessary (also with a defined minimum) |
372 |
setHeight(max(statusFont->getFontHeight(),MIN_METER_HEIGHT)); // make meter only as tall as necessary (also with a defined minimum) |
373 |
} |
373 |
} |
374 |
|
374 |
|
375 |
long CBalanceMeter::onCanvasPaint(FXObject *sender,FXSelector sel,void *ptr) |
375 |
long onCanvasPaint(FXObject *sender,FXSelector sel,void *ptr) |
376 |
{ |
376 |
{ |
377 |
FXDCWindow dc(canvas); |
377 |
FXDCWindow dc(canvas); |
378 |
|
378 |
|
Lines 478-484
Link Here
|
478 |
{ |
478 |
{ |
479 |
FXDECLARE(CStereoPhaseMeter); |
479 |
FXDECLARE(CStereoPhaseMeter); |
480 |
public: |
480 |
public: |
481 |
CStereoPhaseMeter::CStereoPhaseMeter(FXComposite *parent,sample_t *_samplingBuffer,size_t _samplingNFrames,unsigned _samplingNChannels,unsigned _samplingLeftChannel,unsigned _samplingRightChannel) : |
481 |
CStereoPhaseMeter(FXComposite *parent,sample_t *_samplingBuffer,size_t _samplingNFrames,unsigned _samplingNChannels,unsigned _samplingLeftChannel,unsigned _samplingRightChannel) : |
482 |
FXHorizontalFrame(parent,LAYOUT_RIGHT|LAYOUT_FIX_WIDTH|LAYOUT_FILL_Y, 0,0,0,0, 0,0,0,0, 0,0), |
482 |
FXHorizontalFrame(parent,LAYOUT_RIGHT|LAYOUT_FIX_WIDTH|LAYOUT_FILL_Y, 0,0,0,0, 0,0,0,0, 0,0), |
483 |
canvasFrame(new FXVerticalFrame(this,LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_SUNKEN|FRAME_THICK,0,0,0,0, 2,2,2,2, 0,1)), |
483 |
canvasFrame(new FXVerticalFrame(this,LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_SUNKEN|FRAME_THICK,0,0,0,0, 2,2,2,2, 0,1)), |
484 |
canvas(new FXBackBufferedCanvas(canvasFrame,this,ID_CANVAS,LAYOUT_FILL_X|LAYOUT_FILL_Y)), |
484 |
canvas(new FXBackBufferedCanvas(canvasFrame,this,ID_CANVAS,LAYOUT_FILL_X|LAYOUT_FILL_Y)), |
Lines 519-537
Link Here
|
519 |
statusFont=new FXFont(getApp(),d); |
519 |
statusFont=new FXFont(getApp(),d); |
520 |
} |
520 |
} |
521 |
|
521 |
|
522 |
CStereoPhaseMeter::~CStereoPhaseMeter() |
522 |
~CStereoPhaseMeter() |
523 |
{ |
523 |
{ |
524 |
delete statusFont; |
524 |
delete statusFont; |
525 |
} |
525 |
} |
526 |
|
526 |
|
527 |
long CStereoPhaseMeter::onZoomDial(FXObject *sender,FXSelector sel,void *ptr) |
527 |
long onZoomDial(FXObject *sender,FXSelector sel,void *ptr) |
528 |
{ |
528 |
{ |
529 |
zoom=((float)zoomDial->getValue())/100.0f; |
529 |
zoom=((float)zoomDial->getValue())/100.0f; |
530 |
canvas->update(); // not really necessary since we're doing it several times a second anyway |
530 |
canvas->update(); // not really necessary since we're doing it several times a second anyway |
531 |
return 1; |
531 |
return 1; |
532 |
} |
532 |
} |
533 |
|
533 |
|
534 |
long CStereoPhaseMeter::onResize(FXObject *sender,FXSelector sel,void *ptr) |
534 |
long onResize(FXObject *sender,FXSelector sel,void *ptr) |
535 |
{ |
535 |
{ |
536 |
// make square |
536 |
// make square |
537 |
resize(getHeight()+getHSpacing()+zoomDial->getWidth(),getHeight()); |
537 |
resize(getHeight()+getHSpacing()+zoomDial->getWidth(),getHeight()); |
Lines 540-546
Link Here
|
540 |
return 1; |
540 |
return 1; |
541 |
} |
541 |
} |
542 |
|
542 |
|
543 |
long CStereoPhaseMeter::onCanvasPaint(FXObject *sender,FXSelector sel,void *ptr) |
543 |
long onCanvasPaint(FXObject *sender,FXSelector sel,void *ptr) |
544 |
{ |
544 |
{ |
545 |
FXColor *data=(FXColor *)canvas->getBackBufferData(); |
545 |
FXColor *data=(FXColor *)canvas->getBackBufferData(); |
546 |
|
546 |
|
Lines 730-736
Link Here
|
730 |
{ |
730 |
{ |
731 |
FXDECLARE(CAnalyzer); |
731 |
FXDECLARE(CAnalyzer); |
732 |
public: |
732 |
public: |
733 |
CAnalyzer::CAnalyzer(FXComposite *parent) : |
733 |
CAnalyzer(FXComposite *parent) : |
734 |
FXHorizontalFrame(parent,LAYOUT_RIGHT|LAYOUT_FILL_Y, 0,0,0,0, 0,0,0,0, 0,0), |
734 |
FXHorizontalFrame(parent,LAYOUT_RIGHT|LAYOUT_FILL_Y, 0,0,0,0, 0,0,0,0, 0,0), |
735 |
canvasFrame(new FXVerticalFrame(this,LAYOUT_FIX_WIDTH|LAYOUT_FILL_Y|FRAME_SUNKEN|FRAME_THICK,0,0,0,0, 2,2,2,2, 0,1)), |
735 |
canvasFrame(new FXVerticalFrame(this,LAYOUT_FIX_WIDTH|LAYOUT_FILL_Y|FRAME_SUNKEN|FRAME_THICK,0,0,0,0, 2,2,2,2, 0,1)), |
736 |
canvas(new FXBackBufferedCanvas(canvasFrame,this,ID_CANVAS,LAYOUT_FILL_X|LAYOUT_FILL_Y)), |
736 |
canvas(new FXBackBufferedCanvas(canvasFrame,this,ID_CANVAS,LAYOUT_FILL_X|LAYOUT_FILL_Y)), |
Lines 763-787
Link Here
|
763 |
canvasFrame->setWidth(150); |
763 |
canvasFrame->setWidth(150); |
764 |
} |
764 |
} |
765 |
|
765 |
|
766 |
CAnalyzer::~CAnalyzer() |
766 |
~CAnalyzer() |
767 |
{ |
767 |
{ |
768 |
delete statusFont; |
768 |
delete statusFont; |
769 |
} |
769 |
} |
770 |
|
770 |
|
771 |
long CAnalyzer::onZoomDial(FXObject *sender,FXSelector sel,void *ptr) |
771 |
long onZoomDial(FXObject *sender,FXSelector sel,void *ptr) |
772 |
{ |
772 |
{ |
773 |
zoom=zoomDial->getValue(); |
773 |
zoom=zoomDial->getValue(); |
774 |
canvas->update(); // not really necessary since we're doing it several times a second anyway |
774 |
canvas->update(); // not really necessary since we're doing it several times a second anyway |
775 |
return 1; |
775 |
return 1; |
776 |
} |
776 |
} |
777 |
|
777 |
|
778 |
long CAnalyzer::onZoomDialDefault(FXObject *sender,FXSelector sel,void *ptr) |
778 |
long onZoomDialDefault(FXObject *sender,FXSelector sel,void *ptr) |
779 |
{ |
779 |
{ |
780 |
zoomDial->setValue(25); |
780 |
zoomDial->setValue(25); |
781 |
return onZoomDial(sender,sel,ptr); |
781 |
return onZoomDial(sender,sel,ptr); |
782 |
} |
782 |
} |
783 |
|
783 |
|
784 |
long CAnalyzer::onCanvasPaint(FXObject *sender,FXSelector sel,void *ptr) |
784 |
long onCanvasPaint(FXObject *sender,FXSelector sel,void *ptr) |
785 |
{ |
785 |
{ |
786 |
FXDC &dc=*((FXDC*)ptr); // back buffered canvases send the DC to draw onto in ptr |
786 |
FXDC &dc=*((FXDC*)ptr); // back buffered canvases send the DC to draw onto in ptr |
787 |
|
787 |
|
Lines 865-883
Link Here
|
865 |
return 1; |
865 |
return 1; |
866 |
} |
866 |
} |
867 |
|
867 |
|
868 |
long CAnalyzer::onCanvasEnter(FXObject *sender,FXSelector sel,void *ptr) |
868 |
long onCanvasEnter(FXObject *sender,FXSelector sel,void *ptr) |
869 |
{ |
869 |
{ |
870 |
drawBarFreq=true; |
870 |
drawBarFreq=true; |
871 |
return onCanvasMotion(sender,sel,ptr); |
871 |
return onCanvasMotion(sender,sel,ptr); |
872 |
} |
872 |
} |
873 |
|
873 |
|
874 |
long CAnalyzer::onCanvasLeave(FXObject *sender,FXSelector sel,void *ptr) |
874 |
long onCanvasLeave(FXObject *sender,FXSelector sel,void *ptr) |
875 |
{ |
875 |
{ |
876 |
drawBarFreq=false; |
876 |
drawBarFreq=false; |
877 |
return onCanvasMotion(sender,sel,ptr); |
877 |
return onCanvasMotion(sender,sel,ptr); |
878 |
} |
878 |
} |
879 |
|
879 |
|
880 |
long CAnalyzer::onCanvasMotion(FXObject *sender,FXSelector sel,void *ptr) |
880 |
long onCanvasMotion(FXObject *sender,FXSelector sel,void *ptr) |
881 |
{ |
881 |
{ |
882 |
barFreqIndex=((FXEvent *)ptr)->win_x/ANALYZER_BAR_WIDTH; |
882 |
barFreqIndex=((FXEvent *)ptr)->win_x/ANALYZER_BAR_WIDTH; |
883 |
return 1; |
883 |
return 1; |