OPAL  Version 3.12.9
h281.h
Go to the documentation of this file.
1 /*
2  * h281.h
3  *
4  * H.281 PDU implementation for the OpenH323 Project.
5  *
6  * Copyright (c) 2006 Network for Educational Technology, ETH Zurich.
7  * Written by Hannes Friederich.
8  *
9  * The contents of this file are subject to the Mozilla Public License
10  * Version 1.0 (the "License"); you may not use this file except in
11  * compliance with the License. You may obtain a copy of the License at
12  * http://www.mozilla.org/MPL/
13  *
14  * Software distributed under the License is distributed on an "AS IS"
15  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
16  * the License for the specific language governing rights and limitations
17  * under the License.
18  *
19  * Contributor(s): ______________________________________.
20  *
21  * $Revision: 21324 $
22  * $Author: hfriederich $
23  * $Date: 2008-10-14 18:12:32 +1100 (Tue, 14 Oct 2008) $
24  */
25 
26 #ifndef OPAL_H224_H281_H
27 #define OPAL_H224_H281_H
28 
29 #ifdef P_USE_PRAGMA
30 #pragma interface
31 #endif
32 
33 #ifndef _PTLIB_H
34 #include <ptlib.h>
35 #endif
36 
37 #include <h224/h224.h>
38 
39 class H281_Frame : public H224_Frame
40 {
41  PCLASSINFO(H281_Frame, H224_Frame);
42 
43 public:
44 
45  enum RequestType {
47  StartAction = 0x01,
49  StopAction = 0x03,
52  StoreAsPreset = 0x07,
54  };
55 
56  enum PanDirection {
57  NoPan = 0x00,
58  IllegalPan = 0x40,
59  PanLeft = 0x80,
60  PanRight = 0xc0,
61  };
62 
64  NoTilt = 0x00,
65  IllegalTilt = 0x10,
66  TiltDown = 0x20,
67  TiltUp = 0x30,
68  };
69 
71  NoZoom = 0x00,
72  IllegalZoom = 0x04,
73  ZoomOut = 0x08,
74  ZoomIn = 0x0c
75  };
76 
78  NoFocus = 0x00,
79  IllegalFocus = 0x01,
80  FocusOut = 0x02,
81  FocusIn = 0x03
82  };
83 
84  enum VideoMode {
85  MotionVideo = 0x00,
89  };
90 
91  H281_Frame();
92  ~H281_Frame();
93 
95  void SetRequestType(RequestType requestType);
96 
97  // The following methods are only valid when
98  // request type is either StartAction, ContinueAction or StopAction
100  void SetPanDirection(PanDirection direction);
101 
103  void SetTiltDirection(TiltDirection direction);
104 
106  void SetZoomDirection(ZoomDirection direction);
107 
109  void SetFocusDirection(FocusDirection direction);
110 
111  // Only valid when RequestType is StartAction
112  BYTE GetTimeout() const;
113  void SetTimeout(BYTE timeout);
114 
115  // Only valid when RequestType is SelectVideoSource or VideoSourceSwitched
116  BYTE GetVideoSourceNumber() const;
117  void SetVideoSourceNumber(BYTE videoSourceNumber);
118 
119  VideoMode GetVideoMode() const;
120  void SetVideoMode(VideoMode videoMode);
121 
122  // Only valid when RequestType is StoreAsPreset or ActivatePreset
123  BYTE GetPresetNumber() const;
124  void SetPresetNumber(BYTE presetNumber);
125 };
126 
127 #endif // OPAL_H224_H281_H
128