7 #ifndef FIREWIRE_DEVICE_H
8 #define FIREWIRE_DEVICE_H
39 kAVCControlCommand = 0x00,
40 kAVCStatusInquiryCommand = 0x01,
41 kAVCSpecificInquiryCommand = 0x02,
42 kAVCNotifyCommand = 0x03,
43 kAVCGeneralInquiryCommand = 0x04,
45 kAVCNotImplementedStatus = 0x08,
46 kAVCAcceptedStatus = 0x09,
47 kAVCRejectedStatus = 0x0a,
48 kAVCInTransitionStatus = 0x0b,
49 kAVCImplementedStatus = 0x0c,
50 kAVCChangedStatus = 0x0d,
52 kAVCInterimStatus = 0x0f,
53 kAVCResponseImplemented = 0x0c,
59 kAVCSubunitId0 = 0x00,
60 kAVCSubunitId1 = 0x01,
61 kAVCSubunitId2 = 0x02,
62 kAVCSubunitId3 = 0x03,
63 kAVCSubunitId4 = 0x04,
64 kAVCSubunitIdExtended = 0x05,
65 kAVCSubunitIdIgnore = 0x07,
67 kAVCSubunitTypeVideoMonitor = (0x00 << 3),
68 kAVCSubunitTypeAudio = (0x01 << 3),
69 kAVCSubunitTypePrinter = (0x02 << 3),
70 kAVCSubunitTypeDiscRecorder = (0x03 << 3),
71 kAVCSubunitTypeTapeRecorder = (0x04 << 3),
72 kAVCSubunitTypeTuner = (0x05 << 3),
73 kAVCSubunitTypeCA = (0x06 << 3),
74 kAVCSubunitTypeVideoCamera = (0x07 << 3),
75 kAVCSubunitTypePanel = (0x09 << 3),
76 kAVCSubunitTypeBulletinBoard = (0x0a << 3),
77 kAVCSubunitTypeCameraStorage = (0x0b << 3),
78 kAVCSubunitTypeMusic = (0x0c << 3),
79 kAVCSubunitTypeVendorUnique = (0x1c << 3),
80 kAVCSubunitTypeExtended = (0x1e << 3),
81 kAVCSubunitTypeUnit = (0x1f << 3),
88 kAVCUnitPlugInfoOpcode = 0x02,
89 kAVCUnitDigitalOutputOpcode = 0x10,
90 kAVCUnitDigitalInputOpcode = 0x11,
91 kAVCUnitChannelUsageOpcode = 0x12,
92 kAVCUnitOutputPlugSignalFormatOpcode = 0x18,
93 kAVCUnitInputPlugSignalFormatOpcode = 0x19,
94 kAVCUnitConnectAVOpcode = 0x20,
95 kAVCUnitDisconnectAVOpcode = 0x21,
96 kAVCUnitConnectionsOpcode = 0x22,
97 kAVCUnitConnectOpcode = 0x24,
98 kAVCUnitDisconnectOpcode = 0x25,
99 kAVCUnitUnitInfoOpcode = 0x30,
100 kAVCUnitSubunitInfoOpcode = 0x31,
101 kAVCUnitSignalSourceOpcode = 0x1a,
102 kAVCUnitPowerOpcode = 0xb2,
105 kAVCCommonOpenDescriptorOpcode = 0x08,
106 kAVCCommonReadDescriptorOpcode = 0x09,
107 kAVCCommonWriteDescriptorOpcode = 0x0A,
108 kAVCCommonSearchDescriptorOpcode = 0x0B,
109 kAVCCommonObjectNumberSelectOpcode = 0x0D,
110 kAVCCommonPowerOpcode = 0xB2,
111 kAVCCommonReserveOpcode = 0x01,
112 kAVCCommonPlugInfoOpcode = 0x02,
113 kAVCCommonVendorDependentOpcode = 0x00,
116 kAVCPanelPassThrough = 0x7c,
122 kAVCPowerStateOn = 0x70,
123 kAVCPowerStateOff = 0x60,
124 kAVCPowerStateQuery = 0x7f,
129 kAVCPanelKeySelect = 0x00,
130 kAVCPanelKeyUp = 0x01,
131 kAVCPanelKeyDown = 0x02,
132 kAVCPanelKeyLeft = 0x03,
133 kAVCPanelKeyRight = 0x04,
134 kAVCPanelKeyRightUp = 0x05,
135 kAVCPanelKeyRightDown = 0x06,
136 kAVCPanelKeyLeftUp = 0x07,
137 kAVCPanelKeyLeftDown = 0x08,
138 kAVCPanelKeyRootMenu = 0x09,
139 kAVCPanelKeySetupMenu = 0x0A,
140 kAVCPanelKeyContentsMenu = 0x0B,
141 kAVCPanelKeyFavoriteMenu = 0x0C,
142 kAVCPanelKeyExit = 0x0D,
144 kAVCPanelKey0 = 0x20,
145 kAVCPanelKey1 = 0x21,
146 kAVCPanelKey2 = 0x22,
147 kAVCPanelKey3 = 0x23,
148 kAVCPanelKey4 = 0x24,
149 kAVCPanelKey5 = 0x25,
150 kAVCPanelKey6 = 0x26,
151 kAVCPanelKey7 = 0x27,
152 kAVCPanelKey8 = 0x28,
153 kAVCPanelKey9 = 0x29,
154 kAVCPanelKeyDot = 0x2A,
155 kAVCPanelKeyEnter = 0x2B,
156 kAVCPanelKeyClear = 0x2C,
158 kAVCPanelKeyChannelUp = 0x30,
159 kAVCPanelKeyChannelDown = 0x31,
160 kAVCPanelKeyPreviousChannel = 0x32,
161 kAVCPanelKeySoundSelect = 0x33,
162 kAVCPanelKeyInputSelect = 0x34,
163 kAVCPanelKeyDisplayInfo = 0x35,
164 kAVCPanelKeyHelp = 0x36,
165 kAVCPanelKeyPageUp = 0x37,
166 kAVCPanelKeyPageDown = 0x38,
168 kAVCPanelKeyPower = 0x40,
169 kAVCPanelKeyVolumeUp = 0x41,
170 kAVCPanelKeyVolumeDown = 0x42,
171 kAVCPanelKeyMute = 0x43,
172 kAVCPanelKeyPlay = 0x44,
173 kAVCPanelKeyStop = 0x45,
174 kAVCPanelKeyPause = 0x46,
175 kAVCPanelKeyRecord = 0x47,
176 kAVCPanelKeyRewind = 0x48,
177 kAVCPanelKeyFastForward = 0x49,
178 kAVCPanelKeyEject = 0x4a,
179 kAVCPanelKeyForward = 0x4b,
180 kAVCPanelKeyBackward = 0x4c,
182 kAVCPanelKeyAngle = 0x50,
183 kAVCPanelKeySubPicture = 0x51,
185 kAVCPanelKeyTuneFunction = 0x67,
187 kAVCPanelKeyPress = 0x00,
188 kAVCPanelKeyRelease = 0x80,
195 virtual bool OpenPort(
void) = 0;
196 virtual bool ClosePort(
void) = 0;
203 virtual bool SetPowerState(
bool on);
204 virtual bool SetChannel(
const QString &panel_model,
208 virtual bool IsPortOpen(
void)
const = 0;
212 virtual PowerState GetPowerState(
void);
215 static bool IsSTBSupported(
const QString &model);
216 static QString GetModelName(
uint vendor_id,
uint model_id);
217 static std::vector<AVCInfo> GetSTBList(
void);
222 virtual bool SendAVCCommand(
const std::vector<uint8_t> &cmd,
223 std::vector<uint8_t> &result,
225 void SetLastChannel(
uint channel);
226 void ProcessPATPacket(
const TSPacket &tspacket);
227 virtual void BroadcastToListeners(
228 const unsigned char *data,
uint dataSize);
235 bool m_bufferCleared {
true};
246 #endif // FIREWIRE_DEVICE_H