summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/storage.cpp61
-rw-r--r--library/storage.h8
2 files changed, 65 insertions, 4 deletions
diff --git a/library/storage.cpp b/library/storage.cpp
index a7c466d..912b22d 100644
--- a/library/storage.cpp
+++ b/library/storage.cpp
@@ -1,8 +1,9 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) Holger 'zecke' Freyther <freyther@kde.org> 2** Copyright (C) Holger 'zecke' Freyther <freyther@kde.org>
3** Copyright (C) Lorn Potter <llornkcor@handhelds.org>
3** Copyright (C) 2000 Trolltech AS. All rights reserved. 4** Copyright (C) 2000 Trolltech AS. All rights reserved.
4** 5**
5** This file is part of Qtopia Environment. 6** This file is part of Opie Environment.
6** 7**
7** This file may be distributed and/or modified under the terms of the 8** This file may be distributed and/or modified under the terms of the
8** GNU General Public License version 2 as published by the Free Software 9** GNU General Public License version 2 as published by the Free Software
@@ -37,6 +38,10 @@
37 38
38#include <qstringlist.h> 39#include <qstringlist.h>
39 40
41#include <sys/vfs.h>
42#include <mntent.h>
43
44
40static bool isCF(const QString& m) 45static bool isCF(const QString& m)
41{ 46{
42 FILE* f = fopen("/var/run/stab", "r"); 47 FILE* f = fopen("/var/run/stab", "r");
@@ -174,6 +179,60 @@ void StorageInfo::update()
174#endif 179#endif
175} 180}
176 181
182bool deviceTab( const char *device) {
183 QString name = device;
184 bool hasDevice=false;
185 struct mntent *me;
186 FILE *mntfp = setmntent( "/etc/mtab", "r" );
187 if ( mntfp ) {
188 while ( (me = getmntent( mntfp )) != 0 ) {
189 QString deviceName = me->mnt_fsname;
190// qDebug(deviceName);
191 if( deviceName.left(name.length()) == name) {
192 hasDevice = true;
193 }
194 }
195 }
196 endmntent( mntfp );
197 return hasDevice;
198}
199
200/*!
201 * @fn hasCf()
202 * @brief returns whether device has Cf mounted
203 *
204 */
205bool StorageInfo::hasCf()
206{
207 return deviceTab("/dev/hd");
208}
209
210/*!
211 * @fn hasSd()
212 * @brief returns whether device has SD mounted
213 *
214 */
215bool StorageInfo::hasSd()
216{
217 return deviceTab("/dev/mmcd");
218}
219
220/*!
221 * @fn hasMmc()
222 * @brief reutrns whether device has mmc mounted
223 *
224 */
225bool StorageInfo::hasMmc()
226{
227 bool hasMmc=false;
228 if( deviceTab("/dev/mmc/part"))
229 hasMmc=true;
230 if( deviceTab("/dev/mmcd"))
231 hasMmc=true;
232 return hasMmc;
233}
234
235
177//--------------------------------------------------------------------------- 236//---------------------------------------------------------------------------
178 237
179FileSystem::FileSystem( const QString &disk, const QString &path, const QString &name, bool rem, const QString &o ) 238FileSystem::FileSystem( const QString &disk, const QString &path, const QString &name, bool rem, const QString &o )
diff --git a/library/storage.h b/library/storage.h
index 66a9f9d..0a0698f 100644
--- a/library/storage.h
+++ b/library/storage.h
@@ -32,9 +32,11 @@ class StorageInfo : public QObject
32public: 32public:
33 StorageInfo( QObject *parent=0 ); 33 StorageInfo( QObject *parent=0 );
34 34
35 const QList<FileSystem> &fileSystems() const { return mFileSystems; } 35 const QList<FileSystem> &fileSystems() const { return mFileSystems; }
36 const FileSystem *fileSystemOf( const QString &filename ); 36 const FileSystem *fileSystemOf( const QString &filename );
37 37 static bool hasCf();
38 static bool hasSd();
39 static bool hasMmc();
38signals: 40signals:
39 void disksChanged(); 41 void disksChanged();
40 42