OPAL Version 3.10.4

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files

- File List
- Globals

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 02:12:32 -0500 (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 {
46 IllegalRequest = 0x00,
47 StartAction = 0x01,
48 ContinueAction = 0x02,
49 StopAction = 0x03,
50 SelectVideoSource = 0x04,
51 VideoSourceSwitched = 0x05,
52 StoreAsPreset = 0x07,
53 ActivatePreset = 0x08
54 };
55
56 enum PanDirection {
57 NoPan = 0x00,
58 IllegalPan = 0x40,
59 PanLeft = 0x80,
60 PanRight = 0xc0,
61 };
62
63 enum TiltDirection {
64 NoTilt = 0x00,
65 IllegalTilt = 0x10,
66 TiltDown = 0x20,
67 TiltUp = 0x30,
68 };
69
70 enum ZoomDirection {
71 NoZoom = 0x00,
72 IllegalZoom = 0x04,
73 ZoomOut = 0x08,
74 ZoomIn = 0x0c
75 };
76
77 enum FocusDirection {
78 NoFocus = 0x00,
79 IllegalFocus = 0x01,
80 FocusOut = 0x02,
81 FocusIn = 0x03
82 };
83
84 enum VideoMode {
85 MotionVideo = 0x00,
86 IllegalVideoMode = 0x01,
87 NormalResolutionStillImage = 0x02,
88 DoubleResolutionStillImage = 0x03
89 };
90
91 H281_Frame();
92 ~H281_Frame();
93
94 RequestType GetRequestType() const { return (RequestType)(GetClientDataPtr())[0]; }
95 void SetRequestType(RequestType requestType);
96
97 // The following methods are only valid when
98 // request type is either StartAction, ContinueAction or StopAction
99 PanDirection GetPanDirection() const;
100 void SetPanDirection(PanDirection direction);
101
102 TiltDirection GetTiltDirection() const;
103 void SetTiltDirection(TiltDirection direction);
104
105 ZoomDirection GetZoomDirection() const;
106 void SetZoomDirection(ZoomDirection direction);
107
108 FocusDirection GetFocusDirection() const;
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