author | alwin <alwin> | 2005-03-03 22:40:52 (UTC) |
---|---|---|
committer | alwin <alwin> | 2005-03-03 22:40:52 (UTC) |
commit | 6458e3f1f86ab0aadceb3675c38abfbf33f070eb (patch) (side-by-side diff) | |
tree | 9da8d7692485690a827d5095e43c1219e42467e3 | |
parent | e007cb2e4e3627ece4a093bc976debd6366ed1fa (diff) | |
download | opie-6458e3f1f86ab0aadceb3675c38abfbf33f070eb.zip opie-6458e3f1f86ab0aadceb3675c38abfbf33f070eb.tar.gz opie-6458e3f1f86ab0aadceb3675c38abfbf33f070eb.tar.bz2 |
added 2.6 kernel devicenames
ToDo: let it check using OStorage
-rw-r--r-- | core/applets/cardmon/cardmon.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/core/applets/cardmon/cardmon.cpp b/core/applets/cardmon/cardmon.cpp index 53497df..452339c 100644 --- a/core/applets/cardmon/cardmon.cpp +++ b/core/applets/cardmon/cardmon.cpp @@ -162,220 +162,220 @@ void CardMonitor::cardMessage( const QCString & msg, const QByteArray & ) { } else if ( msg == "mtabChanged()" ) { // odebug << "CARDMONAPPLET: mtabchanged" << oendl; getStatusSd(); } } bool CardMonitor::getStatusPcmcia( int showPopUp ) { bool cardWas0 = cardInPcmcia0; // remember last state bool cardWas1 = cardInPcmcia1; QString fileName; // one of these 3 files should exist if ( QFile::exists( "/var/run/stab" ) ) { fileName = "/var/run/stab"; } else if ( QFile::exists( "/var/state/pcmcia/stab" ) ) { fileName = "/var/state/pcmcia/stab"; } else { fileName = "/var/lib/pcmcia/stab"; } QFile f( fileName ); if ( f.open( IO_ReadOnly ) ) { QStringList list; QTextStream stream( &f ); QString streamIn; streamIn = stream.read(); list = QStringList::split( "\n", streamIn ); for ( QStringList::Iterator line = list.begin(); line != list.end(); line++ ) { if ( ( *line ).startsWith( "Socket 0:" ) ) { if ( ( *line ).startsWith( "Socket 0: empty" ) && cardInPcmcia0 ) { cardInPcmcia0 = FALSE; } else if ( !( *line ).startsWith( "Socket 0: empty" ) && !cardInPcmcia0 ) { cardInPcmcia0Name = ( *line ).mid( ( ( *line ).find( ':' ) + 1 ), ( *line ).length() - 9 ); cardInPcmcia0Name.stripWhiteSpace(); cardInPcmcia0 = TRUE; show(); line++; int pos = ( *line ).find( '\t' ) + 1; cardInPcmcia0Type = ( *line ).mid( pos, ( *line ).find( "\t", pos ) - pos ); } } else if ( ( *line ).startsWith( "Socket 1:" ) ) { if ( ( *line ).startsWith( "Socket 1: empty" ) && cardInPcmcia1 ) { cardInPcmcia1 = FALSE; } else if ( !( *line ).startsWith( "Socket 1: empty" ) && !cardInPcmcia1 ) { cardInPcmcia1Name = ( *line ).mid( ( ( *line ).find( ':' ) + 1 ), ( *line ).length() - 9 ); cardInPcmcia1Name.stripWhiteSpace(); cardInPcmcia1 = TRUE; show(); line++; int pos = ( *line ).find( '\t' ) + 1; cardInPcmcia1Type = ( *line ).mid( pos, ( *line ).find( "\t", pos ) - pos ); } } } f.close(); if ( !showPopUp && ( cardWas0 != cardInPcmcia0 || cardWas1 != cardInPcmcia1 ) ) { QString text = QString::null; QString what = QString::null; if ( cardWas0 != cardInPcmcia0 ) { if ( cardInPcmcia0 ) { text += tr( "New card: " ); what = "on"; } else { text += tr( "Ejected: " ); what = "off"; } text += cardInPcmcia0Name; popUp( text, "cardmon/" + cardInPcmcia0Type ); } if ( cardWas1 != cardInPcmcia1 ) { if ( cardInPcmcia1 ) { text += tr( "New card: " ); what = "on"; } else { text += tr( "Ejected: " ); what = "off"; } text += cardInPcmcia1Name; popUp( text, "cardmon/" + cardInPcmcia1Type ); } #ifndef QT_NO_SOUND QSound::play( Resource::findSound( "cardmon/card" + what ) ); #endif } } else { // no file found odebug << "no file found" << oendl; cardInPcmcia0 = FALSE; cardInPcmcia1 = FALSE; } repaint( FALSE ); return ( ( cardWas0 == cardInPcmcia0 && cardWas1 == cardInPcmcia1 ) ? FALSE : TRUE ); } bool CardMonitor::getStatusSd( int showPopUp ) { bool cardWas = cardInSd; // remember last state cardInSd = FALSE; #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) struct mntent *me; FILE *mntfp = setmntent( "/etc/mtab", "r" ); if ( mntfp ) { while ( ( me = getmntent( mntfp ) ) != 0 ) { QString fs = QFile::decodeName( me->mnt_fsname ); //odebug << fs << oendl; if ( fs.left( 14 ) == "/dev/mmc/part1" || fs.left( 7 ) == "/dev/sd" - || fs.left( 9 ) == "/dev/mmcd" ) { + || fs.left( 9 ) == "/dev/mmcd" || fs.left(11) == "/dev/mmcblk" ) { cardInSd = TRUE; cardSdName = fs; show(); } // else { // cardInSd = FALSE; // } } endmntent( mntfp ); } if ( !showPopUp && cardWas != cardInSd ) { QString text = QString::null; QString what = QString::null; if ( cardInSd ) { text += tr("New card: SD/MMC"); what = "on"; } else { text += tr("Ejected: SD/MMC"); what = "off"; } //odebug << "TEXT: " + text << oendl; #ifndef QT_NO_SOUND QSound::play( Resource::findSound( "cardmon/card" + what ) ); #endif popUp( text, "cardmon/ide" ); // XX add SD pic } #else #error "Not on Linux" #endif repaint( FALSE ); return ( ( cardWas == cardInSd ) ? FALSE : TRUE ); } void CardMonitor::paintEvent( QPaintEvent * ) { QPainter p( this ); if ( cardInPcmcia0 || cardInPcmcia1 || cardInSd ) { p.drawPixmap( 0, 0, pm ); show(); } else { //p.eraseRect(rect()); hide(); } } int CardMonitor::position() { return 7; } void CardMonitor::execCommand( const QStringList &strList ) { delete m_process; m_process = 0; if ( m_process == 0 ) { m_process = new OProcess(); for ( QStringList::ConstIterator it = strList.begin(); it != strList.end(); ++it ) { *m_process << *it; } connect(m_process, SIGNAL(processExited(Opie::Core::OProcess*)), this, SLOT( slotExited(Opie::Core::OProcess*))); if(!m_process->start(OProcess::NotifyOnExit, OProcess::AllOutput ) ) { delete m_process; m_process = 0; } } } void CardMonitor::slotExited( OProcess* ) { if( m_process->normalExit() ) { int ret = m_process->exitStatus(); if( ret != 0 ) { if ( m_commandOrig == PCMCIA_Socket1 || m_commandOrig == PCMCIA_Socket2 ) { popUp( tr( "CF/PCMCIA card eject failed!" ) ); } else if ( m_commandOrig == MMC_Socket ) { popUp( tr( "SD/MMC card eject failed!" ) ); } } } } EXPORT_OPIE_APPLET_v1( CardMonitor ) |