- hdd-menu: add possibility to label devices; ...

inspired by 58023f866e

 Conflicts:
	data/locale/deutsch.locale
	data/locale/english.locale
	src/system/locals.h
	src/system/locals_intern.h

Signed-off-by: Thilo Graf <dbt@novatux.de>
This commit is contained in:
svenhoefer
2021-01-24 23:44:22 +01:00
committed by Thilo Graf
parent 706ca15dae
commit e6cc52942b
6 changed files with 142 additions and 13 deletions

View File

@@ -936,22 +936,40 @@ hdd_30min 30 min.
hdd_5min 5 min.
hdd_60min 60 min.
hdd_activate Übernehmen
hdd_allow_set_recdir Erlaube sofort Aufnahmen
hdd_check Dateisystemprüfung
hdd_check_failed Datenträgerprüfung fehlgeschlagen
hdd_extended_settings Erweiterte Einstellungen
hdd_fast Schnell
hdd_format Formatiere Datenträger
hdd_format_failed Formatierung fehlgeschlagen! Stellen Sie sicher, dass der Datenträger nicht in Verwendung ist und versuchen Sie es erneut.
hdd_format_on_mount_failed Formatieren bei Einhänge-Fehler
hdd_format_warn Alle Daten auf dem Datenträger werden gelöscht! Formatierung starten?
hdd_fs Dateisystem zum formatieren
hdd_manage Laufwerke verwalten
hdd_label Datenträger-Bezeichnung
hdd_label_hint1 Datenträger-Bezeichnung eingeben und mit Speichern übernehmen
hdd_label_hint2 Nur bei "%s" (Aufnahme-Medium) werden die nötigen Verzeichnisse auf den Datenträger geschrieben
hdd_info_capacity Kapazität
hdd_info_firmware Firmware
hdd_info_head HDD Info
hdd_info_info Ausgelesen mit smartctl
hdd_info_model Modell
hdd_info_model_family Modellreihe
hdd_info_rotation_rate Rotationsrate
hdd_info_sata_version SATA-Version
hdd_info_sector_size Sektorengröße
hdd_info_serial Seriennummer
hdd_info_temperature Temperatur
hdd_info_unknown unbekannt
hdd_manage Datenträger verwalten
hdd_middle Mittel
hdd_mount Mount
hdd_mount_failed Fehler! Bitte Datenträgereinstellungen überprüfen?
hdd_mount_failed Fehler! Bitte Datenträgereinstellungen überprüfen.
hdd_mount_ok Datenträger bereit
hdd_mount_umount Mount/Unmount
hdd_noise Akustikkontrolle (AAM)
hdd_not_found Kein Datenträger
hdd_power Interne HDD-Stromversorgung
hdd_set_recdir Diesen Datenträger für die Aufnahme nutzen?
hdd_settings Datenträger
hdd_sleep Ausschalten nach
@@ -962,6 +980,9 @@ hdd_statfs_recording nur während Aufnahme
hdd_umount Aushängen
hdd_umount_warn Datenträger aushängen
hdd_umounted Gerät entfernt
hdd_wakeup Interne Aufweckfunktion
hdd_wakeup_msg Aufweckfunktion mit Nachricht
hdd_wakeup_start Aufweckfunktion wird gestartet
help_box_title Hilfe
imageinfo.api API:
imageinfo.creator Ersteller:
@@ -1300,14 +1321,21 @@ menu.hint_foot_back Ändern Sie die Fußleisten-Hintergrundfarbe
menu.hint_foot_textcolor Ändern Sie die Fußleisten-Textfarbe
menu.hint_games Zeige Liste der installierten Spiele
menu.hint_hdd Formatierung und Prüfung der Datenträger
menu.hint_hdd_allow_set_recdir Erlaubt das sofortige Einstellen des neuen Datenträgers als Aufnahmemedium
menu.hint_hdd_apply Die veränderten Einstellungen zum Sleep- und Akustik-Modus werden übernommen
menu.hint_hdd_check Überprüft das Dateisystem und führt gegebenfalls eine Reparatur durch (fsck)
menu.hint_hdd_fmt Wählen Sie das Datenträgerformat aus
menu.hint_hdd_format Erstellt eine Partition auf dem Datenträger und formatiert diese
menu.hint_hdd_noise Setzen Sie Parameter für das Automatic Acoustic Management.\nNicht alle Laufwerke unterstützen diese Funktion
menu.hint_hdd_format_on_mount_failed Soll der Datenträger formatiert werden, wenn das Einhängen fehlschlägt?
menu.hint_hdd_info Datenträger-Informationen über Kapazität, Temperatur usw.
menu.hint_hdd_label Geben Sie die Datenträger-Bezeichnung ein
menu.hint_hdd_noise Setzen Sie Parameter für das Automatic Acoustic Management.\nNicht alle Datenträger unterstützen diese Funktion
menu.hint_hdd_power Interne HDD-Stromversorgung für die Coolstream HD1 Boxen aktivieren.
menu.hint_hdd_sleep Dieser Wert definiert, nach wieviel Minuten die Festplatte bei Inaktivität in den Sleep-Modus geschaltet wird
menu.hint_hdd_statfs Legen Sie fest, wann die Aufnahmeverzeichnis-Füllstandsanzeige im InfoViewer (und ggf. am VFD-Display) aktualisiert werden darf
menu.hint_hdd_tools Formatieren Sie die gefundenen Datenträger bzw. überprüfen Sie deren Dateisystem
menu.hint_hdd_wakeup Schaltet die internen Aufweckfunktionen für Festplatten ein oder aus
menu.hint_hdd_wakeup_msg Schaltet die Benachrichtigung über den Start der Aufweckfunktion ein oder aus
menu.hint_head_back Ändern Sie die Titel-Hintergrundfarbe
menu.hint_head_textcolor Ändern Sie die Titel-Textfarbe
menu.hint_imageinfo Informationen über die installierte Software

View File

@@ -936,14 +936,31 @@ hdd_30min 30 min.
hdd_5min 5 min.
hdd_60min 60 min.
hdd_activate Apply settings
hdd_allow_set_recdir Allow recordings immediately
hdd_check Check filesystem
hdd_check_failed Filesystem-check failed!
hdd_extended_settings Extended settings
hdd_fast Fast
hdd_format Format device
hdd_format_failed Formating failed! Make sure device not in use, reboot and try again
hdd_format_on_mount_failed Format device when mount failed
hdd_format_warn All data on device will be lost! Continue with formatting?
hdd_fs Filesystem used to format
hdd_label Device label
hdd_label_hint1 Enter device label and press save
hdd_label_hint2 Only with "%s" (recording medium) the necessary folders will be written to device
hdd_info_capacity Capacity
hdd_info_firmware Firmware
hdd_info_head HDD Info
hdd_info_info Sampled with smartctl
hdd_info_model Model
hdd_info_model_family Model family
hdd_info_rotation_rate Rotation rate
hdd_info_sata_version SATA-version
hdd_info_sector_size Sector size
hdd_info_serial Serial
hdd_info_temperature Temperature
hdd_info_unknown unknown
hdd_manage Manage device
hdd_middle Mid
hdd_mount Mount
@@ -951,7 +968,8 @@ hdd_mount_failed Failed to mount.
hdd_mount_ok Device ready to use.
hdd_mount_umount Mount/Unmount
hdd_noise Acoustic-control (AAM)
hdd_not_found No HDD found
hdd_not_found No device found
hdd_power Internal HDD-power
hdd_set_recdir Use device for recording ?
hdd_settings Data storage
hdd_sleep Switch off after
@@ -962,6 +980,9 @@ hdd_statfs_recording while recording only
hdd_umount Unmount
hdd_umount_warn Unmount device
hdd_umounted Device removed
hdd_wakeup Internal wakeup function
hdd_wakeup_msg Wakeup function with message
hdd_wakeup_start Wakeup starting
help_box_title Help
imageinfo.api API:
imageinfo.creator Creator:
@@ -1300,14 +1321,21 @@ menu.hint_foot_back Change GUI footer background color
menu.hint_foot_textcolor Change GUI window footer text color
menu.hint_games Show list of installed games
menu.hint_hdd Format and check data storage
menu.hint_hdd_allow_set_recdir Allow to set new connected devices as a record medium
menu.hint_hdd_apply Apply sleep/noise parameters
menu.hint_hdd_check Check filesystem (fsck)
menu.hint_hdd_fmt Select the data storage format
menu.hint_hdd_format Create HDD partition and format it
menu.hint_hdd_format_on_mount_failed Format HDD device when mount failed?
menu.hint_hdd_info Device information about capacity, temperature etc.
menu.hint_hdd_label Enter device label
menu.hint_hdd_noise Set Automatic Acoustic Management\nnot all drives support this
menu.hint_hdd_power Activate internal HDD power for Coolstream HD1 boxes
menu.hint_hdd_sleep Select time to stop hdd on inactivity
menu.hint_hdd_statfs Specify when the recording directory fill level in infoviewer and, if available, on VFD, may be updated
menu.hint_hdd_tools Initialize HDD, check filesystem
menu.hint_hdd_wakeup Turns the internal wakeup functions for connected drives on or off
menu.hint_hdd_wakeup_msg Turns the messages while starting the wakeup function on or off
menu.hint_head_back Change GUI title background color
menu.hint_head_textcolor Change GUI window title text color
menu.hint_imageinfo Information about installed software

View File

@@ -53,6 +53,7 @@
#include <gui/widget/msgbox.h>
#include <gui/widget/hintbox.h>
#include <gui/widget/progresswindow.h>
#include <gui/widget/keyboard_input.h>
#include <system/helpers.h>
#include <system/settings.h>
@@ -65,6 +66,8 @@
#define MDEV_MOUNT "/lib/mdev/fs/mount"
#define MOUNT_BASE "/media/"
#define MKFS_LABEL_DEFAULT "records"
#define HDD_NOISE_OPTION_COUNT 4
const CMenuOptionChooser::keyval HDD_NOISE_OPTIONS[HDD_NOISE_OPTION_COUNT] =
{
@@ -87,13 +90,13 @@ const CMenuOptionChooser::keyval HDD_SLEEP_OPTIONS[HDD_SLEEP_OPTION_COUNT] =
};
devtool_s CHDDMenuHandler::devtools[] = {
{ "ext4", "fsck.ext4", "-C 1 -f -y", "mkfs.ext4", "-m 0", false, false },
{ "ext3", "fsck.ext3", "-C 1 -f -y", "mkfs.ext3", "-m 0", false, false },
{ "ext2", "fsck.ext2", "-C 1 -f -y", "mkfs.ext2", "-m 0", false, false },
{ "f2fs", "fsck.f2fs", "", "mkfs.f2fs", "-f", false, false },
{ "vfat", "fsck.vfat", "-a", "mkfs.vfat", "", false, false },
{ "exfat", "fsck.exfat", "", "mkfs.exfat", "", false, false },
{ "xfs", "xfs_repair", "", "mkfs.xfs", "-f", false, false },
{ "ext4", "fsck.ext4", "-C 1 -f -y", "mkfs.ext4", "-m 0", "-L", false, false },
{ "ext3", "fsck.ext3", "-C 1 -f -y", "mkfs.ext3", "-m 0", "-L", false, false },
{ "ext2", "fsck.ext2", "-C 1 -f -y", "mkfs.ext2", "-m 0", "-L", false, false },
{ "f2fs", "fsck.f2fs", "", "mkfs.f2fs", "-f", "-l", false, false },
{ "vfat", "fsck.vfat", "-a", "mkfs.vfat", "", "-n", false, false },
{ "exfat", "fsck.exfat", "", "mkfs.exfat", "", "-n", false, false },
{ "xfs", "xfs_repair", "", "mkfs.xfs", "-f", "-L", false, false },
};
#define FS_MAX (sizeof(CHDDMenuHandler::devtools)/sizeof(devtool_s))
@@ -108,6 +111,7 @@ CHDDMenuHandler::CHDDMenuHandler()
show_menu = false;
in_menu = false;
lock_refresh = false;
mkfs_label = MKFS_LABEL_DEFAULT;
}
CHDDMenuHandler::~CHDDMenuHandler()
@@ -644,6 +648,13 @@ int CHDDMenuHandler::showDeviceMenu(std::string dev)
mc->setHint("", LOCALE_MENU_HINT_HDD_FMT);
hddmenu->addItem(mc);
char hint2[1024];
snprintf(hint2, sizeof(hint2)-1, g_Locale->getText(LOCALE_HDD_LABEL_HINT2), MKFS_LABEL_DEFAULT);
CKeyboardInput choseLabel((std::string) g_Locale->getText(LOCALE_HDD_LABEL), &mkfs_label, 0, NULL, NULL, (std::string) g_Locale->getText(LOCALE_HDD_LABEL_HINT1), (std::string) hint2);
mf = new CMenuForwarder(LOCALE_HDD_LABEL, true, mkfs_label, &choseLabel);
mf->setHint("", LOCALE_MENU_HINT_HDD_LABEL);
hddmenu->addItem(mf);
std::string key = "f" + dev;
mf = new CMenuForwarder(LOCALE_HDD_FORMAT, true, "", this, key.c_str());
mf->setHint("", LOCALE_MENU_HINT_HDD_FORMAT);
@@ -1031,7 +1042,10 @@ int CHDDMenuHandler::formatDevice(std::string dev)
std::string devpart = dev + part;
std::string partname = devname + part;
std::string mkfscmd = devtool->mkfs + " " + devtool->mkfs_options + " " + partname;
std::string mkfscmd = devtool->mkfs + " " + devtool->mkfs_options + " ";
if (!devtool->mkfs_labelswitch.empty() && !mkfs_label.empty())
mkfscmd += devtool->mkfs_labelswitch + " \"" + mkfs_label + "\" ";
mkfscmd += partname;
printf("mkfs cmd: [%s]\n", mkfscmd.c_str());
res = ShowMsg(LOCALE_HDD_FORMAT, g_Locale->getText(LOCALE_HDD_FORMAT_WARN), CMsgBox::mbrNo, CMsgBox::mbYes | CMsgBox::mbNo );
@@ -1215,7 +1229,8 @@ _remount:
if (!res) {
res = mount_dev(devpart);
if(res) {
if (res && mkfs_label == MKFS_LABEL_DEFAULT)
{
std::string dst = MOUNT_BASE + devpart;
snprintf(cmd, sizeof(cmd), "%s/movies", dst.c_str());
safe_mkdir(cmd);

View File

@@ -34,6 +34,7 @@ struct devtool_s {
std::string fsck_options;
std::string mkfs;
std::string mkfs_options;
std::string mkfs_labelswitch;
bool fsck_supported;
bool mkfs_supported;
};
@@ -48,6 +49,7 @@ class CHDDMenuHandler : public CMenuTarget
{
private:
int width;
std::string mkfs_label;
std::string mount;
std::string umount;
bool show_menu;

View File

@@ -963,14 +963,31 @@ typedef enum
LOCALE_HDD_5MIN,
LOCALE_HDD_60MIN,
LOCALE_HDD_ACTIVATE,
LOCALE_HDD_ALLOW_SET_RECDIR,
LOCALE_HDD_CHECK,
LOCALE_HDD_CHECK_FAILED,
LOCALE_HDD_EXTENDED_SETTINGS,
LOCALE_HDD_FAST,
LOCALE_HDD_FORMAT,
LOCALE_HDD_FORMAT_FAILED,
LOCALE_HDD_FORMAT_ON_MOUNT_FAILED,
LOCALE_HDD_FORMAT_WARN,
LOCALE_HDD_FS,
LOCALE_HDD_LABEL,
LOCALE_HDD_LABEL_HINT1,
LOCALE_HDD_LABEL_HINT2,
LOCALE_HDD_INFO_CAPACITY,
LOCALE_HDD_INFO_FIRMWARE,
LOCALE_HDD_INFO_HEAD,
LOCALE_HDD_INFO_INFO,
LOCALE_HDD_INFO_MODEL,
LOCALE_HDD_INFO_MODEL_FAMILY,
LOCALE_HDD_INFO_ROTATION_RATE,
LOCALE_HDD_INFO_SATA_VERSION,
LOCALE_HDD_INFO_SECTOR_SIZE,
LOCALE_HDD_INFO_SERIAL,
LOCALE_HDD_INFO_TEMPERATURE,
LOCALE_HDD_INFO_UNKNOWN,
LOCALE_HDD_MANAGE,
LOCALE_HDD_MIDDLE,
LOCALE_HDD_MOUNT,
@@ -979,6 +996,7 @@ typedef enum
LOCALE_HDD_MOUNT_UMOUNT,
LOCALE_HDD_NOISE,
LOCALE_HDD_NOT_FOUND,
LOCALE_HDD_POWER,
LOCALE_HDD_SET_RECDIR,
LOCALE_HDD_SETTINGS,
LOCALE_HDD_SLEEP,
@@ -989,6 +1007,9 @@ typedef enum
LOCALE_HDD_UMOUNT,
LOCALE_HDD_UMOUNT_WARN,
LOCALE_HDD_UMOUNTED,
LOCALE_HDD_WAKEUP,
LOCALE_HDD_WAKEUP_MSG,
LOCALE_HDD_WAKEUP_START,
LOCALE_HELP_BOX_TITLE,
LOCALE_IMAGEINFO_API,
LOCALE_IMAGEINFO_CREATOR,
@@ -1327,14 +1348,21 @@ typedef enum
LOCALE_MENU_HINT_FOOT_TEXTCOLOR,
LOCALE_MENU_HINT_GAMES,
LOCALE_MENU_HINT_HDD,
LOCALE_MENU_HINT_HDD_ALLOW_SET_RECDIR,
LOCALE_MENU_HINT_HDD_APPLY,
LOCALE_MENU_HINT_HDD_CHECK,
LOCALE_MENU_HINT_HDD_FMT,
LOCALE_MENU_HINT_HDD_FORMAT,
LOCALE_MENU_HINT_HDD_FORMAT_ON_MOUNT_FAILED,
LOCALE_MENU_HINT_HDD_INFO,
LOCALE_MENU_HINT_HDD_LABEL,
LOCALE_MENU_HINT_HDD_NOISE,
LOCALE_MENU_HINT_HDD_POWER,
LOCALE_MENU_HINT_HDD_SLEEP,
LOCALE_MENU_HINT_HDD_STATFS,
LOCALE_MENU_HINT_HDD_TOOLS,
LOCALE_MENU_HINT_HDD_WAKEUP,
LOCALE_MENU_HINT_HDD_WAKEUP_MSG,
LOCALE_MENU_HINT_HEAD_BACK,
LOCALE_MENU_HINT_HEAD_TEXTCOLOR,
LOCALE_MENU_HINT_IMAGEINFO,

View File

@@ -963,14 +963,31 @@ const char * locale_real_names[] =
"hdd_5min",
"hdd_60min",
"hdd_activate",
"hdd_allow_set_recdir",
"hdd_check",
"hdd_check_failed",
"hdd_extended_settings",
"hdd_fast",
"hdd_format",
"hdd_format_failed",
"hdd_format_on_mount_failed",
"hdd_format_warn",
"hdd_fs",
"hdd_label",
"hdd_label_hint1",
"hdd_label_hint2",
"hdd_info_capacity",
"hdd_info_firmware",
"hdd_info_head",
"hdd_info_info",
"hdd_info_model",
"hdd_info_model_family",
"hdd_info_rotation_rate",
"hdd_info_sata_version",
"hdd_info_sector_size",
"hdd_info_serial",
"hdd_info_temperature",
"hdd_info_unknown",
"hdd_manage",
"hdd_middle",
"hdd_mount",
@@ -979,6 +996,7 @@ const char * locale_real_names[] =
"hdd_mount_umount",
"hdd_noise",
"hdd_not_found",
"hdd_power",
"hdd_set_recdir",
"hdd_settings",
"hdd_sleep",
@@ -989,6 +1007,9 @@ const char * locale_real_names[] =
"hdd_umount",
"hdd_umount_warn",
"hdd_umounted",
"hdd_wakeup",
"hdd_wakeup_msg",
"hdd_wakeup_start",
"help_box_title",
"imageinfo.api",
"imageinfo.creator",
@@ -1327,14 +1348,21 @@ const char * locale_real_names[] =
"menu.hint_foot_textcolor",
"menu.hint_games",
"menu.hint_hdd",
"menu.hint_hdd_allow_set_recdir",
"menu.hint_hdd_apply",
"menu.hint_hdd_check",
"menu.hint_hdd_fmt",
"menu.hint_hdd_format",
"menu.hint_hdd_format_on_mount_failed",
"menu.hint_hdd_info",
"menu.hint_hdd_label",
"menu.hint_hdd_noise",
"menu.hint_hdd_power",
"menu.hint_hdd_sleep",
"menu.hint_hdd_statfs",
"menu.hint_hdd_tools",
"menu.hint_hdd_wakeup",
"menu.hint_hdd_wakeup_msg",
"menu.hint_head_back",
"menu.hint_head_textcolor",
"menu.hint_imageinfo",