This file is indexed.

/usr/include/libindi/indiccd.h is in libindi-dev 0.8-1ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
/*******************************************************************************
  Copyright(c) 2010 Gerry Rozema. All rights reserved.

  This program 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.

  This program is distributed in the hope that it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  more details.

  You should have received a copy of the GNU General Public License along with
  this program; if not, write to the Free Software Foundation, Inc., 59
  Temple Place - Suite 330, Boston, MA  02111-1307, USA.

  The full GNU General Public License is included in this distribution in the
  file called LICENSE.
*******************************************************************************/

#ifndef INDI_CCD_H
#define INDI_CCD_H

#include "defaultdriver.h"

#define FRAME_TYPE_LIGHT 0
#define FRAME_TYPE_BIAS 1
#define FRAME_TYPE_DARK 2
#define FRAME_TYPE_FLAT 3

class INDI::CCD : public INDI::DefaultDriver
{
    protected:

        char *RawFrame;
        int RawFrameSize;

        //  Altho these numbers are indeed stored in the indi properties
        //  It makes for much cleaner code if we have 'plain old number' copies
        //  So, when we process messages, just update both

        int XRes;   //  native resolution of the ccd
        int YRes;   //  ditto
        int SubX;   //  left side of the subframe we are requesting
        int SubY;   //  top of the subframe requested
        int SubW;   //  width of the subframe
        int SubH;   //  height of the subframe
        int BinX;   //  Binning requested in the x direction
        int BinY;   //  Binning requested in the Y direction
        float PixelSizex;   //  pixel size in microns, x direction
        float PixelSizey;   //  pixel size in microns, y direction
        bool SendCompressed;

        bool HasSt4Port;

        //  If the camera has a second ccd, or integrated guide head
        //  we need information on that one too
        bool HasGuideHead;
        char *RawGuiderFrame;
        int RawGuideSize;
        int GXRes;  //  native resolution of the guide head
        int GYRes;  //  native resolution
        int GSubX;  //  left side of the guide image subframe
        int GSubY;  //  top of the guide image subframe
        int GSubW;  //  Width of the guide image
        int GSubH;  //  Height of the guide image
        float GPixelSizex;  //  phyiscal size of the guider pixels
        float GPixelSizey;
        bool GuiderCompressed;

        int FrameType;


    private:
    public:
        CCD();
        virtual ~CCD();

        //  A ccd needs to desribe the frame
        //INumberVectorProperty CcdFrameNV;
        //INumberVectorProperty CcdExposureNV;
        //INumberVectorProperty CcdBinNV;
        //INumberVectorProperty CcdPixelSizeNV;


        INumberVectorProperty ImageFrameNV;
        INumber ImageFrameN[4];

        INumberVectorProperty ImageBinNV;
        INumber ImageBinN[2];

        INumberVectorProperty ImagePixelSizeNV;
        INumber ImagePixelSizeN[6];

        INumberVectorProperty ImageExposureNV;
        INumber ImageExposureN[1];

        //INumberVectorProperty ImageExposureReqNV;
        //INumber ImageExposureReqN[1];

        INumberVectorProperty GuiderFrameNV;
        INumber GuiderFrameN[4];
        INumberVectorProperty GuiderPixelSizeNV;
        INumber GuiderPixelSizeN[6];
        INumberVectorProperty GuiderExposureNV;
        INumber GuiderExposureN[1];

        ISwitch FrameTypeS[4];
        ISwitchVectorProperty FrameTypeSV;


        ISwitch CompressS[2];
        ISwitchVectorProperty CompressSV;

        ISwitch GuiderCompressS[2];
        ISwitchVectorProperty GuiderCompressSV;


        ISwitch GuiderVideoS[2];
        ISwitchVectorProperty GuiderVideoSV;

        INumber GuideNS[2];
        INumberVectorProperty GuideNSV;
        INumber GuideEW[2];
        INumberVectorProperty GuideEWV;

        IBLOB FitsB;
        IBLOBVectorProperty FitsBV;

        IBLOB GuiderB;
        IBLOBVectorProperty GuiderBV;

        virtual bool  initProperties();
        virtual bool updateProperties();
        virtual void ISGetProperties (const char *dev);

        virtual bool ISNewNumber (const char *dev, const char *name, double values[], char *names[], int n);
        virtual bool ISNewSwitch (const char *dev, const char *name, ISState *states, char *names[], int n);

        virtual bool ISNewText (const char *dev, const char *name, char *texts[], char *names[], int n) {return false;}


        virtual int StartExposure(float duration);
        virtual bool ExposureComplete();
        virtual int StartGuideExposure(float duration);
        virtual bool AbortGuideExposure();
        virtual bool GuideExposureComplete();
        virtual int uploadfile(void *fitsdata,int total);
        virtual int sendPreview();

        //  Handy functions for child classes
        virtual int SetCCDParams(int x,int y,int bpp,float xf,float yf);
        virtual int SetGuidHeadParams(int x,int y,int bpp,float xf,float yf);

        virtual int GuideNorth(float);
        virtual int GuideSouth(float);
        virtual int GuideEast(float);
        virtual int GuideWest(float);

        virtual int SetFrameType(int);

};

#endif // INDI:CCD_H