Ticket #5736: patch-libmythupnp-filter.diff
File patch-libmythupnp-filter.diff, 5.6 KB (added by , 16 years ago) |
---|
-
upnpcds.h
99 99 } 100 100 101 101 void Add ( CDSObject *pObject ); 102 QString GetResultXML( );102 QString GetResultXML(FilterMap &filter); 103 103 }; 104 104 105 105 ////////////////////////////////////////////////////////////////////////////// -
upnpcdsobjects.cpp
150 150 // 151 151 ///////////////////////////////////////////////////////////////////////////// 152 152 153 QString CDSObject::toXml( )//FilterMap &filter )153 QString CDSObject::toXml( FilterMap &filter ) 154 154 { 155 155 QString sXML; 156 156 Q3TextStream os( sXML, QIODevice::WriteOnly ); 157 157 158 158 os.setEncoding( Q3TextStream::UnicodeUTF8 ); 159 159 160 toXml( os ); //, filter );160 toXml( os , filter ); 161 161 162 162 return( sXML ); 163 163 } … … 166 166 // 167 167 ///////////////////////////////////////////////////////////////////////////// 168 168 169 void CDSObject::toXml( Q3TextStream &os ) //, FilterMap &filter )169 void CDSObject::toXml( Q3TextStream &os , FilterMap &filter ) 170 170 { 171 171 QString sEndTag = ""; 172 bool bFilter = false;172 bool bFilter = true; 173 173 174 // -=>TODO: Need to add Filter Support 174 if (filter.find( "*" ) != filter.end()) 175 bFilter = false; 175 176 176 // if (filter.find( "*" ) != filter.end())177 // bFilter = false;178 179 177 switch( m_eType ) 180 178 { 181 179 case OT_Container: … … 220 218 else 221 219 sName = pProp->m_sName; 222 220 223 if (pProp->m_bRequired || !bFilter ) //|| ( filter.find( sName ) != filter.end())221 if (pProp->m_bRequired || !bFilter || ( filter.find( sName ) != filter.end())) 224 222 { 225 223 os << "<" << sName << ">"; 226 224 os << pProp->m_sValue; … … 258 256 pObject != NULL; 259 257 pObject = m_children.next() ) 260 258 { 261 pObject->toXml( os ); //, filter );259 pObject->toXml( os , filter ); 262 260 } 263 261 264 262 // ---------------------------------------------------------------------- -
upnpcds.cpp
33 33 // 34 34 ///////////////////////////////////////////////////////////////////////////// 35 35 36 QString UPnpCDSExtensionResults::GetResultXML( )36 QString UPnpCDSExtensionResults::GetResultXML(FilterMap &filter) 37 37 { 38 38 QString sXML; 39 39 … … 41 41 pObject != NULL; 42 42 pObject = m_List.next() ) 43 43 { 44 sXML += pObject->toXml( );44 sXML += pObject->toXml(filter); 45 45 } 46 46 47 47 return( sXML ); … … 222 222 VERBOSE(VB_UPNP, QString("UPnpCDS::HandleBrowse ObjectID=%1, ContainerId=%2") 223 223 .arg(request.m_sObjectId) 224 224 .arg(request.m_sContainerID)); 225 226 FilterMap filter = (FilterMap)request.m_sFilter.split(","); 225 227 226 228 if (request.m_sObjectId == "0") 227 229 { … … 244 246 245 247 m_root.SetChildCount( m_extensions.count() ); 246 248 247 sResultXML = m_root.toXml( );249 sResultXML = m_root.toXml(filter); 248 250 249 251 break; 250 252 } … … 285 287 { 286 288 if (pResult->m_eErrorCode == UPnPResult_Success) 287 289 { 288 sResultXML += pResult->GetResultXML( );290 sResultXML += pResult->GetResultXML(filter); 289 291 nNumberReturned ++; 290 292 } 291 293 … … 326 328 nNumberReturned = pResult->m_List.count(); 327 329 nTotalMatches = pResult->m_nTotalMatches; 328 330 nUpdateID = pResult->m_nUpdateID; 329 sResultXML = pResult->GetResultXML( );331 sResultXML = pResult->GetResultXML(filter); 330 332 } 331 333 332 334 delete pResult; … … 340 342 if (eErrorCode == UPnPResult_Success) 341 343 { 342 344 NameValueList list; 343 345 VERBOSE(VB_UPNP, sResultXML); 344 346 QString sResults = DIDL_LITE_BEGIN; 345 347 sResults += sResultXML; 346 348 sResults += DIDL_LITE_END; … … 444 446 445 447 446 448 UPnpCDSExtension *pExtension = m_extensions.first(); 449 450 FilterMap filter = (FilterMap) request.m_sFilter.split(","); 447 451 448 452 //bool bSearchDone = false; 449 453 … … 465 469 nNumberReturned = pResult->m_List.count(); 466 470 nTotalMatches = pResult->m_nTotalMatches; 467 471 nUpdateID = pResult->m_nUpdateID; 468 sResultXML = pResult->GetResultXML( );472 sResultXML = pResult->GetResultXML(filter); 469 473 //bSearchDone = true; 470 474 } 471 475 -
upnpcdsobjects.h
120 120 121 121 typedef Q3PtrList < ContainerClass > Classes; 122 122 123 typedef QStringList FilterMap; 124 123 125 ////////////////////////////////////////////////////////////////////////////// 124 126 125 127 class CDSObject … … 173 175 void SetPropValue( QString sName, QString sValue ); 174 176 QString GetPropValue( QString sName ); 175 177 176 QString toXml ( );177 void toXml ( Q3TextStream &os );178 QString toXml ( FilterMap &filter); 179 void toXml ( Q3TextStream &os, FilterMap &filter ); 178 180 179 181 long GetChildCount(); 180 182 void SetChildCount( long nCount );