35 #include "libmythbase/mythversion.h"
47 const QString &sCardType )
52 throw( QString(
"Database not open while trying to list "
55 QString str =
"SELECT cardid, parentid, videodevice, audiodevice, vbidevice, "
56 "cardtype, defaultinput, audioratelimit, hostname, "
57 "dvb_swfilter, dvb_sat_type, dvb_wait_for_seqstart, "
58 "skipbtaudio, dvb_on_demand, dvb_diseqc_type, "
59 "firewire_speed, firewire_model, firewire_connection, "
60 "signal_timeout, channel_timeout, dvb_tuning_delay, "
61 "contrast, brightness, colour, hue, diseqcid, dvb_eitscan, "
62 "inputname, sourceid, externalcommand, changer_device, "
63 "changer_model, tunechan, startchan, displayname, "
64 "dishnet_eit, recpriority, quicktune, schedorder, "
65 "livetvorder, reclimit, schedgroup "
68 if (!sHostName.isEmpty())
69 str +=
" WHERE hostname = :HOSTNAME";
70 else if (!sCardType.isEmpty())
71 str +=
" WHERE cardtype = :CARDTYPE";
73 if (!sHostName.isEmpty() && !sCardType.isEmpty())
74 str +=
" AND cardtype = :CARDTYPE";
78 if (!sHostName.isEmpty())
80 if (!sCardType.isEmpty())
86 throw( QString(
"Database Error executing query." ));
100 pCaptureCard->setCardId ( query.
value(0).toInt() );
101 pCaptureCard->setParentId ( query.
value(1).toInt() );
102 pCaptureCard->setVideoDevice ( query.
value(2).toString() );
103 pCaptureCard->setAudioDevice ( query.
value(3).toString() );
104 pCaptureCard->setVBIDevice ( query.
value(4).toString() );
105 pCaptureCard->setCardType ( query.
value(5).toString() );
106 pCaptureCard->setDefaultInput ( query.
value(6).toString() );
107 pCaptureCard->setAudioRateLimit ( query.
value(7).toUInt() );
108 pCaptureCard->setHostName ( query.
value(8).toString() );
109 pCaptureCard->setDVBSWFilter ( query.
value(9).toUInt() );
110 pCaptureCard->setDVBSatType ( query.
value(10).toUInt() );
111 pCaptureCard->setDVBWaitForSeqStart( query.
value(11).toBool() );
112 pCaptureCard->setSkipBTAudio ( query.
value(12).toBool() );
113 pCaptureCard->setDVBOnDemand ( query.
value(13).toBool() );
114 pCaptureCard->setDVBDiSEqCType ( query.
value(14).toUInt() );
115 pCaptureCard->setFirewireSpeed ( query.
value(15).toUInt() );
116 pCaptureCard->setFirewireModel ( query.
value(16).toString() );
117 pCaptureCard->setFirewireConnection( query.
value(17).toUInt() );
118 pCaptureCard->setSignalTimeout ( query.
value(18).toUInt() );
119 pCaptureCard->setChannelTimeout ( query.
value(19).toUInt() );
120 pCaptureCard->setDVBTuningDelay ( query.
value(20).toUInt() );
121 pCaptureCard->setContrast ( query.
value(21).toUInt() );
122 pCaptureCard->setBrightness ( query.
value(22).toUInt() );
123 pCaptureCard->setColour ( query.
value(23).toUInt() );
124 pCaptureCard->setHue ( query.
value(24).toUInt() );
125 pCaptureCard->setDiSEqCId ( query.
value(25).toUInt() );
126 pCaptureCard->setDVBEITScan ( query.
value(26).toBool() );
127 pCaptureCard->setInputName ( query.
value(27).toString() );
128 pCaptureCard->setSourceId ( query.
value(28).toInt() );
129 pCaptureCard->setExternalCommand ( query.
value(29).toString() );
130 pCaptureCard->setChangerDevice ( query.
value(30).toString() );
131 pCaptureCard->setChangerModel ( query.
value(31).toString() );
132 pCaptureCard->setTuneChannel ( query.
value(32).toString() );
133 pCaptureCard->setStartChannel ( query.
value(33).toString() );
134 pCaptureCard->setDisplayName ( query.
value(34).toString() );
135 pCaptureCard->setDishnetEit ( query.
value(35).toBool() );
136 pCaptureCard->setRecPriority ( query.
value(36).toInt() );
137 pCaptureCard->setQuickTune ( query.
value(37).toBool() );
138 pCaptureCard->setSchedOrder ( query.
value(38).toUInt() );
139 pCaptureCard->setLiveTVOrder ( query.
value(39).toUInt() );
140 pCaptureCard->setRecLimit ( query.
value(40).toUInt() );
141 pCaptureCard->setSchedGroup ( query.
value(41).toBool() );
154 throw( QString(
"The Card ID is invalid."));
159 throw( QString(
"Database not open while trying to list "
162 QString str =
"SELECT cardid, parentid, videodevice, audiodevice, vbidevice, "
163 "cardtype, defaultinput, audioratelimit, hostname, "
164 "dvb_swfilter, dvb_sat_type, dvb_wait_for_seqstart, "
165 "skipbtaudio, dvb_on_demand, dvb_diseqc_type, "
166 "firewire_speed, firewire_model, firewire_connection, "
167 "signal_timeout, channel_timeout, dvb_tuning_delay, "
168 "contrast, brightness, colour, hue, diseqcid, dvb_eitscan, "
169 "inputname, sourceid, externalcommand, changer_device, "
170 "changer_model, tunechan, startchan, displayname, "
171 "dishnet_eit, recpriority, quicktune, schedorder, "
172 "livetvorder, reclimit, schedgroup "
173 "from capturecard WHERE cardid = :CARDID";
181 throw( QString(
"Database Error executing query." ));
188 pCaptureCard->setCardId ( query.
value(0).toInt() );
189 pCaptureCard->setParentId ( query.
value(1).toInt() );
190 pCaptureCard->setVideoDevice ( query.
value(2).toString() );
191 pCaptureCard->setAudioDevice ( query.
value(3).toString() );
192 pCaptureCard->setVBIDevice ( query.
value(4).toString() );
193 pCaptureCard->setCardType ( query.
value(5).toString() );
194 pCaptureCard->setDefaultInput ( query.
value(6).toString() );
195 pCaptureCard->setAudioRateLimit ( query.
value(7).toUInt() );
196 pCaptureCard->setHostName ( query.
value(8).toString() );
197 pCaptureCard->setDVBSWFilter ( query.
value(9).toUInt() );
198 pCaptureCard->setDVBSatType ( query.
value(10).toUInt() );
199 pCaptureCard->setDVBWaitForSeqStart( query.
value(11).toBool() );
200 pCaptureCard->setSkipBTAudio ( query.
value(12).toBool() );
201 pCaptureCard->setDVBOnDemand ( query.
value(13).toBool() );
202 pCaptureCard->setDVBDiSEqCType ( query.
value(14).toUInt() );
203 pCaptureCard->setFirewireSpeed ( query.
value(15).toUInt() );
204 pCaptureCard->setFirewireModel ( query.
value(16).toString() );
205 pCaptureCard->setFirewireConnection( query.
value(17).toUInt() );
206 pCaptureCard->setSignalTimeout ( query.
value(18).toUInt() );
207 pCaptureCard->setChannelTimeout ( query.
value(19).toUInt() );
208 pCaptureCard->setDVBTuningDelay ( query.
value(20).toUInt() );
209 pCaptureCard->setContrast ( query.
value(21).toUInt() );
210 pCaptureCard->setBrightness ( query.
value(22).toUInt() );
211 pCaptureCard->setColour ( query.
value(23).toUInt() );
212 pCaptureCard->setHue ( query.
value(24).toUInt() );
213 pCaptureCard->setDiSEqCId ( query.
value(25).toUInt() );
214 pCaptureCard->setDVBEITScan ( query.
value(26).toBool() );
215 pCaptureCard->setInputName ( query.
value(27).toString() );
216 pCaptureCard->setSourceId ( query.
value(28).toInt() );
217 pCaptureCard->setExternalCommand ( query.
value(29).toString() );
218 pCaptureCard->setChangerDevice ( query.
value(30).toString() );
219 pCaptureCard->setChangerModel ( query.
value(31).toString() );
220 pCaptureCard->setTuneChannel ( query.
value(32).toString() );
221 pCaptureCard->setStartChannel ( query.
value(33).toString() );
222 pCaptureCard->setDisplayName ( query.
value(34).toString() );
223 pCaptureCard->setDishnetEit ( query.
value(35).toBool() );
224 pCaptureCard->setRecPriority ( query.
value(36).toInt() );
225 pCaptureCard->setQuickTune ( query.
value(37).toBool() );
226 pCaptureCard->setSchedOrder ( query.
value(38).toUInt() );
227 pCaptureCard->setLiveTVOrder ( query.
value(39).toUInt() );
228 pCaptureCard->setRecLimit ( query.
value(40).toUInt() );
229 pCaptureCard->setSchedGroup ( query.
value(41).toBool() );
242 throw( QString(
"The Card ID is invalid."));
254 const QString &sAudioDevice,
255 const QString &sVBIDevice,
256 const QString &sCardType,
257 const uint nAudioRateLimit,
258 const QString &sHostName,
259 const uint nDVBSWFilter,
260 const uint nDVBSatType,
261 bool bDVBWaitForSeqStart,
264 const uint nDVBDiSEqCType,
265 const uint nFirewireSpeed,
266 const QString &sFirewireModel,
267 const uint nFirewireConnection,
268 const uint nSignalTimeout,
269 const uint nChannelTimeout,
270 const uint nDVBTuningDelay,
271 const uint nContrast,
272 const uint nBrightness,
275 const uint nDiSEqCId,
278 if ( sVideoDevice.isEmpty() || sCardType.isEmpty() || sHostName.isEmpty() )
279 throw( QString(
"This API requires at least a video device node, a card type, "
280 "and a hostname." ));
283 sVBIDevice, sCardType, nAudioRateLimit,
284 sHostName, nDVBSWFilter, nDVBSatType, bDVBWaitForSeqStart,
285 bSkipBTAudio, bDVBOnDemand, nDVBDiSEqCType, nFirewireSpeed,
286 sFirewireModel, nFirewireConnection, std::chrono::milliseconds(nSignalTimeout),
287 std::chrono::milliseconds(nChannelTimeout), nDVBTuningDelay, nContrast, nBrightness,
288 nColour, nHue, nDiSEqCId, bDVBEITScan);
291 throw( QString(
"Unable to create capture device." ));
297 const QString &sSetting,
298 const QString &sValue )
300 if ( nCardId < 1 || sSetting.isEmpty() || sValue.isEmpty() )
301 throw( QString(
"Card ID, Setting Name, and Value are required." ));
310 if ( nCardInputId < 1 )
311 throw( QString(
"The Input ID is invalid."));
319 const uint nSourceId,
320 const QString &sInputName,
321 const QString &sExternalCommand,
322 const QString &sChangerDevice,
323 const QString &sChangerModel,
324 const QString &sHostName,
325 const QString &sTuneChan,
326 const QString &sStartChan,
327 const QString &sDisplayName,
329 const uint nRecPriority,
330 const uint nQuicktune,
331 const uint nSchedOrder,
332 const uint nLiveTVOrder)
334 if ( nCardId < 1 || nSourceId < 1 ||
335 sInputName.isEmpty() || sInputName ==
"None" )
336 throw( QString(
"This API requires at least a card ID, a source ID, "
337 "and an input name." ));
340 throw QString(
" DisplayName is not set or is not unique.");
343 sExternalCommand, sChangerDevice, sChangerModel,
344 sHostName, sTuneChan, sStartChan, sDisplayName,
345 bDishnetEIT, nRecPriority, nQuicktune, nSchedOrder,
352 const QString &sSetting,
353 const QString &sValue )
355 if ( nCardInputId < 1 || sSetting.isEmpty() || sValue.isEmpty() )
356 throw( QString(
"Input ID, Setting Name, and Value are required." ));