summaryrefslogtreecommitdiff
path: root/libopie2
authormickeyl <mickeyl>2005-06-25 15:29:59 (UTC)
committer mickeyl <mickeyl>2005-06-25 15:29:59 (UTC)
commit790aeb8898d635468c2b9e24fd16a70aab64b1dd (patch) (unidiff)
tree72139f02106b88325efbb39fc11f5ccd79ce29fb /libopie2
parent3d434ac35915afe7f7035468ca18656264a91c52 (diff)
downloadopie-790aeb8898d635468c2b9e24fd16a70aab64b1dd.zip
opie-790aeb8898d635468c2b9e24fd16a70aab64b1dd.tar.gz
opie-790aeb8898d635468c2b9e24fd16a70aab64b1dd.tar.bz2
- fix logic in isEmpty() and isSuspended()
- add convenience API productIdentityVendor()
Diffstat (limited to 'libopie2') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/linux/opcmciasystem.cpp13
-rw-r--r--libopie2/opiecore/linux/opcmciasystem.h8
2 files changed, 16 insertions, 5 deletions
diff --git a/libopie2/opiecore/linux/opcmciasystem.cpp b/libopie2/opiecore/linux/opcmciasystem.cpp
index a5725f1..21c5a84 100644
--- a/libopie2/opiecore/linux/opcmciasystem.cpp
+++ b/libopie2/opiecore/linux/opcmciasystem.cpp
@@ -274,12 +274,13 @@ const OPcmciaSocket::OPcmciaSocketCardStatus OPcmciaSocket::status() const
274 cs_status_t cs_status; 274 cs_status_t cs_status;
275 cs_status.Function = 0; 275 cs_status.Function = 0;
276 int result = ::ioctl( _fd, DS_GET_STATUS, &cs_status ); 276 int result = ::ioctl( _fd, DS_GET_STATUS, &cs_status );
277 if ( result != 0 ) 277 if ( result != 0 )
278 { 278 {
279 qWarning( "OPcmciaSocket::status() - DS_GET_STATUS failed (%s)", strerror( errno ) ); 279 qWarning( "OPcmciaSocket::status() - DS_GET_STATUS failed (%s)", strerror( errno ) );
280 // return ( errno == -ENODEV ) ? Empty : Unknown;
280 return Unknown; 281 return Unknown;
281 } 282 }
282 else 283 else
283 { 284 {
284 qDebug( " card status = 0x%08x", cs_status.CardState ); 285 qDebug( " card status = 0x%08x", cs_status.CardState );
285 qDebug( " socket status = 0x%08x", cs_status.SocketState ); 286 qDebug( " socket status = 0x%08x", cs_status.SocketState );
@@ -293,19 +294,19 @@ bool OPcmciaSocket::isUnsupported() const
293 return ( strcmp( name(), "unsupported card" ) == 0 ); 294 return ( strcmp( name(), "unsupported card" ) == 0 );
294} 295}
295 296
296 297
297bool OPcmciaSocket::isEmpty() const 298bool OPcmciaSocket::isEmpty() const
298{ 299{
299 return ! status() && ( Occupied || OccupiedCardBus ); 300 return !(status() & ( Occupied | OccupiedCardBus ));
300} 301}
301 302
302 303
303bool OPcmciaSocket::isSuspended() const 304bool OPcmciaSocket::isSuspended() const
304{ 305{
305 return status() && Suspended; 306 return status() & Suspended;
306} 307}
307 308
308 309
309bool OPcmciaSocket::eject() 310bool OPcmciaSocket::eject()
310{ 311{
311 return ::ioctl( _fd, DS_EJECT_CARD ) != -1; 312 return ::ioctl( _fd, DS_EJECT_CARD ) != -1;
@@ -333,13 +334,13 @@ bool OPcmciaSocket::resume()
333bool OPcmciaSocket::reset() 334bool OPcmciaSocket::reset()
334{ 335{
335 return ::ioctl( _fd, DS_RESET_CARD ) != -1; 336 return ::ioctl( _fd, DS_RESET_CARD ) != -1;
336} 337}
337 338
338 339
339QStringList OPcmciaSocket::productIdentity() const 340QStringList OPcmciaSocket::productIdentityVector() const
340{ 341{
341 QStringList list; 342 QStringList list;
342 cistpl_vers_1_t *vers = &_ioctlarg.tuple_parse.parse.version_1; 343 cistpl_vers_1_t *vers = &_ioctlarg.tuple_parse.parse.version_1;
343 vers->ns = 0; // number of strings 344 vers->ns = 0; // number of strings
344 if ( getTuple( CISTPL_VERS_1 ) ) 345 if ( getTuple( CISTPL_VERS_1 ) )
345 { 346 {
@@ -355,12 +356,18 @@ QStringList OPcmciaSocket::productIdentity() const
355 list += "<unknown>"; 356 list += "<unknown>";
356 } 357 }
357 return list; 358 return list;
358} 359}
359 360
360 361
362QString OPcmciaSocket::productIdentity() const
363{
364 return productIdentityVector().join( " " ).stripWhiteSpace();
365}
366
367
361QString OPcmciaSocket::manufacturerIdentity() const 368QString OPcmciaSocket::manufacturerIdentity() const
362{ 369{
363 cistpl_manfid_t *manfid = &_ioctlarg.tuple_parse.parse.manfid; 370 cistpl_manfid_t *manfid = &_ioctlarg.tuple_parse.parse.manfid;
364 if ( getTuple( CISTPL_MANFID ) ) 371 if ( getTuple( CISTPL_MANFID ) )
365 { 372 {
366 return QString().sprintf( "0x%04x, 0x%04x", manfid->manf, manfid->card ); 373 return QString().sprintf( "0x%04x, 0x%04x", manfid->manf, manfid->card );
diff --git a/libopie2/opiecore/linux/opcmciasystem.h b/libopie2/opiecore/linux/opcmciasystem.h
index 0fd43cf..23d8c41 100644
--- a/libopie2/opiecore/linux/opcmciasystem.h
+++ b/libopie2/opiecore/linux/opcmciasystem.h
@@ -185,15 +185,19 @@ class OPcmciaSocket : public QObject
185 /** 185 /**
186 * Reset card. @returns true, if operation succeeded 186 * Reset card. @returns true, if operation succeeded
187 * @note: This operation needs root privileges 187 * @note: This operation needs root privileges
188 */ 188 */
189 bool reset(); 189 bool reset();
190 /** 190 /**
191 * @returns a list of product IDs 191 * @returns the product ID vector
192 */
193 QStringList productIdentityVector() const;
194 /**
195 * @returns the product ID string
192 */ 196 */
193 QStringList productIdentity() const; 197 QString productIdentity() const;
194 /** 198 /**
195 * @returns the manufacturer ID string 199 * @returns the manufacturer ID string
196 */ 200 */
197 QString manufacturerIdentity() const; 201 QString manufacturerIdentity() const;
198 /** 202 /**
199 * @returns the function string 203 * @returns the function string