diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2020-10-04 11:26:40 +0200 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2020-10-04 11:31:30 +0200 |
commit | 74258fca311b2d7e9d834ab8607f2bd326f67807 (patch) | |
tree | a5eee6ed712e5876f08b2b70e3a96b0c05758b62 | |
parent | 1aa739e3c3d1ce25cdebe285847c3c493756d5d6 (diff) | |
download | rockbox-74258fca311b2d7e9d834ab8607f2bd326f67807.tar.gz rockbox-74258fca311b2d7e9d834ab8607f2bd326f67807.zip |
rbutil: Replace sysinfo filesystem cluster size with type.
The cluster size isn't too useful. Show the filesystem type instead,
since that makes it easier to identify a device not showing up because
of its filesystem type.
Change-Id: I8f58ea23ab90808ab0c37978b211a5470ed8bb8e
-rw-r--r-- | rbutil/rbutilqt/base/utils.cpp | 57 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/utils.h | 2 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/zipinstaller.cpp | 3 | ||||
-rw-r--r-- | rbutil/rbutilqt/sysinfo.cpp | 4 |
4 files changed, 52 insertions, 14 deletions
diff --git a/rbutil/rbutilqt/base/utils.cpp b/rbutil/rbutilqt/base/utils.cpp index 3447320e11..fe35f0c295 100644 --- a/rbutil/rbutilqt/base/utils.cpp +++ b/rbutil/rbutilqt/base/utils.cpp | |||
@@ -135,6 +135,51 @@ QString Utils::resolvePathCase(QString path) | |||
135 | } | 135 | } |
136 | 136 | ||
137 | 137 | ||
138 | QString Utils::filesystemType(QString path) | ||
139 | { | ||
140 | #if defined(Q_OS_LINUX) | ||
141 | FILE *mn = setmntent("/etc/mtab", "r"); | ||
142 | if(!mn) | ||
143 | return QString(""); | ||
144 | |||
145 | struct mntent *ent; | ||
146 | while((ent = getmntent(mn))) { | ||
147 | if(QString(ent->mnt_dir) == path) { | ||
148 | endmntent(mn); | ||
149 | LOG_INFO() << "device type is" << ent->mnt_type; | ||
150 | return QString(ent->mnt_type); | ||
151 | } | ||
152 | } | ||
153 | endmntent(mn); | ||
154 | #endif | ||
155 | |||
156 | #if defined(Q_OS_MACX) || defined(Q_OS_OPENBSD) | ||
157 | int num; | ||
158 | struct statfs *mntinf; | ||
159 | |||
160 | num = getmntinfo(&mntinf, MNT_WAIT); | ||
161 | while(num--) { | ||
162 | if(QString(mntinf->f_mntonname) == path) { | ||
163 | LOG_INFO() << "device type is" << mntinf->f_fstypename; | ||
164 | return QString(mntinf->f_fstypename); | ||
165 | } | ||
166 | mntinf++; | ||
167 | } | ||
168 | #endif | ||
169 | |||
170 | #if defined(Q_OS_WIN32) | ||
171 | wchar_t t[64]; | ||
172 | memset(t, 0, 32); | ||
173 | if(GetVolumeInformationW((LPCWSTR)path.utf16(), | ||
174 | NULL, 0, NULL, NULL, NULL, t, 64)) { | ||
175 | LOG_INFO() << "device type is" << t; | ||
176 | return QString::fromWCharArray(t); | ||
177 | } | ||
178 | #endif | ||
179 | return QString("-"); | ||
180 | } | ||
181 | |||
182 | |||
138 | QString Utils::filesystemName(QString path) | 183 | QString Utils::filesystemName(QString path) |
139 | { | 184 | { |
140 | QString name; | 185 | QString name; |
@@ -218,18 +263,10 @@ qulonglong Utils::filesystemTotal(QString path) | |||
218 | } | 263 | } |
219 | 264 | ||
220 | 265 | ||
221 | qulonglong Utils::filesystemClusterSize(QString path) | ||
222 | { | ||
223 | qulonglong size = filesystemSize(path, FilesystemClusterSize); | ||
224 | LOG_INFO() << "cluster size for" << path << size; | ||
225 | return size; | ||
226 | } | ||
227 | |||
228 | |||
229 | qulonglong Utils::filesystemSize(QString path, enum Utils::Size type) | 266 | qulonglong Utils::filesystemSize(QString path, enum Utils::Size type) |
230 | { | 267 | { |
231 | qulonglong size = 0; | 268 | qulonglong size = 0; |
232 | #if defined(Q_OS_LINUX) || defined(Q_OS_MACX) | 269 | #if defined(Q_OS_LINUX) || defined(Q_OS_MACX) |
233 | // the usage of statfs() is deprecated by the LSB so use statvfs(). | 270 | // the usage of statfs() is deprecated by the LSB so use statvfs(). |
234 | struct statvfs fs; | 271 | struct statvfs fs; |
235 | int ret; | 272 | int ret; |
@@ -281,7 +318,7 @@ qulonglong Utils::filesystemSize(QString path, enum Utils::Size type) | |||
281 | //! \brief searches for a Executable in the Environement Path | 318 | //! \brief searches for a Executable in the Environement Path |
282 | QString Utils::findExecutable(QString name) | 319 | QString Utils::findExecutable(QString name) |
283 | { | 320 | { |
284 | //try autodetect tts | 321 | //try autodetect tts |
285 | #if defined(Q_OS_LINUX) || defined(Q_OS_MACX) || defined(Q_OS_OPENBSD) | 322 | #if defined(Q_OS_LINUX) || defined(Q_OS_MACX) || defined(Q_OS_OPENBSD) |
286 | #if QT_VERSION >= 0x050e00 | 323 | #if QT_VERSION >= 0x050e00 |
287 | QStringList path = QString(getenv("PATH")).split(":", Qt::SkipEmptyParts); | 324 | QStringList path = QString(getenv("PATH")).split(":", Qt::SkipEmptyParts); |
diff --git a/rbutil/rbutilqt/base/utils.h b/rbutil/rbutilqt/base/utils.h index ca9c1d61af..f46f713525 100644 --- a/rbutil/rbutilqt/base/utils.h +++ b/rbutil/rbutilqt/base/utils.h | |||
@@ -44,8 +44,8 @@ public: | |||
44 | static QString resolvePathCase(QString path); | 44 | static QString resolvePathCase(QString path); |
45 | static qulonglong filesystemFree(QString path); | 45 | static qulonglong filesystemFree(QString path); |
46 | static qulonglong filesystemTotal(QString path); | 46 | static qulonglong filesystemTotal(QString path); |
47 | static qulonglong filesystemClusterSize(QString path); | ||
48 | static qulonglong filesystemSize(QString path, enum Size type); | 47 | static qulonglong filesystemSize(QString path, enum Size type); |
48 | static QString filesystemType(QString path); | ||
49 | static QString findExecutable(QString name); | 49 | static QString findExecutable(QString name); |
50 | static QString checkEnvironment(bool permission); | 50 | static QString checkEnvironment(bool permission); |
51 | static int compareVersionStrings(QString s1, QString s2); | 51 | static int compareVersionStrings(QString s1, QString s2); |
diff --git a/rbutil/rbutilqt/base/zipinstaller.cpp b/rbutil/rbutilqt/base/zipinstaller.cpp index caf1b52945..6c111a314d 100644 --- a/rbutil/rbutilqt/base/zipinstaller.cpp +++ b/rbutil/rbutilqt/base/zipinstaller.cpp | |||
@@ -139,7 +139,8 @@ void ZipInstaller::downloadDone(bool error) | |||
139 | // some room for operating (also includes calculation mistakes due to | 139 | // some room for operating (also includes calculation mistakes due to |
140 | // cluster sizes on the player). | 140 | // cluster sizes on the player). |
141 | if((qint64)Utils::filesystemFree(m_mountpoint) | 141 | if((qint64)Utils::filesystemFree(m_mountpoint) |
142 | < (zip.totalUncompressedSize(Utils::filesystemClusterSize(m_mountpoint)) | 142 | < (zip.totalUncompressedSize( |
143 | Utils::filesystemSize(m_mountpoint, Utils::FilesystemClusterSize)) | ||
143 | + 1000000)) { | 144 | + 1000000)) { |
144 | emit logItem(tr("Not enough disk space! Aborting."), LOGERROR); | 145 | emit logItem(tr("Not enough disk space! Aborting."), LOGERROR); |
145 | emit logProgress(1, 1); | 146 | emit logProgress(1, 1); |
diff --git a/rbutil/rbutilqt/sysinfo.cpp b/rbutil/rbutilqt/sysinfo.cpp index 75ade2438f..9160ce9d9a 100644 --- a/rbutil/rbutilqt/sysinfo.cpp +++ b/rbutil/rbutilqt/sysinfo.cpp | |||
@@ -65,14 +65,14 @@ QString Sysinfo::getInfo(Sysinfo::InfoType type) | |||
65 | info += "<table>"; | 65 | info += "<table>"; |
66 | info += "<tr><td>" + tr("Mountpoint") + "</td><td>" + tr("Label") | 66 | info += "<tr><td>" + tr("Mountpoint") + "</td><td>" + tr("Label") |
67 | + "</td><td>" + tr("Free") + "</td><td>" + tr("Total") + "</td><td>" | 67 | + "</td><td>" + tr("Free") + "</td><td>" + tr("Total") + "</td><td>" |
68 | + tr("Cluster Size") + "</td></tr>"; | 68 | + tr("Type") + "</td><td></tr>"; |
69 | for(int i = 0; i < drives.size(); i++) { | 69 | for(int i = 0; i < drives.size(); i++) { |
70 | info += tr("<tr><td>%1</td><td>%4</td><td>%2 GiB</td><td>%3 GiB</td><td>%5</td></tr>") | 70 | info += tr("<tr><td>%1</td><td>%4</td><td>%2 GiB</td><td>%3 GiB</td><td>%5</td></tr>") |
71 | .arg(QDir::toNativeSeparators(drives.at(i))) | 71 | .arg(QDir::toNativeSeparators(drives.at(i))) |
72 | .arg((double)Utils::filesystemFree(drives.at(i)) / (1<<30), 0, 'f', 2) | 72 | .arg((double)Utils::filesystemFree(drives.at(i)) / (1<<30), 0, 'f', 2) |
73 | .arg((double)Utils::filesystemTotal(drives.at(i)) / (1<<30), 0, 'f', 2) | 73 | .arg((double)Utils::filesystemTotal(drives.at(i)) / (1<<30), 0, 'f', 2) |
74 | .arg(Utils::filesystemName(drives.at(i))) | 74 | .arg(Utils::filesystemName(drives.at(i))) |
75 | .arg(Utils::filesystemClusterSize(drives.at(i))); | 75 | .arg(Utils::filesystemType(drives.at(i))); |
76 | } | 76 | } |
77 | info += "</table>"; | 77 | info += "</table>"; |
78 | info += "<hr/>"; | 78 | info += "<hr/>"; |