summaryrefslogtreecommitdiff
path: root/noncore/net/opietooth/lib/parser.cc
Unidiff
Diffstat (limited to 'noncore/net/opietooth/lib/parser.cc') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/opietooth/lib/parser.cc43
1 files changed, 33 insertions, 10 deletions
diff --git a/noncore/net/opietooth/lib/parser.cc b/noncore/net/opietooth/lib/parser.cc
index 18d534e..00ec84a 100644
--- a/noncore/net/opietooth/lib/parser.cc
+++ b/noncore/net/opietooth/lib/parser.cc
@@ -13,20 +13,29 @@ namespace {
13 // @eturn 13398 13 // @eturn 13398
14 // tactic find " ( 14 // tactic find " (
15int convert( const QString& line, QString& ret ) { 15int convert( const QString& line, QString& ret ) {
16// qWarning("called");
16 ret = QString::null; 17 ret = QString::null;
17 int i = 0; 18 int i = 0;
18 int pos = line.findRev("\" ("); 19 int pos = line.findRev("\" (");
19 if ( pos > 0 ) { // it shouldn't be at pos 0 20 if ( pos > 0 ) { // it shouldn't be at pos 0
20 ret = line.left(pos-1 ).stripWhiteSpace(); 21 ret = line.left(pos ).stripWhiteSpace();
21 qWarning("ret: %s", ret.latin1() ); 22 // qWarning("ret: %s", ret.latin1() );
22 ret = ret.replace(QRegExp("[\"]"), ""); 23 ret = ret.replace(QRegExp("[\"]"), "");
23 qWarning("ret: %s", ret.latin1() ); 24 //qWarning("ret: %s", ret.latin1() );
24 QString dummy = line.mid(pos + 4 ); 25 QString dummy = line.mid(pos + 5 );
25 qWarning("dummy: %s", dummy.latin1() ); 26 //qWarning("dummy: %s", dummy.latin1() );
26 dummy = dummy.remove( dummy.length() -1, 1 ); // remove the ( 27 dummy = dummy.replace(QRegExp("[)]"), "");
28 //qWarning("dummy: %s", dummy.latin1() );
29// dummy = dummy.remove( dummy.length() -2, 1 ); // remove the )
27 bool ok; 30 bool ok;
28 i = dummy.toInt(&ok, 16 ); 31 i = dummy.toInt(&ok, 16 );
32 //if (ok ) {
33 // qWarning("converted %d", i);
34 //}else qWarning("failed" );
35 //qWarning("exiting");
36 return i;
29 } 37 }
38 //qWarning("output %d", i );
30 return i; 39 return i;
31} 40}
32 41
@@ -45,14 +54,17 @@ Services::ValueList Parser::services() const {
45void Parser::parse( const QString& string) { 54void Parser::parse( const QString& string) {
46 m_list.clear(); 55 m_list.clear();
47 m_complete = true; 56 m_complete = true;
48 QStringList list = QStringList::split('\n', string ); 57 QStringList list = QStringList::split('\n', string,TRUE );
49 QStringList::Iterator it; 58 QStringList::Iterator it;
50 for (it = list.begin(); it != list.end(); ++it ) { 59 for (it = list.begin(); it != list.end(); ++it ) {
60 qWarning("line:%s:line", (*it).latin1() );
51 if ( (*it).startsWith("Browsing") ) continue; 61 if ( (*it).startsWith("Browsing") ) continue;
52 62
53 if ( (*it).isEmpty() ) { // line is empty because a new Service begins 63 if ( (*it).stripWhiteSpace().isEmpty() ) { // line is empty because a new Service begins
64 qWarning("could add");
54 // now see if complete and add 65 // now see if complete and add
55 if (m_complete ) { 66 if (m_complete ) {
67 if (!m_item.serviceName().isEmpty() )
56 m_list.append( m_item ); 68 m_list.append( m_item );
57 Services serv; 69 Services serv;
58 m_item = serv; 70 m_item = serv;
@@ -68,8 +80,17 @@ void Parser::parse( const QString& string) {
68 } 80 }
69 // missed the last one 81 // missed the last one
70 if (m_complete) { 82 if (m_complete) {
83 qWarning("adding");
84 if (!m_item.serviceName().isEmpty() )
71 m_list.append(m_item ); 85 m_list.append(m_item );
72 } 86 }
87 QValueList<Services>::Iterator it2;
88
89 if (m_list.isEmpty() )
90 qWarning("m_list is empty");
91 for (it2 = m_list.begin(); it2 != m_list.end(); ++it2 ) {
92 qWarning("name %s", (*it2).serviceName().latin1() );
93 }
73} 94}
74bool Parser::parseName( const QString& str) { 95bool Parser::parseName( const QString& str) {
75 if (str.startsWith("Service Name:") ) { 96 if (str.startsWith("Service Name:") ) {
@@ -83,13 +104,15 @@ bool Parser::parseRecHandle( const QString& str) {
83 if (str.startsWith("Service RecHandle:" ) ) { 104 if (str.startsWith("Service RecHandle:" ) ) {
84 QString out = str.mid(18 ).stripWhiteSpace(); 105 QString out = str.mid(18 ).stripWhiteSpace();
85 qWarning("out %s", out.latin1() ); 106 qWarning("out %s", out.latin1() );
86 int value = out.toInt(&m_ok, 16 ); 107 int value = out.mid(2).toInt(&m_ok, 16 );
87 if (m_ok && (value != -1) ) 108 if (m_ok && (value != -1) )
88 m_complete = true; 109 m_complete = true;
89 else 110 else
90 m_complete = false; 111 m_complete = false;
91 return true; 112 qWarning("rec handle %d", value);
92 m_item.setRecHandle( value ); 113 m_item.setRecHandle( value );
114 return true;
115
93 } 116 }
94 return false; 117 return false;
95} 118}