Realized that I did need to change the protocol version to make effective use 
of this.  Not sure if I needed to change the BINARY_VERSION as well, so I 
didn't.  

Revised patch (only added the change to MYTH_PROTO_VERSION to 16):

Index: libs/libmyth/mythcontext.h
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmyth/mythcontext.h,v
retrieving revision 1.194
diff -u -r1.194 mythcontext.h
--- libs/libmyth/mythcontext.h	23 Apr 2005 15:56:53 -0000	1.194
+++ libs/libmyth/mythcontext.h	27 Apr 2005 12:06:47 -0000
@@ -163,7 +163,7 @@
 };

 #define MYTH_BINARY_VERSION "0.18.20050423-1"
-#define MYTH_PROTO_VERSION "15"
+#define MYTH_PROTO_VERSION "16"

 extern int print_verbose_messages;

Index: programs/mythbackend/mainserver.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/programs/mythbackend/mainserver.cpp,v
retrieving revision 1.193
diff -u -r1.193 mainserver.cpp
--- programs/mythbackend/mainserver.cpp	13 Apr 2005 21:04:28 -0000	1.193
+++ programs/mythbackend/mainserver.cpp	27 Apr 2005 12:06:49 -0000
@@ -404,7 +404,10 @@
             VERBOSE(VB_ALL, "Bad QUERY_IS_ACTIVE_BACKEND");
         else
             HandleIsActiveBackendQuery(listline, pbs);
-
+    }
+    else if (command == "QUERY_SQL")
+    {
+        HandleSQLQuery(line,pbs);
     }
     else if (command == "SHUTDOWN_NOW")
     {
@@ -2562,6 +2565,41 @@
     SendResponse(pbs->getSocket(), retlist);
 }

+void MainServer::HandleSQLQuery(QString &str,
+                                PlaybackSock *pbs)
+{
+    QStringList retlist;
+
+    if (str.length() < 12)
+    {
+        VERBOSE(VB_ALL,QString("Invalid QUERY_SQL call: %1").arg(str));
+        return;
+    }
+
+    QString qrystr = str.mid(10,str.length());
+    MSqlQuery query(MSqlQuery::InitCon());
+    query.prepare(qrystr);
+    if (query.exec() && query.isActive() && query.numRowsAffected())
+    {
+        while (query.next())
+        {
+            int i = 0;
+            while (query.value(i).isValid())
+            {
+                retlist << query.value(i).toString();
+                i++;
+            }
+        }
+        SendResponse(pbs->getSocket(), retlist);
+       }
+    else
+    {
+        VERBOSE(VB_ALL,QString("QUERY_SQL failed: %1").arg(qrystr));
+    }
+
+}
+
+
 void MainServer::HandleFileTransferQuery(QStringList &slist,
                                          QStringList &commands,
                                          PlaybackSock *pbs)
Index: programs/mythbackend/mainserver.h
===================================================================
RCS file: /var/lib/mythcvs/mythtv/programs/mythbackend/mainserver.h,v
retrieving revision 1.57
diff -u -r1.57 mainserver.h
--- programs/mythbackend/mainserver.h	6 Apr 2005 17:15:51 -0000	1.57
+++ programs/mythbackend/mainserver.h	27 Apr 2005 12:06:49 -0000
@@ -101,6 +101,7 @@
                              PlaybackSock *pbs);
     void HandleLockTuner(PlaybackSock *pbs);
     void HandleFreeTuner(int cardid, PlaybackSock *pbs);
+    void HandleSQLQuery(QString &str, PlaybackSock *pbs);
     void HandleVersion(QSocket *socket, QString version);
     void HandleBackendRefresh(QSocket *socket);
     void HandleQueryLoad(PlaybackSock *pbs);
_______________________________________________
mythtv-dev mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev

Reply via email to