summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert McNamara <rmcnamara@mythtv.org>2011-06-19 18:53:27 (GMT)
committer Robert McNamara <rmcnamara@mythtv.org>2011-06-19 19:04:00 (GMT)
commit6fca6fa5258df2452c84f13e2bc58871dd4d99ed (patch)
treebbf9a115fc2b03ceb09f36ef2b67398047f47bac
parent422a88f7c3f17678b8bc9b0a54e5583051674cc4 (diff)
HDHomeRun: Create the right number of tuners for the found device.
Patch by Nick Kelsey from SiliconDust. Since some HDHRs are now single or triple tuners, the assumption that there are two tuners is false. Create a device for each tuner which is actually available on the queried unit.
-rw-r--r--mythtv/libs/libmythtv/cardutil.cpp10
-rw-r--r--mythtv/libs/libmythtv/videosource.cpp17
-rw-r--r--mythtv/libs/libmythtv/videosource.h2
3 files changed, 12 insertions, 17 deletions
diff --git a/mythtv/libs/libmythtv/cardutil.cpp b/mythtv/libs/libmythtv/cardutil.cpp
index 5e15947..ed0a562 100644
--- a/mythtv/libs/libmythtv/cardutil.cpp
+++ b/mythtv/libs/libmythtv/cardutil.cpp
@@ -234,7 +234,7 @@ QStringList CardUtil::ProbeVideoDevices(const QString &rawtype)
return devs;
}
- if (result == 50)
+ if (result >= max_count)
{
VERBOSE(VB_IMPORTANT, "CardUtil::ProbeVideoDevices: "
"Warning: may be > 50 HDHomerun devices");
@@ -250,9 +250,11 @@ QStringList CardUtil::ProbeVideoDevices(const QString &rawtype)
.arg((result_list[i].ip_addr>> 8) & 0xFF)
.arg((result_list[i].ip_addr>> 0) & 0xFF);
- QString hdhrdev = id.toUpper() + " " + ip;
-
- devs.push_back(hdhrdev);
+ for (int tuner = 0; tuner < result_list[i].tuner_count; tuner++)
+ {
+ QString hdhrdev = id.toUpper() + " " + ip + " " + QString("%1").arg(tuner);
+ devs.push_back(hdhrdev);
+ }
}
}
#endif // USING_HDHOMERUN
diff --git a/mythtv/libs/libmythtv/videosource.cpp b/mythtv/libs/libmythtv/videosource.cpp
index 5d7a508..423d299 100644
--- a/mythtv/libs/libmythtv/videosource.cpp
+++ b/mythtv/libs/libmythtv/videosource.cpp
@@ -1337,8 +1337,6 @@ HDHomeRunTunerIndex::HDHomeRunTunerIndex()
{
setLabel(QObject::tr("Tuner"));
setEnabled(false);
- addSelection("0");
- addSelection("1");
connect(this, SIGNAL(valueChanged( const QString&)),
this, SLOT( UpdateDevices(const QString&)));
_oldValue = "";
@@ -1346,7 +1344,7 @@ HDHomeRunTunerIndex::HDHomeRunTunerIndex()
void HDHomeRunTunerIndex::setEnabled(bool e)
{
- TransComboBoxSetting::setEnabled(e);
+ TransLineEditSetting::setEnabled(e);
if (e) {
if (!_oldValue.isEmpty())
setValue(_oldValue);
@@ -1696,8 +1694,9 @@ void HDHomeRunConfigurationGroup::FillDeviceList(void)
{
QString dev = *it;
QStringList devinfo = dev.split(" ");
- QString devid = devinfo.first();
- QString devip = devinfo.last();
+ QString devid = devinfo.at(0);
+ QString devip = devinfo.at(1);
+ QString devtuner = devinfo.at(2);
HDHomeRunDevice tmpdevice;
tmpdevice.deviceid = devid;
@@ -1705,13 +1704,7 @@ void HDHomeRunConfigurationGroup::FillDeviceList(void)
tmpdevice.cardip = devip;
tmpdevice.inuse = false;
tmpdevice.discovered = true;
-
- tmpdevice.cardtuner = "0";
- tmpdevice.mythdeviceid =
- tmpdevice.deviceid + "-" + tmpdevice.cardtuner;
- devicelist[tmpdevice.mythdeviceid] = tmpdevice;
-
- tmpdevice.cardtuner = "1";
+ tmpdevice.cardtuner = devtuner;
tmpdevice.mythdeviceid =
tmpdevice.deviceid + "-" + tmpdevice.cardtuner;
devicelist[tmpdevice.mythdeviceid] = tmpdevice;
diff --git a/mythtv/libs/libmythtv/videosource.h b/mythtv/libs/libmythtv/videosource.h
index ffaba5f..5edd19e 100644
--- a/mythtv/libs/libmythtv/videosource.h
+++ b/mythtv/libs/libmythtv/videosource.h
@@ -823,7 +823,7 @@ class HDHomeRunIP : public TransLineEditSetting
QString _oldValue;
};
-class HDHomeRunTunerIndex : public TransComboBoxSetting
+class HDHomeRunTunerIndex : public TransLineEditSetting
{
Q_OBJECT