Stop scanning the PDT if we find an specific function when ScanPDT's endFunc parameter is set
diff --git a/rmidevice/rmidevice.cpp b/rmidevice/rmidevice.cpp
index 0b85b55..8e0b25e 100644
--- a/rmidevice/rmidevice.cpp
+++ b/rmidevice/rmidevice.cpp
@@ -253,7 +253,7 @@
 				funcIter->GetQueryBase());
 }
 
-int RMIDevice::ScanPDT()
+int RMIDevice::ScanPDT(int endFunc)
 {
 	int rc;
 	unsigned int page;
@@ -283,6 +283,9 @@
 
 			m_functionList.push_back(func);
 			found = true;
+
+			if (func.GetFunctionNumber() == endFunc)
+				return 0;
 		}
 
 		if (!found)