OPAL
Version 3.10.4
|
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