[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/work/kdebluetooth-dbus-integration
From:       Tom Patzig <tpatzig () suse ! de>
Date:       2007-04-30 22:22:06
Message-ID: 1177971726.028351.30513.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 659855 by tpatzig:

added Support for HID Info


 M  +17 -85    kbluemon/monitor.cpp  
 M  +2 -0      libkbluetooth/servicerecord.cpp  
 M  +2 -0      libkbluetooth/servicerecord.h  


--- branches/work/kdebluetooth-dbus-integration/kbluemon/monitor.cpp #659854:659855
@@ -34,7 +34,6 @@
 
 
 
-
 Monitor::Monitor() : MonDialog()
 {
 	KBluetooth::DBusInit *dbus = new KBluetooth::DBusInit();
@@ -88,8 +87,18 @@
 			(**it).rssi = rssi;
 			QListViewItem *tmp = listView1->findItem((**it).name,0,Qt::ExactMatch);
 			tmp->setText(1,signal);
+			if ((**it).version == "<i>not available</i>") {
+				
+				(**it).version = adapter->getRemoteVersion(name);
+				(**it).revision = adapter->getRemoteRevision(name);
+				(**it).major_class = adapter->getRemoteMajorClass(name);
+				(**it).manufacturer = adapter->getRemoteManufacturer(name);
+
+			}
 			if (dev_addr->text() == (**it).addr) {
 				strength->setProgress(rssi);
+				if ((**it).version == "<i>not available</i>")
+					chg_details(tmp);	
 			}
 			
 			return;
@@ -155,15 +164,20 @@
 
 		
 			KBluetooth::ServiceRecord record = adapter->getRemoteServiceRecord(add->addr, \
                *each);
-			if ((rx.search( record.name() ) < 0) && (record.name() != ""))
+			if ((rx.search( record.name() ) < 0) && (record.name() != "")) 
 				add->services.push_back( record.name() );
+			
+			if ( record.servId().grep("0x1124").size() >= 1) 
+				
+				add->services.push_back( "Human Interface Device" );
+
 			if (add->devInfo == "" && record.typ() != "")
 				add->devInfo = record.typ();
 			  
 
 				
 		}	
-		if (!add->devInfo)
+		if (!add->devInfo || add->devInfo == "" )
 			add->devInfo = QString("<i>not available</i>");
 	} else {
 		add->services.push_back("no Services discovered");
@@ -173,90 +187,8 @@
 
 
 }
-/*
-void Monitor::getServices(RemoteDevice* add) {
-	bool found = 0;	
 
-	KBluetooth::Adapter::ServiceHandleList dev_serves;
-	KBluetooth::Adapter::ServiceHandleList::iterator each;
-	
-	const char *_address = add->addr.latin1();
-        const char *_match = "";
-	int num_services = 0;
-        Q_UINT32 *services = NULL;
 
-	DBusMessage *reply = NULL;
-	DBusError error;
-	dbus_error_init(&error);
-	path = manager->defaultAdapter();
-	KBluetooth::DBusSignal message("GetRemoteServiceHandles", path.ascii(), \
                INTERFACE_ADAPTER, BLUEZ_SERVICE, conn);
-        message.appendArgs(DBUS_TYPE_STRING, &_address, DBUS_TYPE_STRING, &_match, \
                DBUS_TYPE_INVALID);
-        reply = message.sendWithReply(&error);
-
-	if (reply) {
-	message.getArgs(reply, NULL, DBUS_TYPE_ARRAY, DBUS_TYPE_UINT32, &services, \
                &num_services, DBUS_TYPE_INVALID);
-		for (int i = 0; i < num_services; i++)
-                	dev_serves.append(services[i]);
-
-	dbus_message_unref(reply);
-        } else {
-                if (dbus_error_is_set(&error)) {
-
-                        kdDebug() << "kbluemon: " << __func__ << "(): " << \
                error.message << endl;
-                        dbus_error_free(&error);
-                }
-	
-		add->services.push_back("not available");
-		add->devInfo = QString("<i>not available</i>");
-		return;
-        }
-	
-  //      dbus_message_unref(reply);
-
-
-	if (!dev_serves.empty()) {	
-	
-		for (each = dev_serves.begin(); each!= dev_serves.end(); ++each) {
-
-		
-		kdDebug() << k_funcinfo <<"EACH:" << \
                adapter->getRemoteServiceRecordAsXML(add->addr,*each) << endl;			
-		
-			QDomDocument doc;
-	  		doc.setContent( adapter->getRemoteServiceRecordAsXML(add->addr,*each) );
-  			QDomElement docElement = doc.documentElement();
-  			QDomNode n;
-
-	  		for( n = docElement.firstChild(); !n.isNull(); n = n.nextSibling() ) {
-    				QDomElement e = n.toElement();
-				
-//			kdDebug() << k_funcinfo <<"Stufe1 "<<e.tagName() << endl;
-				if (e.attribute("id") == "0x0101" && !found ) {
-					QDomNodeList list = e.elementsByTagName("text");
-					add->devInfo = list.item(0).toElement().attribute("value");
-					found = 1;
-				
-    				} else if ( e.attribute("id") == "0x0100" ) {
-					QDomNodeList list = e.elementsByTagName("text");
-					for (uint i=0;i <list.count(); ++i) {
-						QString serv = list.item(i).toElement().attribute("value");
-						if (rx.search(serv) < 0) 
-							add->services.push_back(serv);
-//						kdDebug() << k_funcinfo << serv <<endl;
-					}
-				}
-				if (add->devInfo == "") 
-					add->devInfo = QString("<i>not available</i>");
-			}
-		}	
-//		add->services.pop_back();
-	} else 
-		add->services.push_back("no Services discovered");
-
-
-
-}
-*/
-
 void Monitor::chg_name(const QString& add, const QString& name) {
 
 	kdDebug() << k_funcinfo << endl;
--- branches/work/kdebluetooth-dbus-integration/libkbluetooth/servicerecord.cpp \
#659854:659855 @@ -41,6 +41,8 @@
 		
 		if ( e.attribute("id") == "0x0001" ) {
 			mUuid = parseAttributeUuid(e);
+		} else if ( e.attribute("id") == "0x0009" ) {
+			mServId = parseAttributeUuid(e);
 		} else if ( e.attribute("id") == "0x0004" ) {
 			mRfcommChannel = parseAttributeRfcomm(e);
 		} else if ( e.attribute("id") == "0x0100" ) {
--- branches/work/kdebluetooth-dbus-integration/libkbluetooth/servicerecord.h \
#659854:659855 @@ -45,6 +45,7 @@
 		int rfcommChannel() { return mRfcommChannel; };
 		QString name() { return mName; };
 		QStringList uuid() { return mUuid; };
+		QStringList servId() { return mServId; };
 		QString typ() { return mTyp; };
 
 	private:	
@@ -56,6 +57,7 @@
 		QString mName;
 		QString mTyp;
 		QStringList mUuid;
+		QStringList mServId;
 		int mRfcommChannel;
 };
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic