12 #include <QStringList>
75 if (
"ERROR_OPEN" == name)
77 if (
"ERROR_UNKNOWN" == name)
79 if (
"ERROR_PROBE" == name)
99 if (
"FIREWIRE" == name)
101 if (
"HDHOMERUN" == name)
103 if (
"FREEBOX" == name)
107 if (
"DVB_S2" == name)
109 if (
"IMPORT" == name)
117 if (
"EXTERNAL" == name)
121 if (
"DVB_T2" == name)
123 if (
"V4L2ENC" == name)
127 return ERROR_UNKNOWN;
133 (rawtype !=
"DVB") && (rawtype !=
"FIREWIRE") &&
134 (rawtype !=
"HDHOMERUN") && (rawtype !=
"FREEBOX") &&
135 (rawtype !=
"IMPORT") && (rawtype !=
"DEMO") &&
136 (rawtype !=
"ASI") && (rawtype !=
"CETON") &&
137 (rawtype !=
"VBOX") && (rawtype !=
"SATIP");
140 static bool IsV4L(
const QString &rawtype)
142 return (rawtype ==
"V4L" || rawtype ==
"MPEG" ||
143 rawtype ==
"HDPVR" || rawtype ==
"GO7007" ||
144 rawtype ==
"MJPEG" || rawtype ==
"V4L2ENC");
149 return (!IsEncoder(rawtype) || rawtype ==
"HDPVR" ||
150 rawtype ==
"EXTERNAL");
156 (rawtype ==
"FIREWIRE") || (rawtype ==
"HDPVR") ||
157 (rawtype ==
"IMPORT") || (rawtype ==
"DEMO") ||
158 (rawtype ==
"GO7007") || (rawtype ==
"MJPEG");
160 static QString GetScanableInputTypes(
void);
162 static bool IsCableCardPresent(
uint inputid,
163 const QString &inputType);
168 (rawtype ==
"DVB") || (rawtype ==
"HDHOMERUN") ||
169 (rawtype ==
"SATIP");
175 (rawtype ==
"DVB") || (rawtype ==
"HDHOMERUN") ||
176 (rawtype ==
"ASI") || (rawtype ==
"FREEBOX") ||
177 (rawtype ==
"CETON") || (rawtype ==
"EXTERNAL") ||
178 (rawtype ==
"VBOX") || (rawtype ==
"V4L2ENC") ||
179 (rawtype ==
"SATIP");
182 static bool HasTuner(
const QString &rawtype,
const QString & device);
183 static bool IsTunerShared(
uint inputidA,
uint inputidB);
188 (rawtype ==
"DVB") || (rawtype ==
"HDHOMERUN") ||
189 (rawtype ==
"ASI") || (rawtype ==
"CETON") ||
190 (rawtype ==
"EXTERNAL") || (rawtype ==
"SATIP");
196 (rawtype ==
"V4L") || (rawtype ==
"V4L2ENC" ||
203 (rawtype ==
"FIREWIRE") || (rawtype ==
"HDPVR") ||
204 (rawtype ==
"EXTERNAL") || (rawtype ==
"V4L2ENC");
210 (rawtype ==
"FIREWIRE") || (rawtype ==
"HDHOMERUN") ||
211 (rawtype ==
"FREEBOX") || (rawtype ==
"ASI") ||
212 (rawtype ==
"IMPORT") || (rawtype ==
"DEMO") ||
213 (rawtype ==
"CETON") || (rawtype ==
"EXTERNAL") ||
214 (rawtype ==
"VBOX") || (rawtype ==
"SATIP");
219 return !(rawtype ==
"FREEBOX" || rawtype ==
"VBOX");
222 static bool IsVBoxPresent(
uint inputid);
226 static int CreateCaptureCard(
const QString &videodevice,
227 const QString &audiodevice,
228 const QString &vbidevice,
229 const QString &inputtype,
234 bool dvb_wait_for_seqstart,
237 uint dvb_diseqc_type,
239 const QString &firewire_model,
240 uint firewire_connection,
241 std::chrono::milliseconds signal_timeout,
242 std::chrono::milliseconds channel_timeout,
243 uint dvb_tuning_delay,
251 static bool DeleteInput(
uint inputid);
252 static bool DeleteAllInputs(
void);
253 static std::vector<uint> GetInputList(
void);
254 static std::vector<uint> GetSchedInputList(
void);
255 static std::vector<uint> GetLiveTVInputList(
void);
260 std::vector<uint> list = GetInputIDs(videodevice);
266 static std::vector<uint> GetInputIDs(
const QString& videodevice = QString(),
267 const QString& rawtype = QString(),
268 const QString& inputname = QString(),
271 static uint GetChildInputCount(
uint inputid);
272 static std::vector<uint> GetChildInputIDs(
uint inputid);
274 static bool IsInputTypePresent(
const QString &rawtype,
276 static InputTypes GetInputTypes(
void);
277 static QStringList GetInputTypeNames(
uint sourceid);
279 static QStringList GetVideoDevices(
const QString &rawtype,
300 {
return set_on_input(col, inputid, QString::number(val)); }
305 static bool SetStartChannel(
uint inputid,
306 const QString &channum);
309 static int CreateCardInput(
uint inputid,
311 const QString &inputname,
312 const QString &externalcommand,
313 const QString &changer_device,
314 const QString &changer_model,
316 const QString &tunechan,
317 const QString &startchan,
318 const QString &displayname,
327 static std::vector<uint> GetInputIDs(
uint sourceid);
328 static bool GetInputInfo(
InputInfo &input,
329 std::vector<uint> *groupids =
nullptr);
330 static QList<InputInfo> GetAllInputInfo();
331 static QString GetInputName(
uint inputid);
332 static QString GetStartingChannel(
uint inputid);
333 static QString GetDisplayName(
uint inputid);
334 static bool IsUniqueDisplayName(
const QString &name,
335 uint exclude_inputid);
336 static uint GetSourceID(
uint inputid);
339 static uint CreateInputGroup(
const QString &name);
340 static uint CreateDeviceInputGroup(
uint inputid,
343 const QString &device);
344 static uint GetDeviceInputGroup(
uint inputid);
345 static bool LinkInputGroup(
uint inputid,
uint inputgroupid);
346 static bool UnlinkInputGroup(
uint inputid,
uint inputgroupid);
347 static std::vector<uint> GetInputGroups(
uint inputid);
348 static std::vector<uint> GetGroupInputIDs(
uint inputgroupid);
349 static std::vector<uint> GetConflictingInputs(
uint inputid);
351 static QString GetDeviceLabel(
const QString &inputtype,
352 const QString &videodevice);
353 static QString GetDeviceLabel(
uint inputid);
355 static QString ProbeSubTypeName(
uint inputid);
357 static QStringList ProbeVideoInputs(
const QString& device,
358 const QString& inputtype = QString());
359 static QStringList ProbeAudioInputs(
const QString& device,
360 const QString& inputtype = QString());
361 static void GetDeviceInputNames(
const QString &device,
362 const QString &inputtype,
363 QStringList &inputs);
366 static QStringList ProbeVideoDevices(
const QString &rawtype);
367 static void ClearVideoDeviceCache();
370 static uint CloneCard(
uint src_inputid,
uint dst_inputid);
371 static uint AddChildInput(
uint parentid);
372 static QString GetFirewireChangerNode(
uint inputid);
373 static QString GetFirewireChangerModel(
uint inputid);
376 static bool GetTimeouts(
uint inputid,
377 std::chrono::milliseconds &signal_timeout,
378 std::chrono::milliseconds &channel_timeout);
379 static bool IgnoreEncrypted(
uint inputid,
380 const QString &inputname);
381 static bool TVOnly(
uint inputid,
const QString &inputname);
382 static bool IsInNeedOfExternalInputConf(
uint inputid);
383 static uint GetQuickTuning(
uint inputid,
const QString &input_name);
388 {
return "DVB" == GetRawInputType(inputid); }
389 static bool IsDVBInputType(
const QString &inputType);
390 static QStringList ProbeDeliverySystems(
const QString &device);
391 static QStringList ProbeDeliverySystems(
int fd_frontend);
392 static QString ProbeDefaultDeliverySystem(
const QString &device);
393 static QString ProbeDVBType(
const QString &device);
394 static QString ProbeDVBFrontendName(
const QString &device);
395 static bool HasDVBCRCBug(
const QString &device);
396 static std::chrono::milliseconds GetMinSignalMonitoringDelay(
const QString &device);
400 static DTVTunerType ProbeTunerType(
const QString &device);
407 static int SetDefaultDeliverySystem(
uint inputid,
int fd);
408 static int SetDeliverySystem(
uint inputid);
410 static int SetDeliverySystem(
uint inputid,
int fd);
412 static int OpenVideoDevice(
int inputid);
413 static int OpenVideoDevice(
const QString &device);
415 static InputNames GetConfiguredDVBInputs(
const QString &device);
416 static QStringList CapabilitiesToString(uint64_t capabilities);
419 static bool hasV4L2(
int videofd);
420 static bool GetV4LInfo(
int videofd, QString &input, QString &driver,
421 uint32_t &
version, uint32_t &capabilities);
422 static bool GetV4LInfo(
int videofd, QString &input, QString &driver)
426 return GetV4LInfo(videofd, input, driver, d1, d2);
428 static InputNames ProbeV4LVideoInputs(
int videofd,
bool &ok);
429 static InputNames ProbeV4LAudioInputs(
int videofd,
bool &ok);
432 static bool HDHRdoesDVB(
const QString &device);
433 static bool HDHRdoesDVBC(
const QString &device);
434 static QString GetHDHRdesc(
const QString &device);
437 static QString GetVBoxdesc(
const QString &
id,
const QString &ip,
438 const QString &tunerNo,
const QString &tunerType);
441 static int GetASIDeviceNumber(
const QString &device,
442 QString *
error =
nullptr);
444 static uint GetASIBufferSize(
uint device_num,
445 QString *
error =
nullptr);
446 static uint GetASINumBuffers(
uint device_num,
447 QString *
error =
nullptr);
448 static int GetASIMode(
uint device_num,
449 QString *
error =
nullptr);
450 static bool SetASIMode(
uint device_num,
uint mode,
451 QString *
error =
nullptr);
454 static QStringList ProbeV4LVideoInputs(
const QString& device);
455 static QStringList ProbeV4LAudioInputs(
const QString& device);
456 static QStringList ProbeDVBInputs(
const QString& device);