From c876d3bbefe0dc00c27ca0c12d29da5874946962 Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Wed, 15 Dec 2021 21:04:28 +0100 Subject: 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 --- utils/rbutilqt/base/playerbuildinfo.h | 123 ++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 utils/rbutilqt/base/playerbuildinfo.h (limited to 'utils/rbutilqt/base/playerbuildinfo.h') diff --git a/utils/rbutilqt/base/playerbuildinfo.h b/utils/rbutilqt/base/playerbuildinfo.h new file mode 100644 index 0000000000..6a88f750ed --- /dev/null +++ b/utils/rbutilqt/base/playerbuildinfo.h @@ -0,0 +1,123 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * + * Copyright (C) 2020 by Dominik Riebeling + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef PLAYERBUILDINFO_H +#define PLAYERBUILDINFO_H + +#include + +#define STATUS_RETIRED 0 +#define STATUS_UNUSABLE 1 +#define STATUS_UNSTABLE 2 +#define STATUS_STABLE 3 + +// Provide information about both player and builds. +// For build info data retrieved from the build server has to be passed. +class PlayerBuildInfo : public QObject +{ + Q_OBJECT + +public: + + enum BuildType { + TypeRelease, + TypeCandidate, + TypeDaily, + TypeDevel, + }; + enum BuildInfo { + BuildUrl, + BuildVersion, + BuildManualUrl, + BuildVoiceUrl, + BuildVoiceLangs, + BuildSourceUrl, + BuildFontUrl, + + DoomUrl, + Duke3DUrl, + PuzzFontsUrl, + QuakeUrl, + Wolf3DUrl, + XWorldUrl, + MidiPatchsetUrl, + }; + enum DeviceInfo { + BuildStatus, + + DisplayName, + BootloaderMethod, + BootloaderName, + BootloaderFile, + BootloaderFilter, + Encoder, + Brand, + PlayerPicture, + + TargetNamesAll, + TargetNamesEnabled, + LanguageInfo, + LanguageList, + UsbIdErrorList, + UsbIdTargetList, + }; + + enum SystemUrl { + BootloaderUrl, + BuildInfoUrl, + GenlangUrl, + ThemesUrl, + ThemesInfoUrl, + RbutilUrl, + }; + + static PlayerBuildInfo* instance(); + + //! Update with build information from server + void setBuildInfo(QString file); + + // Get information about a device. This data does not depend on the build type. + QVariant value(DeviceInfo item, QString target = ""); + + // Get information about a device. Make a numeric match + // (only sensible implementation for USB IDs) + QVariant value(DeviceInfo item, unsigned int match); + + // Get build information for currently selected player. + QVariant value(BuildInfo item, BuildType type); + + // Get fixed download URL information + QVariant value(SystemUrl item); + + QString statusAsString(QString target = ""); + +protected: + explicit PlayerBuildInfo(); + +private: + //! Return a list with all target names (as used internally). + //! @all false filter out all targets with status = disabled. + QStringList targetNames(bool all); + + static PlayerBuildInfo* infoInstance; + QSettings* serverInfo; + QSettings playerInfo; + +}; + +#endif -- cgit v1.2.3