# h281.h

Go to the documentation of this file.

    00001 /*
    00002  * h281.h
    00003  *
    00004  * H.281 PDU implementation for the OpenH323 Project.
    00005  *
    00006  * Copyright (c) 2006 Network for Educational Technology, ETH Zurich.
    00007  * Written by Hannes Friederich.
    00008  *
    00009  * The contents of this file are subject to the Mozilla Public License
    00010  * Version 1.0 (the "License"); you may not use this file except in
    00011  * compliance with the License. You may obtain a copy of the License at
    00012  * http://www.mozilla.org/MPL/
    00013  *
    00014  * Software distributed under the License is distributed on an "AS IS"
    00015  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
    00016  * the License for the specific language governing rights and limitations
    00017  * under the License.
    00018  *
    00019  * Contributor(s): ______________________________________.
    00020  *
    00021  * $Revision: 21324 $
    00022  * $Author: hfriederich $
    00023  * $Date: 2008-10-14 02:12:32 -0500 (Tue, 14 Oct 2008) $
    00024  */
    00025
    00026 #ifndef OPAL_H224_H281_H
    00027 #define OPAL_H224_H281_H
    00028
    00029 #ifdef P_USE_PRAGMA
    00030 #pragma interface
    00031 #endif
    00032
    00033 #ifndef _PTLIB_H
    00034 #include <ptlib.h>
    00035 #endif
    00036
    00037 #include <h224/h224.h>
    00038
    00039 class H281_Frame : public H224_Frame
    00040 {
    00041   PCLASSINFO(H281_Frame, H224_Frame);
    00042
    00043 public:
    00044
    00045   enum RequestType {
    00046     IllegalRequest      = 0x00,
    00047     StartAction         = 0x01,
    00048     ContinueAction      = 0x02,
    00049     StopAction          = 0x03,
    00050     SelectVideoSource     = 0x04,
    00051     VideoSourceSwitched = 0x05,
    00052     StoreAsPreset       = 0x07,
    00053     ActivatePreset      = 0x08
    00054   };
    00055
    00056   enum PanDirection {
    00057     NoPan       = 0x00,
    00058     IllegalPan  = 0x40,
    00059     PanLeft     = 0x80,
    00060     PanRight    = 0xc0,
    00061   };
    00062
    00063   enum TiltDirection {
    00064     NoTilt      = 0x00,
    00065     IllegalTilt = 0x10,
    00066     TiltDown    = 0x20,
    00067     TiltUp      = 0x30,
    00068   };
    00069
    00070   enum ZoomDirection {
    00071     NoZoom      = 0x00,
    00072     IllegalZoom = 0x04,
    00073     ZoomOut     = 0x08,
    00074     ZoomIn      = 0x0c
    00075   };
    00076
    00077   enum FocusDirection {
    00078     NoFocus       = 0x00,
    00079     IllegalFocus  = 0x01,
    00080     FocusOut      = 0x02,
    00081     FocusIn       = 0x03
    00082   };
    00083
    00084   enum VideoMode {
    00085     MotionVideo                 = 0x00,
    00086     IllegalVideoMode            = 0x01,
    00087     NormalResolutionStillImage  = 0x02,
    00088     DoubleResolutionStillImage  = 0x03
    00089   };
    00090
    00091   H281_Frame();
    00092   ~H281_Frame();
    00093
    00094   RequestType GetRequestType() const { return (RequestType)(GetClientDataPtr())[0]; }
    00095   void SetRequestType(RequestType requestType);
    00096
    00097   // The following methods are only valid when
    00098   // request type is either StartAction, ContinueAction or StopAction
    00099   PanDirection GetPanDirection() const;
    00100   void SetPanDirection(PanDirection direction);
    00101
    00102   TiltDirection GetTiltDirection() const;
    00103   void SetTiltDirection(TiltDirection direction);
    00104
    00105   ZoomDirection GetZoomDirection() const;
    00106   void SetZoomDirection(ZoomDirection direction);
    00107
    00108   FocusDirection GetFocusDirection() const;
    00109   void SetFocusDirection(FocusDirection direction);
    00110
    00111   // Only valid when RequestType is StartAction
    00112   BYTE GetTimeout() const;
    00113   void SetTimeout(BYTE timeout);
    00114
    00115   // Only valid when RequestType is SelectVideoSource or VideoSourceSwitched
    00116   BYTE GetVideoSourceNumber() const;
    00117   void SetVideoSourceNumber(BYTE videoSourceNumber);
    00118
    00119   VideoMode GetVideoMode() const;
    00120   void SetVideoMode(VideoMode videoMode);
    00121
    00122   // Only valid when RequestType is StoreAsPreset or ActivatePreset
    00123   BYTE GetPresetNumber() const;
    00124   void SetPresetNumber(BYTE presetNumber);
    00125 };
    00126
    00127 #endif // OPAL_H224_H281_H
    00128