From 54d4977fc51a0253e8df16c4c459593793e10776 Mon Sep 17 00:00:00 2001
From: Andrew <Andrew Van Til>
Date: Mon, 29 Jun 2015 14:24:30 +0100
Subject: [PATCH 2/2] Add support for HDHR tuner locking during recording

---
 mythtv/libs/libmythtv/recorders/hdhrstreamhandler.cpp | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/mythtv/libs/libmythtv/recorders/hdhrstreamhandler.cpp b/mythtv/libs/libmythtv/recorders/hdhrstreamhandler.cpp
index 97596eb..171ba05 100644
--- a/mythtv/libs/libmythtv/recorders/hdhrstreamhandler.cpp
+++ b/mythtv/libs/libmythtv/recorders/hdhrstreamhandler.cpp
@@ -107,7 +107,20 @@ HDHRStreamHandler::HDHRStreamHandler(const QString &device) :
  */
 void HDHRStreamHandler::run(void)
 {
+    int tunerLock = 0;
+    char *error = NULL;
+
     RunProlog();
+    /* Get a tuner lock */
+    tunerLock = hdhomerun_device_tuner_lockkey_request(_hdhomerun_device, &error);
+    if(tunerLock < 1)
+    {
+        LOG(VB_GENERAL, LOG_ERR, LOC +
+            QString("Get tuner lock failed. Aborting. Error: %1").arg(error));
+        _error = true;
+        RunEpilog();
+        return;
+    }
     /* Create TS socket. */
     if (!hdhomerun_device_stream_start(_hdhomerun_device))
     {
@@ -180,6 +193,12 @@ void HDHRStreamHandler::run(void)
     hdhomerun_device_stream_stop(_hdhomerun_device);
     LOG(VB_RECORD, LOG_INFO, LOC + "RunTS(): " + "end");
 
+    if(tunerLock == 1)
+    {
+        LOG(VB_RECORD, LOG_INFO, LOC + "Release tuner lock.");
+        hdhomerun_device_tuner_lockkey_release(_hdhomerun_device);
+    }
+
     SetRunning(false, false, false);
     RunEpilog();
 }
-- 
1.9.1

