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 07:12:32 +0000 (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 

Generated on Mon Feb 1 00:25:43 2010 for OPAL by  doxygen 1.5.1