/* CCD Preview Copyright (C) 2005 Dirk Huenniger Adapted from streamwg by Jasem Mutlaq This application is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ #ifndef CCDPREVIEWWG_H #define CCDPREVIEWWG_H #include #include #include "ccdpreviewui.h" #include "tqframe.h" enum Pixelorder {PIXELORDER_NORMAL=1, PIXELORDER_DUAL=2}; class TQImage; class TQSocketNotifier; class CCDVideoWG; class INDIStdDevice; class TQPainter; class TQVBoxLayout; class CCDPreviewWG : public CCDPreviewForm { TQ_OBJECT public: CCDPreviewWG(INDIStdDevice *inStdDev, TQWidget * parent =0, const char * name =0); ~CCDPreviewWG(); friend class CCDVideoWG; friend class INDIStdDevice; void setColorFrame(bool color); void setCtrl(int wd, int ht,int po, int bpp, unsigned long mgd); void setCCDInfo(double in_fwhm, int in_mu); void enableStream(bool enable); bool processStream; int streamWidth, streamHeight; CCDVideoWG *streamFrame; bool colorFrame; private: INDIStdDevice *stdDev; TQPixmap playPix, pausePix, capturePix; TQVBoxLayout *videoFrameLayout; double fwhm; int mu; protected: void closeEvent ( TQCloseEvent * e ); void resizeEvent(TQResizeEvent *ev); public slots: void playPressed(); void captureImage(); void brightnessChanged(int value); void contrastChanged(int value); void gammaChanged(int value); void updateFWHM(); }; class CCDVideoWG : public TQFrame { TQ_OBJECT public: CCDVideoWG(TQWidget * parent =0, const char * name =0); ~CCDVideoWG(); friend class CCDPreviewWG; void newFrame(unsigned char *buffer, int buffSiz, int w, int h); private: void redrawVideoWG(void); long totalBaseCount; TQRgb *grayTable; TQImage *streamImage; TQPixmap qPix; KPixmapIO kPixIO; unsigned char *streamBuffer; unsigned char *displayBuffer; long streamBufferPos; double scale,offset,gamma; int bytesPerPixel, PixelOrder; int Width, Height; unsigned long maxGoodData; protected: void paintEvent(TQPaintEvent *ev); public slots: }; #endif //CCDPREVIEWWG