Notify immediately when an external drive connects

This commit is contained in:
Roman Tarasov committed 2026-10-10 18:55:01 +03:00
1 parent f1286f6021
commit b66369a1db
33 files changed
+64

No files matched your search

+2
View File
@@ -76,4 +76,6 @@ static const char *const g_ar_sa[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "تعطّلت اللعبة %s.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "خطأ في اللعبة %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "تم توصيل محرك الأقراص الخارجي %s",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_cs_cz[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Hra %s spadla.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Chyba ve hře %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Externí disk %s připojen.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_da_dk[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Spillet %s gik ned.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Fejl i spillet %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Eksternt drev %s tilsluttet.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_de_de[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Das Spiel %s ist abgestürzt.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Fehler im Spiel %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Externes Laufwerk %s verbunden.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_el_gr[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Το παιχνίδι %s κατέρρευσε.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Σφάλμα στο παιχνίδι %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Ο εξωτερικός δίσκος %s συνδέθηκε.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_en_gb[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Game %s crashed.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Error in game %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "External drive %s connected",
};
+1
View File
@@ -60,4 +60,5 @@ static const char *const g_en_us[SM_L10N_COUNT] = {
[SM_L10N_USB_DISCONNECTED] = "External drive %s disconnected",
[SM_L10N_GAME_CRASHED] = "Game %s crashed.",
[SM_L10N_GAME_ERROR] = "Error in game %s:\n%s",
[SM_L10N_USB_CONNECTED] = "External drive %s connected",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_es_es[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "El juego %s se ha cerrado inesperadamente.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Error en el juego %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Unidad externa %s conectada.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_es_mx[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "El juego %s se cerró inesperadamente.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Error en el juego %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Unidad externa %s conectada.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_fi_fi[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Peli %s kaatui.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Virhe pelissä %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Ulkoinen asema %s yhdistetty.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_fr_ca[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Le jeu %s a planté.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Erreur dans le jeu %s :\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Lecteur externe %s connecté.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_fr_fr[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Le jeu %s a planté.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Erreur dans le jeu %s :\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Lecteur externe %s connecté.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_hu_hu[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "A(z) %s játék összeomlott.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Hiba a(z) %s játékban:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Külső meghajtó csatlakoztatva: %s.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_id_id[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Game %s mengalami crash.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Kesalahan pada game %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Drive eksternal %s tersambung.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_it_it[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Il gioco %s si è arrestato in modo anomalo.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Errore nel gioco %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Unità esterna %s collegata.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_ja_jp[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "ゲーム %s がクラッシュしました。",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "ゲーム %s のエラー:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "外付けドライブ %s が接続されました。",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_ko_kr[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "게임 %s이(가) 비정상 종료되었습니다.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "게임 %s 오류:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "외장 드라이브 %s 연결됨.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_nl_nl[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Game %s is gecrasht.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Fout in game %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Externe schijf %s aangesloten.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_no_no[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Spillet %s krasjet.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Feil i spillet %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Ekstern disk %s tilkoblet.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_pl_pl[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Gra %s uległa awarii.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Błąd w grze %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Dysk zewnętrzny %s podłączony.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_pt_br[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "O jogo %s travou.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Erro no jogo %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Unidade externa %s conectada.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_pt_pt[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "O jogo %s falhou.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Erro no jogo %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Unidade externa %s ligada.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_ro_ro[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Jocul %s s-a blocat.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Eroare în jocul %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Unitatea externă %s a fost conectată.",
};
+3
View File
@@ -14,6 +14,7 @@ static const char *const g_ru_ru[SM_L10N_COUNT] = {
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Не удалось смонтировать оверлей бэкпорта: %s\n%s\n0x%08X",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "К игре %s применён бэкпорт",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "К игре %s применены эмуляторы",
/* English: Backport applied to game: %s\nEmulators updated */
[SM_L10N_GAME_BACKPORTED_EMULATORS_UPDATED] = "К игре %s применён бэкпорт\nЭмуляторы обновлены",
@@ -75,4 +76,6 @@ static const char *const g_ru_ru[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Игра %s аварийно завершилась.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Ошибка в игре %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Внешний диск %s подключён.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_sv_se[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Spelet %s kraschade.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Fel i spelet %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Extern enhet %s ansluten.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_th_th[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "เกม %s หยุดทำงาน",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "ข้อผิดพลาดในเกม %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "เชื่อมต่อไดรฟ์ภายนอก %s แล้ว",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_tr_tr[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "%s oyunu çöktü.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "%s oyununda hata:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Harici sürücü %s bağlandı.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_uk_ua[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Гра %s аварійно завершилася.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Помилка у грі %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Зовнішній диск %s підключено.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_vi_vn[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "Trò chơi %s bị lỗi và thoát.",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "Lỗi trong trò chơi %s:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "Đã kết nối ổ đĩa ngoài %s.",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_zh_cn[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "游戏 %s 崩溃了。",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "游戏 %s 出错:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "外部驱动器 %s 已连接。",
};
+2
View File
@@ -76,4 +76,6 @@ static const char *const g_zh_tw[SM_L10N_COUNT] = {
[SM_L10N_GAME_CRASHED] = "遊戲 %s 當機了。",
/* English: Error in game %s:\n%s */
[SM_L10N_GAME_ERROR] = "遊戲 %s 發生錯誤:\n%s",
/* English: External drive %s connected */
[SM_L10N_USB_CONNECTED] = "外接磁碟機 %s 已連接。",
};
+1
View File
@@ -44,6 +44,7 @@ typedef enum {
SM_L10N_USB_DISCONNECTED,
SM_L10N_STARTUP_WEB,
SM_L10N_GAME_EMULATORS_APPLIED,
SM_L10N_USB_CONNECTED,
SM_L10N_COUNT
} sm_l10n_key_t;
+1
View File
@@ -279,6 +279,7 @@ static bool notify_scanner_usb_mount_change(const char *path, bool force_refresh
usb_root, (unsigned long long)capacity_bytes,
(unsigned long long)available_bytes,
(unsigned long long)block_size);
notify_system_info_l10n(SM_L10N_USB_CONNECTED, usb_root);
return true;
}