summaryrefslogtreecommitdiff
path: root/library/storage.cpp
authorar <ar>2004-01-07 20:22:49 (UTC)
committer ar <ar>2004-01-07 20:22:49 (UTC)
commitdd56d03c7a07ad1cf4f715ba22cbbf6b3d8392e8 (patch) (side-by-side diff)
tree92c625add3c9d24e65c1550bc5449420a85342ce /library/storage.cpp
parent24a62e8789083f446138aebfa11409b73886aa88 (diff)
downloadopie-dd56d03c7a07ad1cf4f715ba22cbbf6b3d8392e8.zip
opie-dd56d03c7a07ad1cf4f715ba22cbbf6b3d8392e8.tar.gz
opie-dd56d03c7a07ad1cf4f715ba22cbbf6b3d8392e8.tar.bz2
new functions getCfPath, getSdPath, getMmcPath returns mountpoints
Diffstat (limited to 'library/storage.cpp') (more/less context) (show whitespace changes)
-rw-r--r--library/storage.cpp139
1 files changed, 114 insertions, 25 deletions
diff --git a/library/storage.cpp b/library/storage.cpp
index f8b75d0..657fb71 100644
--- a/library/storage.cpp
+++ b/library/storage.cpp
@@ -56,15 +56,18 @@ static bool isCF(const QString& m)
FILE* f = fopen("/var/run/stab", "r");
if (!f) f = fopen("/var/state/pcmcia/stab", "r");
if (!f) f = fopen("/var/lib/pcmcia/stab", "r");
- if ( f ) {
+ if ( f )
+ {
char line[1024];
char devtype[80];
char devname[80];
- while ( fgets( line, 1024, f ) ) {
+ while ( fgets( line, 1024, f ) )
+ {
// 0 ide ide-cs 0 hda 3 0
if ( sscanf(line,"%*d %s %*s %*s %s", devtype, devname )==2 )
{
- if ( QString(devtype) == "ide" && m.find(devname)>0 ) {
+ if ( QString(devtype) == "ide" && m.find(devname)>0 )
+ {
fclose(f);
return TRUE;
}
@@ -106,7 +109,8 @@ StorageInfo::StorageInfo( QObject *parent )
*/
const FileSystem *StorageInfo::fileSystemOf( const QString &filename )
{
- for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) {
+ for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i)
+ {
if ( filename.startsWith( (*i)->path() ) )
return (*i);
}
@@ -139,8 +143,10 @@ void StorageInfo::update()
QStringList curfs;
bool rebuild = FALSE;
int n=0;
- if ( mntfp ) {
- while ( (me = getmntent( mntfp )) != 0 ) {
+ if ( mntfp )
+ {
+ while ( (me = getmntent( mntfp )) != 0 )
+ {
QString fs = me->mnt_fsname;
if ( fs.left(7)=="/dev/hd" || fs.left(7)=="/dev/sd"
|| fs.left(8)=="/dev/mtd" || fs.left(9) == "/dev/mmcd"
@@ -153,8 +159,10 @@ void StorageInfo::update()
//qDebug("-->fs %s opts %s", fs.latin1(), me->mnt_opts );
curfs.append( me->mnt_dir );
bool found = FALSE;
- for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) {
- if ( (*i)->disk() == fs ) {
+ for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i)
+ {
+ if ( (*i)->disk() == fs )
+ {
found = TRUE;
break;
}
@@ -165,29 +173,39 @@ void StorageInfo::update()
}
endmntent( mntfp );
}
- if ( rebuild || n != (int)mFileSystems.count() ) {
+ if ( rebuild || n != (int)mFileSystems.count() )
+ {
mFileSystems.clear();
QStringList::ConstIterator it=curdisks.begin();
QStringList::ConstIterator fsit=curfs.begin();
QStringList::ConstIterator optsIt=curopts.begin();
- for (; it!=curdisks.end(); ++it, ++fsit, ++optsIt) {
+ for (; it!=curdisks.end(); ++it, ++fsit, ++optsIt)
+ {
QString opts = *optsIt;
QString disk = *it;
QString humanname;
bool removable = FALSE;
- if ( isCF(disk) ) {
+ if ( isCF(disk) )
+ {
humanname = tr("CF Card");
removable = TRUE;
- } else if ( disk == "/dev/hda1" ) {
+ }
+ else if ( disk == "/dev/hda1" )
+ {
humanname = tr("Hard Disk");
- } else if ( disk.left(9) == "/dev/mmcd" ) {
+ }
+ else if ( disk.left(9) == "/dev/mmcd" )
+ {
humanname = tr("SD Card");
removable = TRUE;
- } else if ( disk.left( 14 ) == "/dev/mmc/part1" ) {
+ }
+ else if ( disk.left( 14 ) == "/dev/mmc/part1" )
+ {
humanname = tr("MMC Card");
removable = TRUE;
- } else if ( disk.left(7) == "/dev/hd" )
+ }
+ else if ( disk.left(7) == "/dev/hd" )
humanname = tr("Hard Disk") + " " + disk;
else if ( disk.left(7) == "/dev/sd" )
humanname = tr("SCSI Hard Disk") + " " + disk;
@@ -207,7 +225,9 @@ void StorageInfo::update()
mFileSystems.append( fs );
}
emit disksChanged();
- } else {
+ }
+ else
+ {
// just update them
for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i)
i.current()->update();
@@ -215,7 +235,8 @@ void StorageInfo::update()
#endif
}
-bool deviceTab( const char *device) {
+bool deviceTab( const char *device)
+{
QString name = device;
bool hasDevice=false;
@@ -223,11 +244,13 @@ bool deviceTab( const char *device) {
// Darwin (MacOS X)
struct statfs** mntbufp;
int count = 0;
- if ( ( count = getmntinfo( mntbufp, MNT_WAIT ) ) == 0 ){
+ if ( ( count = getmntinfo( mntbufp, MNT_WAIT ) ) == 0 )
+ {
qWarning("deviceTab: Error in getmntinfo(): %s",strerror( errno ) );
hasDevice = false;
}
- for( int i = 0; i < count; i++ ){
+ for( int i = 0; i < count; i++ )
+ {
QString deviceName = mntbufp[i]->f_mntfromname;
qDebug(deviceName);
if( deviceName.left( name.length() ) == name )
@@ -237,11 +260,14 @@ bool deviceTab( const char *device) {
// Linux
struct mntent *me;
FILE *mntfp = setmntent( "/etc/mtab", "r" );
- if ( mntfp ) {
- while ( (me = getmntent( mntfp )) != 0 ) {
+ if ( mntfp )
+ {
+ while ( (me = getmntent( mntfp )) != 0 )
+ {
QString deviceName = me->mnt_fsname;
// qDebug(deviceName);
- if( deviceName.left(name.length()) == name) {
+ if( deviceName.left(name.length()) == name)
+ {
hasDevice = true;
}
}
@@ -275,7 +301,7 @@ bool StorageInfo::hasSd()
/*!
* @fn static bool StorageInfo::hasMmc()
- * @brief reutrns whether device has mmc mounted
+ * @brief returns whether device has mmc mounted
*
*/
bool StorageInfo::hasMmc()
@@ -288,6 +314,66 @@ bool StorageInfo::hasMmc()
return hasMmc;
}
+/*!
+* @fn QString StorageInfo::getCfPath()
+* @brief returns the Mount-Path of Cf Card
+*
+*/
+QString StorageInfo::getCfPath()
+{
+ QString r = "";
+
+ for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i)
+ {
+ if ( (*i)->disk().left( 8 ) == "/dev/hda" )
+ {
+ r = (*i)->path();
+ break;
+ }
+ }
+ return r;
+}
+
+/*!
+* @fn QString StorageInfo::getSdPath()
+* @brief returns the Mount-Path of Sd Card
+*
+*/
+QString StorageInfo::getSdPath()
+{
+ QString r = "";
+
+ for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i)
+ {
+ if ( (*i)->disk().left( 9 ) == "/dev/mmcd" )
+ {
+ r = (*i)->path();
+ break;
+ }
+ }
+ return r;
+}
+
+/*!
+* @fn QString StorageInfo::getMmcPath()
+* @brief returns the Mount-Path of Mmc Card
+*
+*/
+QString StorageInfo::getMmcPath()
+{
+ QString r = "";
+
+ for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i)
+ {
+ if ( (*i)->disk().left( 14 ) == "/dev/mmc/part1" )
+ {
+ r = (*i)->path();
+ break;
+ }
+ }
+ return r;
+}
+
/*! \fn const QList<FileSystem> &StorageInfo::fileSystems() const
Returns a list of all available mounted file systems.
@@ -310,11 +396,14 @@ void FileSystem::update()
{
#if defined(_OS_LINUX_) || defined(Q_OS_LINUX)
struct statfs fs;
- if ( !statfs( fspath.latin1(), &fs ) ) {
+ if ( !statfs( fspath.latin1(), &fs ) )
+ {
blkSize = fs.f_bsize;
totalBlks = fs.f_blocks;
availBlks = fs.f_bavail;
- } else {
+ }
+ else
+ {
blkSize = 0;
totalBlks = 0;
availBlks = 0;