diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2021-12-15 21:04:28 +0100 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2021-12-24 18:05:53 +0100 |
commit | c876d3bbefe0dc00c27ca0c12d29da5874946962 (patch) | |
tree | 69f468a185a369b01998314bc3ecc19b70f4fcaa /utils/rbutilqt/base/rockboxinfo.cpp | |
parent | 6c6f0757d7a902feb293be165d1490c42bc8e7ad (diff) | |
download | rockbox-c876d3bbefe0dc00c27ca0c12d29da5874946962.tar.gz rockbox-c876d3bbefe0dc00c27ca0c12d29da5874946962.zip |
rbutil: Merge rbutil with utils folder.
rbutil uses several components from the utils folder, and can be
considered part of utils too. Having it in a separate folder is an
arbitrary split that doesn't help anymore these days, so merge them.
This also allows other utils to easily use libtools.make without the
need to navigate to a different folder.
Change-Id: I3fc2f4de19e3e776553efb5dea5f779dfec0dc21
Diffstat (limited to 'utils/rbutilqt/base/rockboxinfo.cpp')
-rw-r--r-- | utils/rbutilqt/base/rockboxinfo.cpp | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/utils/rbutilqt/base/rockboxinfo.cpp b/utils/rbutilqt/base/rockboxinfo.cpp new file mode 100644 index 0000000000..f34adbfc2f --- /dev/null +++ b/utils/rbutilqt/base/rockboxinfo.cpp | |||
@@ -0,0 +1,83 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2007 by Dominik Wenger | ||
10 | * | ||
11 | * All files in this archive are subject to the GNU General Public License. | ||
12 | * See the file COPYING in the source tree root for full license agreement. | ||
13 | * | ||
14 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
15 | * KIND, either express or implied. | ||
16 | * | ||
17 | ****************************************************************************/ | ||
18 | |||
19 | #include "rockboxinfo.h" | ||
20 | |||
21 | #include <QtCore> | ||
22 | #include <QDebug> | ||
23 | #include "Logger.h" | ||
24 | |||
25 | RockboxInfo::RockboxInfo(QString mountpoint, QString fname) | ||
26 | { | ||
27 | LOG_INFO() << "Getting version info from rockbox-info.txt"; | ||
28 | QFile file(mountpoint + "/" + fname); | ||
29 | m_success = false; | ||
30 | m_voicefmt = 400; // default value for compatibility | ||
31 | if(!file.exists()) | ||
32 | return; | ||
33 | |||
34 | if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) | ||
35 | return; | ||
36 | |||
37 | // read file contents | ||
38 | QRegExp hash("^Version:\\s+(r?)([0-9a-fM]+)"); | ||
39 | QRegExp version("^Version:\\s+(\\S.*)"); | ||
40 | QRegExp release("^Version:\\s+([0-9\\.]+)\\s*$"); | ||
41 | QRegExp target("^Target:\\s+(\\S.*)"); | ||
42 | QRegExp features("^Features:\\s+(\\S.*)"); | ||
43 | QRegExp targetid("^Target id:\\s+(\\S.*)"); | ||
44 | QRegExp memory("^Memory:\\s+(\\S.*)"); | ||
45 | QRegExp voicefmt("^Voice format:\\s+(\\S.*)"); | ||
46 | while (!file.atEnd()) | ||
47 | { | ||
48 | QString line = file.readLine().trimmed(); | ||
49 | |||
50 | if(version.indexIn(line) >= 0) { | ||
51 | m_version = version.cap(1); | ||
52 | } | ||
53 | if(release.indexIn(line) >= 0) { | ||
54 | m_release = release.cap(1); | ||
55 | } | ||
56 | if(hash.indexIn(line) >= 0) { | ||
57 | // git hashes are usually at least 7 characters. | ||
58 | // svn revisions are expected to be at least 4 digits. | ||
59 | if(hash.cap(2).size() > 3) | ||
60 | m_revision = hash.cap(2); | ||
61 | } | ||
62 | else if(target.indexIn(line) >= 0) { | ||
63 | m_target = target.cap(1); | ||
64 | } | ||
65 | else if(features.indexIn(line) >= 0) { | ||
66 | m_features = features.cap(1); | ||
67 | } | ||
68 | else if(targetid.indexIn(line) >= 0) { | ||
69 | m_targetid = targetid.cap(1); | ||
70 | } | ||
71 | else if(memory.indexIn(line) >= 0) { | ||
72 | m_ram = memory.cap(1).toInt(); | ||
73 | } | ||
74 | else if(voicefmt.indexIn(line) >= 0) { | ||
75 | m_voicefmt = voicefmt.cap(1).toInt(); | ||
76 | } | ||
77 | } | ||
78 | |||
79 | file.close(); | ||
80 | m_success = true; | ||
81 | return; | ||
82 | } | ||
83 | |||