chore: update project branding to Citron

Signed-off-by: Zephyron <zephyron@citron-emu.org>
This commit is contained in:
Zephyron
2025-05-06 16:08:59 +10:00
parent bfb82e577c
commit 5e16e20427
122 changed files with 448 additions and 448 deletions

View File

@@ -235,7 +235,7 @@ This would ban both their forum username and their IP address.</source>
<message>
<location filename="../../src/citron/compatdb.ui" line="36"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Should you choose to submit a test case to the &lt;/span&gt;&lt;a href=&quot;https://citron-emu.org/game/&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;citron Compatibility List&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;, The following information will be collected and displayed on the site:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Hardware Information (CPU / GPU / Operating System)&lt;/li&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Which version of citron you are running&lt;/li&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;The connected citron account&lt;/li&gt;&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Si escolliu presentar un cas de prova a la &lt;/span&gt;&lt;a href=&quot;https://citron-emu.org/game/&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;llista de compatibilitat de Yuzu&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;, la informació següent es recollirà i es mostrarà al web:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Informació del maquinari (CPU / GPU / Sistema operatiu)&lt;/li&gt; &lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Quina versió de citron està utilitzant?&lt;/li&gt; &lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;El compte de citron connectat&lt;/li&gt;&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</translation>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Si escolliu presentar un cas de prova a la &lt;/span&gt;&lt;a href=&quot;https://citron-emu.org/game/&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;llista de compatibilitat de Citron&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;, la informació següent es recollirà i es mostrarà al web:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Informació del maquinari (CPU / GPU / Sistema operatiu)&lt;/li&gt; &lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Quina versió de citron està utilitzant?&lt;/li&gt; &lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;El compte de citron connectat&lt;/li&gt;&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/citron/compatdb.ui" line="77"/>

View File

@@ -29,7 +29,7 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:12pt;&quot;&gt;Yuzu je experimentální open source emulátor pro konzoli Nintendo Switch licencován pod licencí GPLv3.0+.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:12pt;&quot;&gt;Citron je experimentální open source emulátor pro konzoli Nintendo Switch licencován pod licencí GPLv3.0+.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:12pt;&quot;&gt;Tento software by neměl být využíván pro hraní her, které nevlastníte.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
@@ -41,7 +41,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/citron/aboutdialog.ui" line="146"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:7pt;&quot;&gt;&amp;quot;Nintendo Switch&amp;quot; is a trademark of Nintendo. citron is not affiliated with Nintendo in any way.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:7pt;&quot;&gt;&amp;quot;Nintendo Switch&amp;quot; je trademark Nintenda. Yuzu nemá s Nintendem nic společného.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:7pt;&quot;&gt;&amp;quot;Nintendo Switch&amp;quot; je trademark Nintenda. Citron nemá s Nintendem nic společného.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
</context>
<context>

View File

@@ -29,7 +29,7 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:12pt;&quot;&gt;Yuzu er en eksperimentel åben emulator til Nintendo Switch, under GPLv3.0+ licensen.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:12pt;&quot;&gt;Citron er en eksperimentel åben emulator til Nintendo Switch, under GPLv3.0+ licensen.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:12pt;&quot;&gt;Denne programvare bør ikke bruges til, at spille spil, du ikke har anskaffet lovlig vis.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
@@ -41,7 +41,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/citron/aboutdialog.ui" line="146"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:7pt;&quot;&gt;&amp;quot;Nintendo Switch&amp;quot; is a trademark of Nintendo. citron is not affiliated with Nintendo in any way.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:7pt;&quot;&gt;&amp;quot;Nintendo Switch&amp;quot; er et varemærke tilhørende Nintendo. Yuzu er ikke tilknyttet Nintendo nogen måde.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:7pt;&quot;&gt;&amp;quot;Nintendo Switch&amp;quot; er et varemærke tilhørende Nintendo. Citron er ikke tilknyttet Nintendo nogen måde.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
</context>
<context>
@@ -2229,7 +2229,7 @@ When a guest attempts to open the controller applet, it is immediately closed.</
<message>
<location filename="../../src/citron/configuration/configure_debug.ui" line="403"/>
<source>Enables citron to check for a working Vulkan environment when the program starts up. Disable this if this is causing issues with external programs seeing citron.</source>
<translation>Gør Yuzu i stand til at kontrollere for et funktionelt Vulkan-miljø, når programmet starter op. Deaktivering af dette forårsager problemer med at eksterne programmer ser Yuzu.</translation>
<translation>Gør Citron i stand til at kontrollere for et funktionelt Vulkan-miljø, når programmet starter op. Deaktivering af dette forårsager problemer med at eksterne programmer ser Citron.</translation>
</message>
<message>
<location filename="../../src/citron/configuration/configure_debug.ui" line="406"/>

View File

@@ -5296,7 +5296,7 @@ Ziehe die Punkte mit deiner Maus, um ihre Position zu ändern. Doppelklicke auf
<message>
<location filename="../../src/citron/main.cpp" line="1836"/>
<source>citron has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://citron-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>Yuzu ist auf einen Fehler gestoßen beim Ausführen des Videokerns.
<translation>Citron ist auf einen Fehler gestoßen beim Ausführen des Videokerns.
Dies ist in der Regel auf veraltete GPU Treiber zurückzuführen, integrierte GPUs eingeschlossen.
Bitte öffnen Sie die Log Datei für weitere Informationen. Für weitere Informationen wie Sie auf die Log Datei zugreifen, öffnen Sie bitte die folgende Seite: &lt;a href=&apos;https://citron-emu.org/help/reference/log-files/&apos;&gt;Wie wird eine Log Datei hochgeladen?&lt;/a&gt;.</translation>
</message>

View File

@@ -5932,7 +5932,7 @@ Por favor, utiliza esta función sólo para instalar actualizaciones y DLCs.</tr
<message>
<location filename="../../src/citron/main.cpp" line="3564"/>
<source>Missing citron Account</source>
<translation>Falta la cuenta de Yuzu</translation>
<translation>Falta la cuenta de Citron</translation>
</message>
<message>
<location filename="../../src/citron/main.cpp" line="3565"/>

View File

@@ -4,7 +4,7 @@
<message>
<location filename="../../src/citron/aboutdialog.ui" line="14"/>
<source>About citron</source>
<translation>Tietoa Yuzu:sta</translation>
<translation>Tietoa Citron:sta</translation>
</message>
<message>
<location filename="../../src/citron/aboutdialog.ui" line="30"/>
@@ -4789,7 +4789,7 @@ Haluatko silti ohittaa tämän ja sulkea?</translation>
<message>
<location filename="../../src/citron/bootmanager.cpp" line="974"/>
<source>citron has not been compiled with OpenGL support.</source>
<translation>Yuzua ei ole koottu OpenGL-yhteensopivuuden kanssa.</translation>
<translation>Citrona ei ole koottu OpenGL-yhteensopivuuden kanssa.</translation>
</message>
<message>
<location filename="../../src/citron/bootmanager.cpp" line="993"/>

View File

@@ -4514,7 +4514,7 @@ UUID : %2</translation>
<message>
<location filename="../../src/citron/configuration/configure_tas.ui" line="17"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Reads controller input from scripts in the same format as TAS-nx scripts.&lt;br/&gt;For a more detailed explanation, please consult the &lt;a href=&quot;https://citron-emu.org/help/feature/tas/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;help page&lt;/span&gt;&lt;/a&gt; on the citron website.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Lit l&apos;entrée du contrôleur à partir des scripts dans le même format que &apos;TAS-nx&apos; &lt;br/&gt; Pour une explication plus détaillée, veuillez consulter le &lt;a href=&quot;https://citron-emu.org/help/feature/tas/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;page d&apos;aide&lt;/span&gt;&lt;/a&gt; sur le site Yuzu.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Lit l&apos;entrée du contrôleur à partir des scripts dans le même format que &apos;TAS-nx&apos; &lt;br/&gt; Pour une explication plus détaillée, veuillez consulter le &lt;a href=&quot;https://citron-emu.org/help/feature/tas/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;page d&apos;aide&lt;/span&gt;&lt;/a&gt; sur le site Citron.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/citron/configuration/configure_tas.ui" line="27"/>
@@ -7399,7 +7399,7 @@ Message de débogage : </translation>
<message>
<location filename="../../src/citron/main.ui" line="379"/>
<source>Open &amp;citron Folder</source>
<translation>Ouvrir le &amp;dossier de Yuzu</translation>
<translation>Ouvrir le &amp;dossier de Citron</translation>
</message>
<message>
<location filename="../../src/citron/main.ui" line="387"/>

View File

@@ -3122,7 +3122,7 @@ Ha egy vendég megpróbálja megnyitni a vezérlő appletet, az azonnal bezárul
<location filename="../../src/citron/configuration/configure_input_advanced.ui" line="2701"/>
<location filename="../../src/citron/configuration/configure_input_advanced.ui" line="2717"/>
<source>Requires restarting citron</source>
<translation>Yuzu újraindítása szükséges</translation>
<translation>Citron újraindítása szükséges</translation>
</message>
<message>
<location filename="../../src/citron/configuration/configure_input_advanced.ui" line="2668"/>

View File

@@ -2763,7 +2763,7 @@ When a guest attempts to open the controller applet, it is immediately closed.</
<message>
<location filename="../../src/citron/configuration/configure_hotkeys.cpp" line="341"/>
<source>An error occurred. Please report this issue on github.</source>
<translation>Errore durante la configurazione. Segnala quest&apos;errore alla pagina Github di Yuzu.</translation>
<translation>Errore durante la configurazione. Segnala quest&apos;errore alla pagina Github di Citron.</translation>
</message>
<message>
<location filename="../../src/citron/configuration/configure_hotkeys.cpp" line="381"/>

View File

@@ -2301,7 +2301,7 @@ When a guest attempts to open the controller applet, it is immediately closed.</
<message>
<location filename="../../src/citron/configuration/configure_debug.ui" line="549"/>
<source>**This will be reset automatically when citron closes.</source>
<translation>**Yuzu .</translation>
<translation>**Citron .</translation>
</message>
<message>
<location filename="../../src/citron/configuration/configure_debug.cpp" line="82"/>

View File

@@ -4625,7 +4625,7 @@ Przeciągnij punkty, aby zmienić pozycję, lub kliknij dwukrotnie komórki tabe
<message>
<location filename="../../src/citron/configuration/configure_touchscreen_advanced.ui" line="26"/>
<source>Warning: The settings in this page affect the inner workings of citron&apos;s emulated touchscreen. Changing them may result in undesirable behavior, such as the touchscreen partially or not working. You should only use this page if you know what you are doing.</source>
<translation>Ostrzeżenie: Ustawienia na tej stronie mają wpływ na działanie emulowanego ekranu dotykowego Yuzu. ch zmiana może spowodować niepożądane zachowanie, takie jak częściowo lub całkowicie nie działający ekran dotykowy. Powinieneś/naś używać tej strony tylko wtedy, gdy wiesz, co robisz.</translation>
<translation>Ostrzeżenie: Ustawienia na tej stronie mają wpływ na działanie emulowanego ekranu dotykowego Citron. ch zmiana może spowodować niepożądane zachowanie, takie jak częściowo lub całkowicie nie działający ekran dotykowy. Powinieneś/naś używać tej strony tylko wtedy, gdy wiesz, co robisz.</translation>
</message>
<message>
<location filename="../../src/citron/configuration/configure_touchscreen_advanced.ui" line="52"/>
@@ -5878,7 +5878,7 @@ Proszę, używaj tej funkcji tylko do instalowania łatek i DLC.</translation>
<message>
<location filename="../../src/citron/main.cpp" line="3564"/>
<source>Missing citron Account</source>
<translation>Brakuje konta Yuzu</translation>
<translation>Brakuje konta Citron</translation>
</message>
<message>
<location filename="../../src/citron/main.cpp" line="3565"/>

View File

@@ -41,7 +41,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/citron/aboutdialog.ui" line="146"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:7pt;&quot;&gt;&amp;quot;Nintendo Switch&amp;quot; is a trademark of Nintendo. citron is not affiliated with Nintendo in any way.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:7pt;&quot;&gt;&amp;quot;Nintendo Switch&amp;quot; é uma marca comercial da Nintendo. Yuzu não é afiliado com a Nintendo de qualquer forma.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:7pt;&quot;&gt;&amp;quot;Nintendo Switch&amp;quot; é uma marca comercial da Nintendo. Citron não é afiliado com a Nintendo de qualquer forma.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
</context>
<context>
@@ -4991,7 +4991,7 @@ Arrasta os pontos para mudar a posição, ou dá duplo-clique nas células da ta
<message>
<location filename="../../src/citron/configuration/configure_web.ui" line="25"/>
<source>citron Web Service</source>
<translation>Serviço Web do Yuzu</translation>
<translation>Serviço Web do Citron</translation>
</message>
<message>
<location filename="../../src/citron/configuration/configure_web.ui" line="31"/>
@@ -5037,7 +5037,7 @@ Arrasta os pontos para mudar a posição, ou dá duplo-clique nas células da ta
<message>
<location filename="../../src/citron/configuration/configure_web.ui" line="134"/>
<source>Share anonymous usage data with the citron team</source>
<translation>Compartilhar dados de uso anônimos com a equipa Yuzu</translation>
<translation>Compartilhar dados de uso anônimos com a equipa Citron</translation>
</message>
<message>
<location filename="../../src/citron/configuration/configure_web.ui" line="141"/>
@@ -5917,7 +5917,7 @@ Por favor, use esse recurso apenas para instalar atualizações e DLC.</translat
<message>
<location filename="../../src/citron/main.cpp" line="3564"/>
<source>Missing citron Account</source>
<translation>Conta Yuzu Ausente</translation>
<translation>Conta Citron Ausente</translation>
</message>
<message>
<location filename="../../src/citron/main.cpp" line="3565"/>

View File

@@ -4,7 +4,7 @@
<message>
<location filename="../../src/citron/aboutdialog.ui" line="14"/>
<source>About citron</source>
<translation>Yuzu hakkında</translation>
<translation>Citron hakkında</translation>
</message>
<message>
<location filename="../../src/citron/aboutdialog.ui" line="72"/>
@@ -29,7 +29,7 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:12pt;&quot;&gt;Yuzu GPLv3.0+ ile lisanslanmış Nintendo Switch için ık kaynak bir deneysel emülatördür.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:12pt;&quot;&gt;Citron GPLv3.0+ ile lisanslanmış Nintendo Switch için ık kaynak bir deneysel emülatördür.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:12pt;&quot;&gt;Bu yazılım yasal yollarla edinilmemiş oyunları çalıştırmak için kullanılmamalı.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
@@ -3102,7 +3102,7 @@ When a guest attempts to open the controller applet, it is immediately closed.</
<location filename="../../src/citron/configuration/configure_input_advanced.ui" line="2701"/>
<location filename="../../src/citron/configuration/configure_input_advanced.ui" line="2717"/>
<source>Requires restarting citron</source>
<translation>Yuzu&apos;yu yeniden başlatmayı gerektirir </translation>
<translation>Citron&apos;yu yeniden başlatmayı gerektirir </translation>
</message>
<message>
<location filename="../../src/citron/configuration/configure_input_advanced.ui" line="2668"/>
@@ -4993,7 +4993,7 @@ Noktanın konumunu değiştirmek için sürükleyin ya da sayıların üstüne
<message>
<location filename="../../src/citron/configuration/configure_web.ui" line="134"/>
<source>Share anonymous usage data with the citron team</source>
<translation>Yuzu ekibiyle anonim kullanım verilerini paylaş</translation>
<translation>Citron ekibiyle anonim kullanım verilerini paylaş</translation>
</message>
<message>
<location filename="../../src/citron/configuration/configure_web.ui" line="141"/>
@@ -5270,7 +5270,7 @@ Noktanın konumunu değiştirmek için sürükleyin ya da sayıların üstüne
<message>
<location filename="../../src/citron/main.cpp" line="1818"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats citron supports, &lt;a href=&apos;https://citron-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Bu oyun için dekonstrükte ROM formatı kullanıyorsunuz, bu fromatın yerine NCA, NAX, XCI ve NSP formatları kullanılmaktadır. Dekonstrükte ROM formatları ikon, üst veri ve güncelleme desteği içermemektedir.&lt;br&gt;&lt;br&gt;Yuzu&apos;nun desteklediği çeşitli Switch formatları için&lt;a href=&apos;https://citron-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;Wiki&apos;yi ziyaret edin&lt;/a&gt;. Bu mesaj yeniden gösterilmeyecektir.</translation>
<translation>Bu oyun için dekonstrükte ROM formatı kullanıyorsunuz, bu fromatın yerine NCA, NAX, XCI ve NSP formatları kullanılmaktadır. Dekonstrükte ROM formatları ikon, üst veri ve güncelleme desteği içermemektedir.&lt;br&gt;&lt;br&gt;Citron&apos;nun desteklediği çeşitli Switch formatları için&lt;a href=&apos;https://citron-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;Wiki&apos;yi ziyaret edin&lt;/a&gt;. Bu mesaj yeniden gösterilmeyecektir.</translation>
</message>
<message>
<location filename="../../src/citron/main.cpp" line="1830"/>
@@ -5884,7 +5884,7 @@ Lütfen bu özelliği sadece güncelleme ve DLC yüklemek için kullanın.</tran
<message>
<location filename="../../src/citron/main.cpp" line="3565"/>
<source>In order to submit a game compatibility test case, you must link your citron account.&lt;br&gt;&lt;br/&gt;To link your citron account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Oyun uyumluluk test çalışması göndermek için öncelikle citron hesabınla giriş yapmanız gerekiyor.&lt;br&gt;&lt;br/&gt;Yuzu hesabınızla giriş yapmak için, Emülasyon &amp;gt; Yapılandırma &amp;gt; Web&apos;e gidiniz.</translation>
<translation>Oyun uyumluluk test çalışması göndermek için öncelikle citron hesabınla giriş yapmanız gerekiyor.&lt;br&gt;&lt;br/&gt;Citron hesabınızla giriş yapmak için, Emülasyon &amp;gt; Yapılandırma &amp;gt; Web&apos;e gidiniz.</translation>
</message>
<message>
<location filename="../../src/citron/main.cpp" line="3580"/>
@@ -6290,7 +6290,7 @@ Lütfen bu özelliği sadece güncelleme ve DLC yüklemek için kullanın.</tran
<source>The currently running application has requested citron to not exit.
Would you like to bypass this and exit anyway?</source>
<translation>Şu an çalışan uygulamadan dolayı Yuzu kapatılamıyor.
<translation>Şu an çalışan uygulamadan dolayı Citron kapatılamıyor.
Görmezden gelip kapatmak ister misiniz?</translation>
</message>
@@ -6406,7 +6406,7 @@ Görmezden gelip kapatmak ister misiniz?</translation>
<message>
<location filename="../../src/citron/bootmanager.cpp" line="1037"/>
<source>citron has not been compiled with OpenGL support.</source>
<translation>Yuzu OpenGL desteklememektedir.</translation>
<translation>Citron OpenGL desteklememektedir.</translation>
</message>
<message>
<location filename="../../src/citron/bootmanager.cpp" line="1061"/>
@@ -6877,7 +6877,7 @@ Debug Message: </source>
<message>
<location filename="../../src/citron/uisettings.h" line="242"/>
<source>Exit citron</source>
<translation>Yuzu&apos;dan çık</translation>
<translation>Citron&apos;dan çık</translation>
</message>
<message>
<location filename="../../src/citron/uisettings.h" line="243"/>
@@ -7255,7 +7255,7 @@ Debug Message: </source>
<message>
<location filename="../../src/citron/main.ui" line="244"/>
<source>&amp;About citron</source>
<translation>&amp;Yuzu Hakkında</translation>
<translation>&amp;Citron Hakkında</translation>
</message>
<message>
<location filename="../../src/citron/main.ui" line="252"/>
@@ -7575,7 +7575,7 @@ Debug Bilgisi:</translation>
<message>
<location filename="../../src/citron/multiplayer/message.cpp" line="32"/>
<source>Creating a room failed. Please retry. Restarting citron might be necessary.</source>
<translation>Odayı oluşturma başarısız oldu. Lütfen tekrar deneyin. Yuzu&apos;yu yeniden başlatmak gerekebilir.</translation>
<translation>Odayı oluşturma başarısız oldu. Lütfen tekrar deneyin. Citron&apos;yu yeniden başlatmak gerekebilir.</translation>
</message>
<message>
<location filename="../../src/citron/multiplayer/message.cpp" line="34"/>

View File

@@ -65,9 +65,9 @@ endif()
# SDL2
if (YUZU_USE_EXTERNAL_SDL2)
if (NOT WIN32)
# Yuzu itself needs: Atomic Audio Events Joystick Haptic Sensor Threads Timers
# Citron itself needs: Atomic Audio Events Joystick Haptic Sensor Threads Timers
# Since 2.0.18 Atomic+Threads required for HIDAPI/libusb (see https://github.com/libsdl-org/SDL/issues/5095)
# Yuzu-cmd also needs: Video (depends on Loadso/Dlopen)
# Citron-cmd also needs: Video (depends on Loadso/Dlopen)
# CPUinfo also required for SDL Audio, at least until 2.28.0 (see https://github.com/libsdl-org/SDL/issues/7809)
set(SDL_UNUSED_SUBSYSTEMS
File Filesystem

View File

@@ -17,7 +17,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
<uses-permission android:name="android.permission.VIBRATE" />
<application
android:name="org.citron.citron_emu.YuzuApplication"
android:name="org.citron.citron_emu.CitronApplication"
android:label="@string/app_name_suffixed"
android:icon="@drawable/ic_launcher"
android:allowBackup="true"
@@ -36,7 +36,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
<activity
android:name="org.citron.citron_emu.ui.main.MainActivity"
android:exported="true"
android:theme="@style/Theme.Yuzu.Splash.Main">
android:theme="@style/Theme.Citron.Splash.Main">
<!-- This intentfilter marks this Activity as the one that gets launched from Home screen. -->
<intent-filter>
@@ -49,12 +49,12 @@ SPDX-License-Identifier: GPL-3.0-or-later
<activity
android:name="org.citron.citron_emu.features.settings.ui.SettingsActivity"
android:theme="@style/Theme.Yuzu.Main"
android:theme="@style/Theme.Citron.Main"
android:label="@string/preferences_settings"/>
<activity
android:name="org.citron.citron_emu.activities.EmulationActivity"
android:theme="@style/Theme.Yuzu.Main"
android:theme="@style/Theme.Citron.Main"
android:launchMode="singleTop"
android:supportsPictureInPicture="true"
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|uiMode"

View File

@@ -24,7 +24,7 @@ import org.citron.citron_emu.model.GameVerificationResult
/**
* Class which contains methods that interact
* with the native side of the Yuzu code.
* with the native side of the Citron code.
*/
object NativeLibrary {
@JvmField
@@ -42,7 +42,7 @@ object NativeLibrary {
@JvmStatic
fun openContentUri(path: String?, openmode: String?): Int {
return if (DocumentsTree.isNativePath(path!!)) {
YuzuApplication.documentsTree!!.openContentUri(path, openmode)
CitronApplication.documentsTree!!.openContentUri(path, openmode)
} else {
FileUtil.openContentUri(path, openmode)
}
@@ -52,7 +52,7 @@ object NativeLibrary {
@JvmStatic
fun getSize(path: String?): Long {
return if (DocumentsTree.isNativePath(path!!)) {
YuzuApplication.documentsTree!!.getFileSize(path)
CitronApplication.documentsTree!!.getFileSize(path)
} else {
FileUtil.getFileSize(path)
}
@@ -62,7 +62,7 @@ object NativeLibrary {
@JvmStatic
fun exists(path: String?): Boolean {
return if (DocumentsTree.isNativePath(path!!)) {
YuzuApplication.documentsTree!!.exists(path)
CitronApplication.documentsTree!!.exists(path)
} else {
FileUtil.exists(path, suppressLog = true)
}
@@ -72,7 +72,7 @@ object NativeLibrary {
@JvmStatic
fun isDirectory(path: String?): Boolean {
return if (DocumentsTree.isNativePath(path!!)) {
YuzuApplication.documentsTree!!.isDirectory(path)
CitronApplication.documentsTree!!.isDirectory(path)
} else {
FileUtil.isDirectory(path)
}
@@ -82,7 +82,7 @@ object NativeLibrary {
@JvmStatic
fun getParentDirectory(path: String): String =
if (DocumentsTree.isNativePath(path)) {
YuzuApplication.documentsTree!!.getParentDirectory(path)
CitronApplication.documentsTree!!.getParentDirectory(path)
} else {
path
}
@@ -91,7 +91,7 @@ object NativeLibrary {
@JvmStatic
fun getFilename(path: String): String =
if (DocumentsTree.isNativePath(path)) {
YuzuApplication.documentsTree!!.getFilename(path)
CitronApplication.documentsTree!!.getFilename(path)
} else {
FileUtil.getFilename(Uri.parse(path))
}
@@ -326,7 +326,7 @@ object NativeLibrary {
}
/**
* Logs the Yuzu version, Android version and, CPU.
* Logs the Citron version, Android version and, CPU.
*/
external fun logDeviceInfo()

View File

@@ -37,7 +37,7 @@ import androidx.navigation.fragment.NavHostFragment
import androidx.preference.PreferenceManager
import org.citron.citron_emu.NativeLibrary
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.databinding.ActivityEmulationBinding
import org.citron.citron_emu.features.input.NativeInput
import org.citron.citron_emu.features.settings.model.BooleanSetting
@@ -123,7 +123,7 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
nfcReader = NfcReader(this)
nfcReader.initialize()
val preferences = PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
val preferences = PreferenceManager.getDefaultSharedPreferences(CitronApplication.appContext)
if (!preferences.getBoolean(Settings.PREF_MEMORY_WARNING_SHOWN, false)) {
if (MemoryUtil.isLessThan(MemoryUtil.REQUIRED_MEMORY, MemoryUtil.totalMemory)) {
Toast.makeText(

View File

@@ -12,7 +12,7 @@ import androidx.navigation.findNavController
import org.citron.citron_emu.HomeNavigationDirections
import org.citron.citron_emu.NativeLibrary
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.databinding.CardSimpleOutlinedBinding
import org.citron.citron_emu.model.Applet
import org.citron.citron_emu.model.AppletInfo
@@ -64,7 +64,7 @@ class AppletAdapter(val activity: FragmentActivity, applets: List<Applet>) :
NativeLibrary.setCurrentAppletId(applet.appletInfo.appletId)
val appletGame = Game(
title = YuzuApplication.appContext.getString(applet.titleId),
title = CitronApplication.appContext.getString(applet.titleId),
path = appletPath
)
val action = HomeNavigationDirections.actionGlobalEmulationActivity(appletGame)

View File

@@ -11,7 +11,7 @@ import androidx.navigation.fragment.findNavController
import org.citron.citron_emu.HomeNavigationDirections
import org.citron.citron_emu.NativeLibrary
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.databinding.DialogListItemBinding
import org.citron.citron_emu.model.CabinetMode
import org.citron.citron_emu.adapters.CabinetLauncherDialogAdapter.CabinetModeViewHolder
@@ -49,7 +49,7 @@ class CabinetLauncherDialogAdapter(val fragment: Fragment) :
NativeLibrary.setCurrentAppletId(AppletInfo.Cabinet.appletId)
NativeLibrary.setCabinetMode(mode.id)
val appletGame = Game(
title = YuzuApplication.appContext.getString(R.string.cabinet_applet),
title = CitronApplication.appContext.getString(R.string.cabinet_applet),
path = appletPath
)
val action = HomeNavigationDirections.actionGlobalEmulationActivity(appletGame)

View File

@@ -21,7 +21,7 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.citron.citron_emu.HomeNavigationDirections
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.databinding.CardGameBinding
import org.citron.citron_emu.model.Game
import org.citron.citron_emu.model.GamesViewModel
@@ -51,12 +51,12 @@ class GameAdapter(private val activity: AppCompatActivity) :
fun onClick(game: Game) {
val gameExists = DocumentFile.fromSingleUri(
YuzuApplication.appContext,
CitronApplication.appContext,
Uri.parse(game.path)
)?.exists() == true
if (!gameExists) {
Toast.makeText(
YuzuApplication.appContext,
CitronApplication.appContext,
R.string.loader_error_file_not_found,
Toast.LENGTH_LONG
).show()
@@ -66,7 +66,7 @@ class GameAdapter(private val activity: AppCompatActivity) :
}
val preferences =
PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
PreferenceManager.getDefaultSharedPreferences(CitronApplication.appContext)
preferences.edit()
.putLong(
game.keyLastPlayedTime,
@@ -77,12 +77,12 @@ class GameAdapter(private val activity: AppCompatActivity) :
activity.lifecycleScope.launch {
withContext(Dispatchers.IO) {
val shortcut =
ShortcutInfoCompat.Builder(YuzuApplication.appContext, game.path)
ShortcutInfoCompat.Builder(CitronApplication.appContext, game.path)
.setShortLabel(game.title)
.setIcon(GameIconUtils.getShortcutIcon(activity, game))
.setIntent(game.launchIntent)
.build()
ShortcutManagerCompat.pushDynamicShortcut(YuzuApplication.appContext, shortcut)
ShortcutManagerCompat.pushDynamicShortcut(CitronApplication.appContext, shortcut)
}
}

View File

@@ -16,7 +16,7 @@ import org.citron.citron_emu.utils.Log
fun Context.getPublicFilesDir(): File = getExternalFilesDir(null) ?: filesDir
class YuzuApplication : Application() {
class CitronApplication : Application() {
private fun createNotificationChannels() {
val noticeChannel = NotificationChannel(
getString(R.string.notice_notification_channel_id),
@@ -47,7 +47,7 @@ class YuzuApplication : Application() {
companion object {
var documentsTree: DocumentsTree? = null
lateinit var application: YuzuApplication
lateinit var application: CitronApplication
val appContext: Context
get() = application.applicationContext

View File

@@ -16,12 +16,12 @@ import android.webkit.MimeTypeMap
import java.io.*
import org.citron.citron_emu.BuildConfig
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.getPublicFilesDir
class DocumentProvider : DocumentsProvider() {
private val baseDirectory: File
get() = File(YuzuApplication.application.getPublicFilesDir().canonicalPath)
get() = File(CitronApplication.application.getPublicFilesDir().canonicalPath)
companion object {
private val DEFAULT_ROOT_PROJECTION: Array<String> = arrayOf(

View File

@@ -177,9 +177,9 @@ object NativeInput {
/**
* Registers a controller to be used with mapping
* @param device An [InputDevice] or the input overlay wrapped with [YuzuInputDevice]
* @param device An [InputDevice] or the input overlay wrapped with [CitronInputDevice]
*/
external fun registerController(device: YuzuInputDevice)
external fun registerController(device: CitronInputDevice)
/**
* Gets the names of input devices that have been registered with the input subsystem via [registerController]

View File

@@ -5,12 +5,12 @@ package org.citron.citron_emu.features.input
import android.view.InputDevice
import androidx.annotation.Keep
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.R
import org.citron.citron_emu.utils.InputHandler.getGUID
@Keep
interface YuzuInputDevice {
interface CitronInputDevice {
fun getName(): String
fun getGUID(): String
@@ -25,15 +25,15 @@ interface YuzuInputDevice {
fun hasKeys(keys: IntArray): BooleanArray = BooleanArray(0)
}
class YuzuPhysicalDevice(
class CitronPhysicalDevice(
private val device: InputDevice,
private val port: Int,
useSystemVibrator: Boolean
) : YuzuInputDevice {
) : CitronInputDevice {
private val vibrator = if (useSystemVibrator) {
YuzuVibrator.getSystemVibrator()
CitronVibrator.getSystemVibrator()
} else {
YuzuVibrator.getControllerVibrator(device)
CitronVibrator.getControllerVibrator(device)
}
override fun getName(): String {
@@ -60,14 +60,14 @@ class YuzuPhysicalDevice(
override fun hasKeys(keys: IntArray): BooleanArray = device.hasKeys(*keys)
}
class YuzuInputOverlayDevice(
class CitronInputOverlayDevice(
private val vibration: Boolean,
private val port: Int
) : YuzuInputDevice {
private val vibrator = YuzuVibrator.getSystemVibrator()
) : CitronInputDevice {
private val vibrator = CitronVibrator.getSystemVibrator()
override fun getName(): String {
return YuzuApplication.appContext.getString(R.string.input_overlay)
return CitronApplication.appContext.getString(R.string.input_overlay)
}
override fun getGUID(): String {

View File

@@ -12,32 +12,32 @@ import android.os.VibratorManager
import android.view.InputDevice
import androidx.annotation.Keep
import androidx.annotation.RequiresApi
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
@Keep
@Suppress("DEPRECATION")
interface YuzuVibrator {
interface CitronVibrator {
fun supportsVibration(): Boolean
fun vibrate(intensity: Float)
companion object {
fun getControllerVibrator(device: InputDevice): YuzuVibrator =
fun getControllerVibrator(device: InputDevice): CitronVibrator =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
YuzuVibratorManager(device.vibratorManager)
CitronVibratorManager(device.vibratorManager)
} else {
YuzuVibratorManagerCompat(device.vibrator)
CitronVibratorManagerCompat(device.vibrator)
}
fun getSystemVibrator(): YuzuVibrator =
fun getSystemVibrator(): CitronVibrator =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
val vibratorManager = YuzuApplication.appContext
val vibratorManager = CitronApplication.appContext
.getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager
YuzuVibratorManager(vibratorManager)
CitronVibratorManager(vibratorManager)
} else {
val vibrator = YuzuApplication.appContext
val vibrator = CitronApplication.appContext
.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
YuzuVibratorManagerCompat(vibrator)
CitronVibratorManagerCompat(vibrator)
}
fun getVibrationEffect(intensity: Float): VibrationEffect? {
@@ -53,24 +53,24 @@ interface YuzuVibrator {
}
@RequiresApi(Build.VERSION_CODES.S)
class YuzuVibratorManager(private val vibratorManager: VibratorManager) : YuzuVibrator {
class CitronVibratorManager(private val vibratorManager: VibratorManager) : CitronVibrator {
override fun supportsVibration(): Boolean {
return vibratorManager.vibratorIds.isNotEmpty()
}
override fun vibrate(intensity: Float) {
val vibration = YuzuVibrator.getVibrationEffect(intensity) ?: return
val vibration = CitronVibrator.getVibrationEffect(intensity) ?: return
vibratorManager.vibrate(CombinedVibration.createParallel(vibration))
}
}
class YuzuVibratorManagerCompat(private val vibrator: Vibrator) : YuzuVibrator {
class CitronVibratorManagerCompat(private val vibrator: Vibrator) : CitronVibrator {
override fun supportsVibration(): Boolean {
return vibrator.hasVibrator()
}
override fun vibrate(intensity: Float) {
val vibration = YuzuVibrator.getVibrationEffect(intensity) ?: return
val vibration = CitronVibrator.getVibrationEffect(intensity) ?: return
vibrator.vibrate(vibration)
}
}

View File

@@ -4,7 +4,7 @@
package org.citron.citron_emu.features.settings.model
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
object Settings {
enum class MenuTag(val titleId: Int = 0) {
@@ -26,7 +26,7 @@ object Settings {
}
fun getPlayerString(player: Int): String =
YuzuApplication.appContext.getString(R.string.preferences_player, player)
CitronApplication.appContext.getString(R.string.preferences_player, player)
const val PREF_FIRST_APP_LAUNCH = "FirstApplicationLaunch"
const val PREF_MEMORY_WARNING_SHOWN = "MemoryWarningShown"

View File

@@ -5,7 +5,7 @@ package org.citron.citron_emu.features.settings.model.view
import androidx.annotation.StringRes
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.features.input.NativeInput
import org.citron.citron_emu.features.input.model.ButtonName
import org.citron.citron_emu.features.input.model.InputType
@@ -19,7 +19,7 @@ sealed class InputSetting(
abstract val inputType: InputType
abstract val playerIndex: Int
protected val context get() = YuzuApplication.appContext
protected val context get() = CitronApplication.appContext
abstract fun getSelectedValue(): String

View File

@@ -6,7 +6,7 @@ package org.citron.citron_emu.features.settings.model.view
import androidx.annotation.StringRes
import org.citron.citron_emu.NativeLibrary
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.features.input.NativeInput
import org.citron.citron_emu.features.input.model.NpadStyleIndex
import org.citron.citron_emu.features.settings.model.AbstractBooleanSetting
@@ -37,14 +37,14 @@ abstract class SettingsItem(
val title: String by lazy {
if (titleId != 0) {
return@lazy YuzuApplication.appContext.getString(titleId)
return@lazy CitronApplication.appContext.getString(titleId)
}
return@lazy titleString
}
val description: String by lazy {
if (descriptionId != 0) {
return@lazy YuzuApplication.appContext.getString(descriptionId)
return@lazy CitronApplication.appContext.getString(descriptionId)
}
return@lazy descriptionString
}

View File

@@ -6,7 +6,7 @@ package org.citron.citron_emu.features.settings.ui
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.adapters.AbstractListAdapter
import org.citron.citron_emu.databinding.ListItemInputProfileBinding
import org.citron.citron_emu.viewholder.AbstractViewHolder
@@ -57,7 +57,7 @@ sealed interface ProfileItem {
data class NewProfileItem(
val createNewProfile: () -> Unit
) : ProfileItem {
override val name: String = YuzuApplication.appContext.getString(R.string.create_new_profile)
override val name: String = CitronApplication.appContext.getString(R.string.create_new_profile)
}
data class ExistingProfileItem(

View File

@@ -8,7 +8,7 @@ import android.os.Build
import android.widget.Toast
import org.citron.citron_emu.NativeLibrary
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.features.input.NativeInput
import org.citron.citron_emu.features.input.model.AnalogDirection
import org.citron.citron_emu.features.input.model.NativeAnalog
@@ -35,7 +35,7 @@ class SettingsFragmentPresenter(
) {
private var settingsList = ArrayList<SettingsItem>()
private val context get() = YuzuApplication.appContext
private val context get() = CitronApplication.appContext
// Extension for altering settings list based on each setting's properties
fun ArrayList<SettingsItem>.add(key: String) {

View File

@@ -8,7 +8,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.features.settings.model.view.SettingsItem
import org.citron.citron_emu.model.Game
import org.citron.citron_emu.utils.InputHandler
@@ -73,7 +73,7 @@ class SettingsViewModel : ViewModel() {
fun setSliderTextValue(value: Float, units: String) {
_sliderProgress.value = value.toInt()
_sliderTextValue.value = String.format(
YuzuApplication.appContext.getString(R.string.value_with_units),
CitronApplication.appContext.getString(R.string.value_with_units),
value.toInt().toString(),
units
)

View File

@@ -11,7 +11,7 @@ import androidx.fragment.app.activityViewModels
import androidx.preference.PreferenceManager
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.model.AddonViewModel
import org.citron.citron_emu.ui.main.MainActivity
@@ -19,7 +19,7 @@ class ContentTypeSelectionDialogFragment : DialogFragment() {
private val addonViewModel: AddonViewModel by activityViewModels()
private val preferences get() =
PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
PreferenceManager.getDefaultSharedPreferences(CitronApplication.appContext)
private var selectedItem = 0

View File

@@ -26,7 +26,7 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.citron.citron_emu.HomeNavigationDirections
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.adapters.GamePropertiesAdapter
import org.citron.citron_emu.databinding.FragmentGamePropertiesBinding
import org.citron.citron_emu.features.settings.model.Settings
@@ -224,7 +224,7 @@ class GamePropertiesFragment : Fragment() {
negativeAction = {
File(args.game.saveDir).deleteRecursively()
Toast.makeText(
YuzuApplication.appContext,
CitronApplication.appContext,
R.string.save_data_deleted_successfully,
Toast.LENGTH_SHORT
).show()
@@ -263,7 +263,7 @@ class GamePropertiesFragment : Fragment() {
positiveAction = {
shaderCacheDir.deleteRecursively()
Toast.makeText(
YuzuApplication.appContext,
CitronApplication.appContext,
R.string.cleared_shaders_successfully,
Toast.LENGTH_SHORT
).show()
@@ -374,7 +374,7 @@ class GamePropertiesFragment : Fragment() {
return@withContext
}
Toast.makeText(
YuzuApplication.appContext,
CitronApplication.appContext,
getString(R.string.save_file_imported_success),
Toast.LENGTH_LONG
).show()
@@ -384,7 +384,7 @@ class GamePropertiesFragment : Fragment() {
cacheSaveDir.deleteRecursively()
} catch (e: Exception) {
Toast.makeText(
YuzuApplication.appContext,
CitronApplication.appContext,
getString(R.string.fatal_error),
Toast.LENGTH_LONG
).show()

View File

@@ -31,7 +31,7 @@ import org.citron.citron_emu.BuildConfig
import org.citron.citron_emu.HomeNavigationDirections
import org.citron.citron_emu.NativeLibrary
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.adapters.HomeSettingAdapter
import org.citron.citron_emu.databinding.FragmentHomeSettingsBinding
import org.citron.citron_emu.features.DocumentProvider
@@ -180,7 +180,7 @@ class HomeSettingsFragment : Fragment() {
)
} else {
val failedNames = result.joinToString("\n")
val errorMessage = YuzuApplication.appContext.getString(
val errorMessage = CitronApplication.appContext.getString(
R.string.verification_failed_for,
failedNames
)

View File

@@ -22,7 +22,7 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.citron.citron_emu.NativeLibrary
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.adapters.InstallableAdapter
import org.citron.citron_emu.databinding.FragmentInstallablesBinding
import org.citron.citron_emu.model.HomeViewModel
@@ -109,7 +109,7 @@ class InstallableFragment : Fragment() {
)
if (!oldSaveDataFolder.exists() && !futureSaveDataFolder.exists()) {
Toast.makeText(
YuzuApplication.appContext,
CitronApplication.appContext,
R.string.no_save_data_found,
Toast.LENGTH_SHORT
).show()
@@ -262,7 +262,7 @@ class InstallableFragment : Fragment() {
cacheSaveDir.deleteRecursively()
} catch (e: Exception) {
Toast.makeText(
YuzuApplication.appContext,
CitronApplication.appContext,
getString(R.string.fatal_error),
Toast.LENGTH_LONG
).show()

View File

@@ -22,7 +22,7 @@ import info.debatty.java.stringsimilarity.Jaccard
import info.debatty.java.stringsimilarity.JaroWinkler
import java.util.Locale
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.adapters.GameAdapter
import org.citron.citron_emu.databinding.FragmentSearchBinding
import org.citron.citron_emu.layout.AutofitGridLayoutManager
@@ -58,7 +58,7 @@ class SearchFragment : Fragment() {
super.onViewCreated(view, savedInstanceState)
homeViewModel.setNavigationVisibility(visible = true, animated = true)
homeViewModel.setStatusBarShadeVisibility(true)
preferences = PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
preferences = PreferenceManager.getDefaultSharedPreferences(CitronApplication.appContext)
if (savedInstanceState != null) {
binding.searchText.setText(savedInstanceState.getString(SEARCH_TEXT))

View File

@@ -30,7 +30,7 @@ import kotlinx.coroutines.launch
import org.citron.citron_emu.NativeLibrary
import java.io.File
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.adapters.SetupAdapter
import org.citron.citron_emu.databinding.FragmentSetupBinding
import org.citron.citron_emu.features.settings.model.Settings
@@ -343,7 +343,7 @@ class SetupFragment : Fragment() {
}
private fun finishSetup() {
PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext).edit()
PreferenceManager.getDefaultSharedPreferences(CitronApplication.appContext).edit()
.putBoolean(Settings.PREF_FIRST_APP_LAUNCH, false)
.apply()
mainActivity.finishSetup(binding.root.findNavController())

View File

@@ -15,7 +15,7 @@ import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.features.settings.model.StringSetting
import org.citron.citron_emu.features.settings.utils.SettingsFile
import org.citron.citron_emu.model.Driver.Companion.toDriver
@@ -70,7 +70,7 @@ class DriverViewModel : ViewModel() {
val newDriverList = mutableListOf(
Driver(
selectedDriver == GpuDriverMetadata(),
YuzuApplication.appContext.getString(R.string.system_gpu_driver),
CitronApplication.appContext.getString(R.string.system_gpu_driver),
systemDriverData?.get(0) ?: "",
systemDriverData?.get(1) ?: ""
)
@@ -186,7 +186,7 @@ class DriverViewModel : ViewModel() {
private fun updateName() {
_selectedDriverTitle.value = GpuDriverHelper.customDriverSettingData.name
?: YuzuApplication.appContext.getString(R.string.system_gpu_driver)
?: CitronApplication.appContext.getString(R.string.system_gpu_driver)
}
private fun setDriverReady() {

View File

@@ -11,7 +11,7 @@ import kotlinx.parcelize.Parcelize
import kotlinx.serialization.Serializable
import org.citron.citron_emu.NativeLibrary
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.activities.EmulationActivity
import org.citron.citron_emu.utils.DirectoryInitialization
import org.citron.citron_emu.utils.FileUtil
@@ -52,7 +52,7 @@ class Game(
}
val saveZipName: String
get() = "$title ${YuzuApplication.appContext.getString(R.string.save_data).lowercase()} - ${
get() = "$title ${CitronApplication.appContext.getString(R.string.save_data).lowercase()} - ${
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"))
}.zip"
@@ -64,7 +64,7 @@ class Game(
get() = DirectoryInitialization.userDirectory + "/load/" + programIdHex + "/"
val launchIntent: Intent
get() = Intent(YuzuApplication.appContext, EmulationActivity::class.java).apply {
get() = Intent(CitronApplication.appContext, EmulationActivity::class.java).apply {
action = Intent.ACTION_VIEW
data = Uri.parse(path)
}

View File

@@ -18,7 +18,7 @@ import kotlinx.coroutines.withContext
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json
import org.citron.citron_emu.NativeLibrary
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.utils.GameHelper
import org.citron.citron_emu.utils.NativeConfig
import java.util.concurrent.atomic.AtomicBoolean
@@ -94,7 +94,7 @@ class GamesViewModel : ViewModel() {
if (firstStartup) {
// Retrieve list of cached games
val storedGames =
PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
PreferenceManager.getDefaultSharedPreferences(CitronApplication.appContext)
.getStringSet(GameHelper.KEY_GAMES, emptySet())
if (storedGames!!.isNotEmpty()) {
val deserializedGames = mutableSetOf<Game>()
@@ -109,7 +109,7 @@ class GamesViewModel : ViewModel() {
val gameExists =
DocumentFile.fromSingleUri(
YuzuApplication.appContext,
CitronApplication.appContext,
Uri.parse(game.path)
)?.exists()
if (gameExists == true) {

View File

@@ -5,7 +5,7 @@ package org.citron.citron_emu.overlay.model
import androidx.annotation.IntegerRes
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
enum class OverlayControl(
val id: String,
@@ -136,7 +136,7 @@ enum class OverlayControl(
fun getDefaultPositionForLayout(layout: OverlayLayout): Pair<Double, Double> {
val rawResourcePair: Pair<Int, Int>
YuzuApplication.appContext.resources.apply {
CitronApplication.appContext.resources.apply {
rawResourcePair = when (layout) {
OverlayLayout.Landscape -> {
Pair(

View File

@@ -642,18 +642,18 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
) { progressCallback, _ ->
val checkStream =
ZipInputStream(BufferedInputStream(contentResolver.openInputStream(result)))
var isYuzuBackup = false
var isCitronBackup = false
checkStream.use { stream ->
var ze: ZipEntry? = null
while (stream.nextEntry?.also { ze = it } != null) {
val itemName = ze!!.name.trim()
if (itemName == "/config/config.ini" || itemName == "config/config.ini") {
isYuzuBackup = true
isCitronBackup = true
return@use
}
}
}
if (!isYuzuBackup) {
if (!isCitronBackup) {
return@newInstance MessageDialogFragment.newInstance(
this,
titleId = R.string.invalid_citron_backup,

View File

@@ -6,7 +6,7 @@ package org.citron.citron_emu.utils
import androidx.preference.PreferenceManager
import java.io.IOException
import org.citron.citron_emu.NativeLibrary
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.features.settings.model.BooleanSetting
import org.citron.citron_emu.features.settings.model.IntSetting
import org.citron.citron_emu.features.settings.model.Settings
@@ -38,7 +38,7 @@ object DirectoryInitialization {
private fun initializeInternalStorage() {
try {
userPath = YuzuApplication.appContext.getExternalFilesDir(null)!!.canonicalPath
userPath = CitronApplication.appContext.getExternalFilesDir(null)!!.canonicalPath
NativeLibrary.setAppDirectory(userPath!!)
} catch (e: IOException) {
e.printStackTrace()
@@ -46,7 +46,7 @@ object DirectoryInitialization {
}
private fun migrateSettings() {
val preferences = PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
val preferences = PreferenceManager.getDefaultSharedPreferences(CitronApplication.appContext)
var saveConfig = false
val theme = preferences.migratePreference<Int>(Settings.PREF_THEME)
if (theme != null) {

View File

@@ -14,7 +14,7 @@ import java.io.InputStream
import java.net.URLDecoder
import java.util.zip.ZipEntry
import java.util.zip.ZipInputStream
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.model.MinimalDocumentFile
import org.citron.citron_emu.model.TaskState
import java.io.BufferedOutputStream
@@ -31,7 +31,7 @@ object FileUtil {
const val APPLICATION_OCTET_STREAM = "application/octet-stream"
const val TEXT_PLAIN = "text/plain"
private val context get() = YuzuApplication.appContext
private val context get() = CitronApplication.appContext
/**
* Create a file from directory with filename.
@@ -195,7 +195,7 @@ object FileUtil {
* @return String display name
*/
fun getFilename(uri: Uri): String {
val resolver = YuzuApplication.appContext.contentResolver
val resolver = CitronApplication.appContext.contentResolver
val columns = arrayOf(
DocumentsContract.Document.COLUMN_DISPLAY_NAME
)
@@ -408,10 +408,10 @@ object FileUtil {
val newFile = File(file, it.name!!)
if (it.isDirectory) {
newFile.mkdirs()
DocumentFile.fromTreeUri(YuzuApplication.appContext, it.uri)?.copyFilesTo(newFile)
DocumentFile.fromTreeUri(CitronApplication.appContext, it.uri)?.copyFilesTo(newFile)
} else {
val inputStream =
YuzuApplication.appContext.contentResolver.openInputStream(it.uri)
CitronApplication.appContext.contentResolver.openInputStream(it.uri)
BufferedInputStream(inputStream).use { bos ->
if (!newFile.exists()) {
newFile.createNewFile()
@@ -487,17 +487,17 @@ object FileUtil {
String(stream.readBytes(), StandardCharsets.UTF_8)
fun DocumentFile.inputStream(): InputStream =
YuzuApplication.appContext.contentResolver.openInputStream(uri)!!
CitronApplication.appContext.contentResolver.openInputStream(uri)!!
fun DocumentFile.outputStream(): OutputStream =
YuzuApplication.appContext.contentResolver.openOutputStream(uri)!!
CitronApplication.appContext.contentResolver.openOutputStream(uri)!!
fun Uri.inputStream(): InputStream =
YuzuApplication.appContext.contentResolver.openInputStream(this)!!
CitronApplication.appContext.contentResolver.openInputStream(this)!!
fun Uri.outputStream(): OutputStream =
YuzuApplication.appContext.contentResolver.openOutputStream(this)!!
CitronApplication.appContext.contentResolver.openOutputStream(this)!!
fun Uri.asDocumentFile(): DocumentFile? =
DocumentFile.fromSingleUri(YuzuApplication.appContext, this)
DocumentFile.fromSingleUri(CitronApplication.appContext, this)
}

View File

@@ -9,7 +9,7 @@ import androidx.preference.PreferenceManager
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import org.citron.citron_emu.NativeLibrary
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.model.Game
import org.citron.citron_emu.model.GameDir
import org.citron.citron_emu.model.MinimalDocumentFile
@@ -22,7 +22,7 @@ object GameHelper {
fun getGames(): List<Game> {
val games = mutableListOf<Game>()
val context = YuzuApplication.appContext
val context = CitronApplication.appContext
preferences = PreferenceManager.getDefaultSharedPreferences(context)
val gameDirs = mutableListOf<GameDir>()

View File

@@ -22,7 +22,7 @@ import coil.memory.MemoryCache
import coil.request.ImageRequest
import coil.request.Options
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.model.Game
class GameIconFetcher(
@@ -58,20 +58,20 @@ class GameIconKeyer : Keyer<Game> {
}
object GameIconUtils {
private val imageLoader = ImageLoader.Builder(YuzuApplication.appContext)
private val imageLoader = ImageLoader.Builder(CitronApplication.appContext)
.components {
add(GameIconKeyer())
add(GameIconFetcher.Factory())
}
.memoryCache {
MemoryCache.Builder(YuzuApplication.appContext)
MemoryCache.Builder(CitronApplication.appContext)
.maxSizePercent(0.25)
.build()
}
.build()
fun loadGameIcon(game: Game, imageView: ImageView) {
val request = ImageRequest.Builder(YuzuApplication.appContext)
val request = ImageRequest.Builder(CitronApplication.appContext)
.data(game)
.target(imageView)
.error(R.drawable.default_icon)
@@ -80,7 +80,7 @@ object GameIconUtils {
}
suspend fun getGameIcon(lifecycleOwner: LifecycleOwner, game: Game): Bitmap {
val request = ImageRequest.Builder(YuzuApplication.appContext)
val request = ImageRequest.Builder(CitronApplication.appContext)
.data(game)
.lifecycle(lifecycleOwner)
.error(R.drawable.default_icon)
@@ -91,15 +91,15 @@ object GameIconUtils {
suspend fun getShortcutIcon(lifecycleOwner: LifecycleOwner, game: Game): IconCompat {
val layerDrawable = ResourcesCompat.getDrawable(
YuzuApplication.appContext.resources,
CitronApplication.appContext.resources,
R.drawable.shortcut,
null
) as LayerDrawable
layerDrawable.setDrawableByLayerId(
R.id.shortcut_foreground,
getGameIcon(lifecycleOwner, game).toDrawable(YuzuApplication.appContext.resources)
getGameIcon(lifecycleOwner, game).toDrawable(CitronApplication.appContext.resources)
)
val inset = YuzuApplication.appContext.resources
val inset = CitronApplication.appContext.resources
.getDimensionPixelSize(R.dimen.icon_inset)
layerDrawable.setLayerInset(1, inset, inset, inset, inset)
return IconCompat.createWithAdaptiveBitmap(

View File

@@ -10,7 +10,7 @@ import android.view.Surface
import java.io.File
import java.io.IOException
import org.citron.citron_emu.NativeLibrary
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import org.citron.citron_emu.features.settings.model.StringSetting
import java.io.FileNotFoundException
import java.util.zip.ZipException
@@ -27,11 +27,11 @@ object GpuDriverHelper {
fun initializeDriverParameters() {
try {
// Initialize the file redirection directory.
fileRedirectionPath = YuzuApplication.appContext
fileRedirectionPath = CitronApplication.appContext
.getExternalFilesDir(null)!!.canonicalPath + "/gpu/vk_file_redirect/"
// Initialize the driver installation directory.
driverInstallationPath = YuzuApplication.appContext
driverInstallationPath = CitronApplication.appContext
.filesDir.canonicalPath + "/gpu_driver/"
} catch (e: IOException) {
throw RuntimeException(e)
@@ -41,7 +41,7 @@ object GpuDriverHelper {
initializeDirectories()
// Initialize hook libraries directory.
hookLibPath = YuzuApplication.appContext.applicationInfo.nativeLibraryDir + "/"
hookLibPath = CitronApplication.appContext.applicationInfo.nativeLibraryDir + "/"
// Initialize GPU driver.
NativeLibrary.initializeGpuDriver(

View File

@@ -7,11 +7,11 @@ import android.view.InputDevice
import android.view.KeyEvent
import android.view.MotionEvent
import org.citron.citron_emu.features.input.NativeInput
import org.citron.citron_emu.features.input.YuzuInputOverlayDevice
import org.citron.citron_emu.features.input.YuzuPhysicalDevice
import org.citron.citron_emu.features.input.CitronInputOverlayDevice
import org.citron.citron_emu.features.input.CitronPhysicalDevice
object InputHandler {
var androidControllers = mapOf<Int, YuzuPhysicalDevice>()
var androidControllers = mapOf<Int, CitronPhysicalDevice>()
var registeredControllers = mutableListOf<ParamPackage>()
fun dispatchKeyEvent(event: KeyEvent): Boolean {
@@ -50,8 +50,8 @@ object InputHandler {
return true
}
fun getDevices(): Map<Int, YuzuPhysicalDevice> {
val gameControllerDeviceIds = mutableMapOf<Int, YuzuPhysicalDevice>()
fun getDevices(): Map<Int, CitronPhysicalDevice> {
val gameControllerDeviceIds = mutableMapOf<Int, CitronPhysicalDevice>()
val deviceIds = InputDevice.getDeviceIds()
var port = 0
val inputSettings = NativeConfig.getInputSettings(true)
@@ -62,7 +62,7 @@ object InputHandler {
sources and InputDevice.SOURCE_JOYSTICK == InputDevice.SOURCE_JOYSTICK
) {
if (!gameControllerDeviceIds.contains(controllerNumber)) {
gameControllerDeviceIds[controllerNumber] = YuzuPhysicalDevice(
gameControllerDeviceIds[controllerNumber] = CitronPhysicalDevice(
this,
port,
inputSettings[port].useSystemVibrator
@@ -82,7 +82,7 @@ object InputHandler {
}
// Register the input overlay on a dedicated port for all player 1 vibrations
NativeInput.registerController(YuzuInputOverlayDevice(androidControllers.isEmpty(), 100))
NativeInput.registerController(CitronInputOverlayDevice(androidControllers.isEmpty(), 100))
registeredControllers.clear()
NativeInput.getInputDevices().forEach {
registeredControllers.add(ParamPackage(it))

View File

@@ -7,12 +7,12 @@ import android.app.ActivityManager
import android.content.Context
import android.os.Build
import org.citron.citron_emu.R
import org.citron.citron_emu.YuzuApplication
import org.citron.citron_emu.CitronApplication
import java.util.Locale
import kotlin.math.ceil
object MemoryUtil {
private val context get() = YuzuApplication.appContext
private val context get() = CitronApplication.appContext
private val Float.hundredths: String
get() = String.format(Locale.ROOT, "%.2f", this)

View File

@@ -23,12 +23,12 @@ object ThemeHelper {
fun setTheme(activity: AppCompatActivity) {
setThemeMode(activity)
when (Theme.from(IntSetting.THEME.getInt())) {
Theme.Default -> activity.setTheme(R.style.Theme_Yuzu_Main)
Theme.Default -> activity.setTheme(R.style.Theme_Citron_Main)
Theme.MaterialYou -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
activity.setTheme(R.style.Theme_Yuzu_Main_MaterialYou)
activity.setTheme(R.style.Theme_Citron_Main_MaterialYou)
} else {
activity.setTheme(R.style.Theme_Yuzu_Main)
activity.setTheme(R.style.Theme_Citron_Main)
}
}
}
@@ -37,7 +37,7 @@ object ThemeHelper {
// light app mode, dark system mode, and black backgrounds. Launching the settings activity
// will then show light mode colors/navigation bars but with black backgrounds.
if (BooleanSetting.BLACK_BACKGROUNDS.getBoolean() && isNightMode(activity)) {
activity.setTheme(R.style.ThemeOverlay_Yuzu_Dark)
activity.setTheme(R.style.ThemeOverlay_Citron_Dark)
}
}

View File

@@ -659,7 +659,7 @@ void Java_org_citron_citron_1emu_NativeLibrary_submitInlineKeyboardInput(JNIEnv*
void Java_org_citron_citron_1emu_NativeLibrary_initializeEmptyUserDirectory(JNIEnv* env,
jobject instance) {
const auto nand_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir);
const auto nand_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir);
auto vfs_nand_dir = EmulationSession::GetInstance().System().GetFilesystem()->OpenDirectory(
Common::FS::PathToUTF8String(nand_dir), FileSys::OpenMode::Read);
@@ -831,7 +831,7 @@ jstring Java_org_citron_citron_1emu_NativeLibrary_getSavePath(JNIEnv* env, jobje
const auto user_id = manager.GetUser(static_cast<std::size_t>(0));
ASSERT(user_id);
const auto nandDir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir);
const auto nandDir = Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir);
auto vfsNandDir = system.GetFilesystem()->OpenDirectory(Common::FS::PathToUTF8String(nandDir),
FileSys::OpenMode::Read);

View File

@@ -44,7 +44,7 @@ bool IsProfileNameValid(std::string_view profile_name) {
}
bool ProfileExistsInFilesystem(std::string_view profile_name) {
return Common::FS::Exists(Common::FS::GetYuzuPath(Common::FS::YuzuPath::ConfigDir) / "input" /
return Common::FS::Exists(Common::FS::GetCitronPath(Common::FS::CitronPath::ConfigDir) / "input" /
fmt::format("{}.ini", profile_name));
}
@@ -304,7 +304,7 @@ void Java_org_citron_citron_1emu_features_input_NativeInput_loadInputProfiles(JN
jobject j_obj) {
map_profiles.clear();
const auto input_profile_loc =
Common::FS::GetYuzuPath(Common::FS::YuzuPath::ConfigDir) / "input";
Common::FS::GetCitronPath(Common::FS::CitronPath::ConfigDir) / "input";
if (Common::FS::IsDir(input_profile_loc)) {
Common::FS::IterateDirEntries(

View File

@@ -117,7 +117,7 @@
<string name="install_game_content_help_link">https://citron-emu.org/help/quickstart/#dumping-installed-updates</string>
<string name="custom_driver_not_supported">Driver kustom tidak didukung</string>
<string name="custom_driver_not_supported_description">Driver kustom saat ini tidak dapat digunakan pada perangkat ini. \nCek opsi ini lain waktu untuk mengetahui apakah dapat digunakan!</string>
<string name="manage_citron_data">Kelola data Yuzu.</string>
<string name="manage_citron_data">Kelola data Citron.</string>
<string name="manage_citron_data_description">Impor/expor firmware, key, data pengguna, dan sebagainya!</string>
<string name="share_save_file">Bagikan file simpanan.</string>
<string name="export_save_failed">Gagal mengekspor simpanan.</string>

View File

@@ -117,7 +117,7 @@
<string name="install_game_content_help_link">https://citron-emu.org/help/quickstart/#dumping-installed-updates</string>
<string name="custom_driver_not_supported">I driver personalizzati non sono supportati.</string>
<string name="custom_driver_not_supported_description">I driver personalizzati non sono attualmente supportati su questo dispositivo.\n Ricontrolla in futuro.</string>
<string name="manage_citron_data">Gestisci i dati di Yuzu</string>
<string name="manage_citron_data">Gestisci i dati di Citron</string>
<string name="manage_citron_data_description">Importa/Esporta il firmware, le keys, i dati utente, e altro!</string>
<string name="share_save_file">Condividi i tuoi dati di salvataggio</string>
<string name="export_save_failed">Errore durante l\'esportazione del salvataggio</string>
@@ -163,7 +163,7 @@
<string name="exporting_user_data">Esportazione dei Dati Utente...</string>
<string name="importing_user_data">Importazione dei Dati Utente...</string>
<string name="import_user_data">Importa i Dati Utente</string>
<string name="invalid_citron_backup">Backup di Yuzu Invalido</string>
<string name="invalid_citron_backup">Backup di Citron Invalido</string>
<string name="user_data_export_success">Dati Utente esportati con successo</string>
<string name="user_data_import_success">Dati Utente importati con successo.</string>
<string name="user_data_export_cancelled">Esportazione annullata</string>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Yuzu.Main.MaterialYou" parent="Theme.Yuzu.Main">
<style name="Theme.Citron.Main.MaterialYou" parent="Theme.Citron.Main">
<item name="colorPrimary">@color/m3_sys_color_dynamic_dark_primary</item>
<item name="colorOnPrimary">@color/m3_sys_color_dynamic_dark_on_primary</item>
<item name="colorPrimaryContainer">@color/m3_sys_color_dynamic_dark_primary_container</item>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ThemeOverlay.Yuzu.Dark" parent="">
<style name="ThemeOverlay.Citron.Dark" parent="">
<item name="colorSurface">@android:color/black</item>
<item name="android:colorBackground">@android:color/black</item>
</style>

View File

@@ -32,7 +32,7 @@
<string name="search_and_filter_games">Procura e filtra jogos</string>
<string name="select_games_folder">Seleciona a pasta de jogos</string>
<string name="manage_game_folders">Gerenciar pastas de jogos</string>
<string name="select_games_folder_description">Permite que o Yuzu preencha a lista de jogos</string>
<string name="select_games_folder_description">Permite que o Citron preencha a lista de jogos</string>
<string name="add_games_warning">Ignorar a seleção da pasta de jogos?</string>
<string name="add_games_warning_description">Os jogos não serão exibidos na lista de jogos se uma pasta não estiver selecionada.</string>
<string name="add_games_warning_help">https://citron-emu.org/help/quickstart/#dumping-games</string>
@@ -48,7 +48,7 @@
<string name="notifications_description">Conceda a permissão de notificação com o botão abaixo.</string>
<string name="give_permission">Conceder permissão</string>
<string name="notification_warning">Ignorar a concessão da permissão de notificação?</string>
<string name="notification_warning_description">O Yuzu não irá te notificar de informações importantes. </string>
<string name="notification_warning_description">O Citron não irá te notificar de informações importantes. </string>
<string name="permission_denied">Permissão negada</string>
<string name="permission_denied_description">Você negou essa permissão muitas vezes e agora precisa concedê-la manualmente nas configurações do sistema.</string>
<string name="about">Sobre</string>
@@ -76,11 +76,11 @@
<string name="search_recently_added">Adicionado recentemente</string>
<string name="search_retail">Jogos comerciais</string>
<string name="search_homebrew">Homebrew</string>
<string name="open_user_folder">Abrir a pasta do Yuzu</string>
<string name="open_user_folder_description">Gerencie os arquivos internos do Yuzu</string>
<string name="open_user_folder">Abrir a pasta do Citron</string>
<string name="open_user_folder_description">Gerencie os arquivos internos do Citron</string>
<string name="theme_and_color_description">Altere a aparência do aplicativo</string>
<string name="no_file_manager">Nenhum gerenciador de arquivos encontrado</string>
<string name="notification_no_directory_link">Não foi possível abrir a pasta do Yuzu</string>
<string name="notification_no_directory_link">Não foi possível abrir a pasta do Citron</string>
<string name="notification_no_directory_link_description">Por favor localize manualmente a pasta do usuário, com o painel lateral do gerenciador de arquivos.</string>
<string name="manage_save_data">Gerenciar os dados salvos dos jogos</string>
<string name="manage_save_data_description">Dados salvos encontrados. Por favor selecione uma opção abaixo.</string>
@@ -166,7 +166,7 @@
<string name="copied_to_clipboard">Copiado para a área de transferência</string>
<string name="about_app_description">Um emulador de Switch de código aberto</string>
<string name="contributors">Colaboradores</string>
<string name="contributors_description">Feito com \u2764 da equipe do Yuzu</string>
<string name="contributors_description">Feito com \u2764 da equipe do Citron</string>
<string name="contributors_link">https://github.com/citron-emu/citron/graphs/contributors</string>
<string name="licenses_description">Projetos que tornam o citron para Android possível</string>
<string name="build">Versão da Compilação</string>

View File

@@ -32,7 +32,7 @@
<string name="search_and_filter_games">Procura e filtra jogos.</string>
<string name="select_games_folder">Seleciona a pasta de jogos.</string>
<string name="manage_game_folders">Gerencie as pastas de jogos</string>
<string name="select_games_folder_description">Permite que o Yuzu preencha a lista de jogos</string>
<string name="select_games_folder_description">Permite que o Citron preencha a lista de jogos</string>
<string name="add_games_warning">Ignorar a seleção da pasta de jogos?</string>
<string name="add_games_warning_description">Os jogos não serão exibidos na lista de jogos se uma pasta não estiver selecionada.</string>
<string name="add_games_warning_help">https://citron-emu.org/help/quickstart/#dumping-games</string>
@@ -48,7 +48,7 @@
<string name="notifications_description">Conceda a permissão de notificação com o botão abaixo.</string>
<string name="give_permission">Conceda permissão</string>
<string name="notification_warning">Saltar a concessão da permissão de notificação?</string>
<string name="notification_warning_description">Yuzu não conseguirá te notificar de informações importantes. </string>
<string name="notification_warning_description">Citron não conseguirá te notificar de informações importantes. </string>
<string name="permission_denied">Permissão negada</string>
<string name="permission_denied_description">Você negou essa permissão muitas vezes e agora precisa concedê-la manualmente nas configurações do sistema.</string>
<string name="about">Sobre</string>
@@ -76,11 +76,11 @@
<string name="search_recently_added">Adicionado recentemente</string>
<string name="search_retail">Jogos comerciais</string>
<string name="search_homebrew">Homebrew</string>
<string name="open_user_folder">Abre a pasta Yuzu</string>
<string name="open_user_folder_description">Gere os ficheiro internos do Yuzu</string>
<string name="open_user_folder">Abre a pasta Citron</string>
<string name="open_user_folder_description">Gere os ficheiro internos do Citron</string>
<string name="theme_and_color_description">Modifica a aparência da App</string>
<string name="no_file_manager">Nenhum gestor de ficheiros encontrado</string>
<string name="notification_no_directory_link">Impossível abrir pasta Yuzu</string>
<string name="notification_no_directory_link">Impossível abrir pasta Citron</string>
<string name="notification_no_directory_link_description">Localiza a pasta de utilizador manualmente com o painel lateral do gestor de ficheiros.</string>
<string name="manage_save_data">Gerir dados guardados</string>
<string name="manage_save_data_description">Dados não encontrados. Por favor seleciona uma opção abaixo.</string>
@@ -166,7 +166,7 @@
<string name="copied_to_clipboard">Copiado para a área de transferência</string>
<string name="about_app_description">Um emulador Switch de código aberto</string>
<string name="contributors">Contribuidores</string>
<string name="contributors_description">Feito com \u2764 da equipa do Yuzu</string>
<string name="contributors_description">Feito com \u2764 da equipa do Citron</string>
<string name="contributors_link">https://github.com/citron-emu/citron/graphs/contributors</string>
<string name="licenses_description">Projetos que tornam o citron para Android possível</string>
<string name="build">Versão</string>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Yuzu.Main.MaterialYou" parent="Theme.Yuzu.Main">
<style name="Theme.Citron.Main.MaterialYou" parent="Theme.Citron.Main">
<item name="colorPrimary">@color/m3_sys_color_dynamic_light_primary</item>
<item name="colorOnPrimary">@color/m3_sys_color_dynamic_light_on_primary</item>
<item name="colorPrimaryContainer">@color/m3_sys_color_dynamic_light_primary_container</item>

View File

@@ -13,22 +13,22 @@
<item name="android:paddingRight">32dp</item>
</style>
<style name="YuzuSlider" parent="Widget.Material3.Slider">
<style name="CitronSlider" parent="Widget.Material3.Slider">
<item name="tickVisible">false</item>
<item name="labelBehavior">gone</item>
</style>
<style name="YuzuMaterialDialog" parent="ThemeOverlay.Material3.MaterialAlertDialog">
<style name="CitronMaterialDialog" parent="ThemeOverlay.Material3.MaterialAlertDialog">
<item name="colorPrimary">@color/citron_primaryContainer</item>
<item name="colorSurface">@color/citron_primaryContainer</item>
<item name="colorSecondary">@color/citron_primary</item>
<item name="android:textColorLink">@color/citron_primary</item>
<item name="buttonBarPositiveButtonStyle">@style/YuzuButton</item>
<item name="buttonBarNegativeButtonStyle">@style/YuzuButton</item>
<item name="buttonBarNeutralButtonStyle">@style/YuzuButton</item>
<item name="buttonBarPositiveButtonStyle">@style/CitronButton</item>
<item name="buttonBarNegativeButtonStyle">@style/CitronButton</item>
<item name="buttonBarNeutralButtonStyle">@style/CitronButton</item>
</style>
<style name="YuzuButton" parent="Widget.Material3.Button.TextButton.Dialog">
<style name="CitronButton" parent="Widget.Material3.Button.TextButton.Dialog">
<item name="android:textColor">@color/citron_primary</item>
<item name="rippleColor">@color/citron_inversePrimary</item>
</style>

View File

@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Yuzu.Splash.Main" parent="Theme.SplashScreen">
<style name="Theme.Citron.Splash.Main" parent="Theme.SplashScreen">
<item name="windowSplashScreenBackground">@color/citron_surface</item>
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_citron</item>
<item name="postSplashScreenTheme">@style/Theme.Yuzu.Main</item>
<item name="postSplashScreenTheme">@style/Theme.Citron.Main</item>
</style>
<style name="Theme.Yuzu.Main" parent="Theme.Material3.DayNight.NoActionBar">
<style name="Theme.Citron.Main" parent="Theme.Material3.DayNight.NoActionBar">
<item name="colorPrimary">@color/citron_primary</item>
<item name="colorOnPrimary">@color/citron_onPrimary</item>
<item name="colorPrimaryContainer">@color/citron_primaryContainer</item>
@@ -39,8 +39,8 @@
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="sliderStyle">@style/YuzuSlider</item>
<item name="materialAlertDialogTheme">@style/YuzuMaterialDialog</item>
<item name="sliderStyle">@style/CitronSlider</item>
<item name="materialAlertDialogTheme">@style/CitronMaterialDialog</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>

View File

@@ -386,7 +386,7 @@ bool IsCubebSuitable() {
// Test opening a device with standard parameters
cubeb_devid output_device{0};
cubeb_devid input_device{0};
std::string name{"Yuzu test"};
std::string name{"Citron test"};
cubeb_stream* stream{nullptr};
if (cubeb_stream_init(ctx, &stream, name.c_str(), input_device, nullptr, output_device, &params,

View File

@@ -449,7 +449,7 @@ if (WIN32 AND QT_VERSION VERSION_GREATER_EQUAL 6)
endif()
if (YUZU_USE_BUNDLED_QT AND QT_VERSION VERSION_LESS 6)
include(CopyYuzuQt5Deps)
include(CopyCitronQt5Deps)
copy_citron_Qt5_deps(citron)
endif()
@@ -459,8 +459,8 @@ if (ENABLE_SDL2)
endif()
if (MSVC)
include(CopyYuzuSDLDeps)
include(CopyYuzuFFmpegDeps)
include(CopyCitronSDLDeps)
include(CopyCitronFFmpegDeps)
copy_citron_SDL_deps(citron)
copy_citron_FFmpeg_deps(citron)
endif()

View File

@@ -61,7 +61,7 @@
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="labelYuzu">
<widget class="QLabel" name="labelCitron">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>

View File

@@ -30,7 +30,7 @@ QString FormatUserEntryText(const QString& username, Common::UUID uuid) {
QString GetImagePath(Common::UUID uuid) {
const auto path =
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) /
Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir) /
fmt::format("system/save/8000000000000010/su/avators/{}.jpg", uuid.FormattedString());
return QString::fromStdString(Common::FS::PathToUTF8String(path));
}

View File

@@ -57,7 +57,7 @@ QtNXWebEngineView::QtNXWebEngineView(QWidget* parent, Core::System& system,
default_profile{QWebEngineProfile::defaultProfile()}, global_settings{
default_profile->settings()} {
default_profile->setPersistentStoragePath(QString::fromStdString(Common::FS::PathToUTF8String(
Common::FS::GetYuzuPath(Common::FS::YuzuPath::YuzuDir) / "qtwebengine")));
Common::FS::GetCitronPath(Common::FS::CitronPath::CitronDir) / "qtwebengine")));
QWebEngineScript gamepad;
QWebEngineScript window_nx;
@@ -336,7 +336,7 @@ void QtNXWebEngineView::LoadExtractedFonts() {
QWebEngineScript load_nx_font;
auto fonts_dir_str = Common::FS::PathToUTF8String(
Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir) / "fonts/");
Common::FS::GetCitronPath(Common::FS::CitronPath::CacheDir) / "fonts/");
std::replace(fonts_dir_str.begin(), fonts_dir_str.end(), '\\', '/');

View File

@@ -60,7 +60,7 @@ static void PruneDumpDirectory(const std::filesystem::path& dump_path) {
void InstallCrashHandler() {
// Write crash dumps to profile directory.
const auto dump_path = GetYuzuPath(Common::FS::YuzuPath::CrashDumpsDir);
const auto dump_path = GetCitronPath(Common::FS::CitronPath::CrashDumpsDir);
PruneDumpDirectory(dump_path);
#if defined(_WIN32)

View File

@@ -21,7 +21,7 @@ ConfigureDebug::ConfigureDebug(const Core::System& system_, QWidget* parent)
connect(ui->open_log_button, &QPushButton::clicked, []() {
const auto path =
QString::fromStdString(Common::FS::GetYuzuPathString(Common::FS::YuzuPath::LogDir));
QString::fromStdString(Common::FS::GetCitronPathString(Common::FS::CitronPath::LogDir));
QDesktopServices::openUrl(QUrl::fromLocalFile(path));
});

View File

@@ -47,15 +47,15 @@ void ConfigureFilesystem::changeEvent(QEvent* event) {
void ConfigureFilesystem::SetConfiguration() {
ui->nand_directory_edit->setText(
QString::fromStdString(Common::FS::GetYuzuPathString(Common::FS::YuzuPath::NANDDir)));
QString::fromStdString(Common::FS::GetCitronPathString(Common::FS::CitronPath::NANDDir)));
ui->sdmc_directory_edit->setText(
QString::fromStdString(Common::FS::GetYuzuPathString(Common::FS::YuzuPath::SDMCDir)));
QString::fromStdString(Common::FS::GetCitronPathString(Common::FS::CitronPath::SDMCDir)));
ui->gamecard_path_edit->setText(
QString::fromStdString(Settings::values.gamecard_path.GetValue()));
ui->dump_path_edit->setText(
QString::fromStdString(Common::FS::GetYuzuPathString(Common::FS::YuzuPath::DumpDir)));
QString::fromStdString(Common::FS::GetCitronPathString(Common::FS::CitronPath::DumpDir)));
ui->load_path_edit->setText(
QString::fromStdString(Common::FS::GetYuzuPathString(Common::FS::YuzuPath::LoadDir)));
QString::fromStdString(Common::FS::GetCitronPathString(Common::FS::CitronPath::LoadDir)));
ui->gamecard_inserted->setChecked(Settings::values.gamecard_inserted.GetValue());
ui->gamecard_current_game->setChecked(Settings::values.gamecard_current_game.GetValue());
@@ -68,13 +68,13 @@ void ConfigureFilesystem::SetConfiguration() {
}
void ConfigureFilesystem::ApplyConfiguration() {
Common::FS::SetYuzuPath(Common::FS::YuzuPath::NANDDir,
Common::FS::SetCitronPath(Common::FS::CitronPath::NANDDir,
ui->nand_directory_edit->text().toStdString());
Common::FS::SetYuzuPath(Common::FS::YuzuPath::SDMCDir,
Common::FS::SetCitronPath(Common::FS::CitronPath::SDMCDir,
ui->sdmc_directory_edit->text().toStdString());
Common::FS::SetYuzuPath(Common::FS::YuzuPath::DumpDir,
Common::FS::SetCitronPath(Common::FS::CitronPath::DumpDir,
ui->dump_path_edit->text().toStdString());
Common::FS::SetYuzuPath(Common::FS::YuzuPath::LoadDir,
Common::FS::SetCitronPath(Common::FS::CitronPath::LoadDir,
ui->load_path_edit->text().toStdString());
Settings::values.gamecard_inserted = ui->gamecard_inserted->isChecked();
@@ -126,12 +126,12 @@ void ConfigureFilesystem::SetDirectory(DirectoryTarget target, QLineEdit* edit)
}
void ConfigureFilesystem::ResetMetadata() {
if (!Common::FS::Exists(Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir) /
if (!Common::FS::Exists(Common::FS::GetCitronPath(Common::FS::CitronPath::CacheDir) /
"game_list/")) {
QMessageBox::information(this, tr("Reset Metadata Cache"),
tr("The metadata cache is already empty."));
} else if (Common::FS::RemoveDirRecursively(
Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir) / "game_list")) {
Common::FS::GetCitronPath(Common::FS::CitronPath::CacheDir) / "game_list")) {
QMessageBox::information(this, tr("Reset Metadata Cache"),
tr("The operation completed successfully."));
UISettings::values.is_game_list_reload_pending.exchange(true);

View File

@@ -80,7 +80,7 @@ void ConfigurePerGameAddons::ApplyConfiguration() {
std::sort(disabled_addons.begin(), disabled_addons.end());
std::sort(current.begin(), current.end());
if (disabled_addons != current) {
Common::FS::RemoveFile(Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir) /
Common::FS::RemoveFile(Common::FS::GetCitronPath(Common::FS::CitronPath::CacheDir) /
"game_list" / fmt::format("{:016X}.pv.txt", title_id));
}

View File

@@ -35,7 +35,7 @@ constexpr std::array<u8, 107> backup_jpeg{
QString GetImagePath(const Common::UUID& uuid) {
const auto path =
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) /
Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir) /
fmt::format("system/save/8000000000000010/su/avators/{}.jpg", uuid.FormattedString());
return QString::fromStdString(Common::FS::PathToUTF8String(path));
}
@@ -288,7 +288,7 @@ void ConfigureProfileManager::SetUserImage() {
}
const auto raw_path = QString::fromStdString(Common::FS::PathToUTF8String(
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/8000000000000010"));
Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir) / "system/save/8000000000000010"));
const QFileInfo raw_info{raw_path};
if (raw_info.exists() && !raw_info.isDir() && !QFile::remove(raw_path)) {
QMessageBox::warning(this, tr("Error deleting file"),

View File

@@ -28,14 +28,14 @@ ConfigureTasDialog::~ConfigureTasDialog() = default;
void ConfigureTasDialog::LoadConfiguration() {
ui->tas_path_edit->setText(
QString::fromStdString(Common::FS::GetYuzuPathString(Common::FS::YuzuPath::TASDir)));
QString::fromStdString(Common::FS::GetCitronPathString(Common::FS::CitronPath::TASDir)));
ui->tas_enable->setChecked(Settings::values.tas_enable.GetValue());
ui->tas_loop_script->setChecked(Settings::values.tas_loop.GetValue());
ui->tas_pause_on_load->setChecked(Settings::values.pause_tas_on_load.GetValue());
}
void ConfigureTasDialog::ApplyConfiguration() {
Common::FS::SetYuzuPath(Common::FS::YuzuPath::TASDir, ui->tas_path_edit->text().toStdString());
Common::FS::SetCitronPath(Common::FS::CitronPath::TASDir, ui->tas_path_edit->text().toStdString());
Settings::values.tas_enable.SetValue(ui->tas_enable->isChecked());
Settings::values.tas_loop.SetValue(ui->tas_loop_script->isChecked());
Settings::values.pause_tas_on_load.SetValue(ui->tas_pause_on_load->isChecked());

View File

@@ -144,8 +144,8 @@ ConfigureUi::ConfigureUi(Core::System& system_, QWidget* parent)
connect(ui->screenshot_path_button, &QToolButton::pressed, this, [this] {
auto dir =
QFileDialog::getExistingDirectory(this, tr("Select Screenshots Path..."),
QString::fromStdString(Common::FS::GetYuzuPathString(
Common::FS::YuzuPath::ScreenshotsDir)));
QString::fromStdString(Common::FS::GetCitronPathString(
Common::FS::CitronPath::ScreenshotsDir)));
if (!dir.isEmpty()) {
if (dir.back() != QChar::fromLatin1('/')) {
dir.append(QChar::fromLatin1('/'));
@@ -176,7 +176,7 @@ void ConfigureUi::ApplyConfiguration() {
UISettings::values.row_2_text_id = ui->row_2_text_combobox->currentData().toUInt();
UISettings::values.enable_screenshot_save_as = ui->enable_screenshot_save_as->isChecked();
Common::FS::SetYuzuPath(Common::FS::YuzuPath::ScreenshotsDir,
Common::FS::SetCitronPath(Common::FS::CitronPath::ScreenshotsDir,
ui->screenshot_path_edit->text().toStdString());
const u32 height = ScreenshotDimensionToInt(ui->screenshot_height->currentText());
@@ -208,7 +208,7 @@ void ConfigureUi::SetConfiguration() {
ui->enable_screenshot_save_as->setChecked(
UISettings::values.enable_screenshot_save_as.GetValue());
ui->screenshot_path_edit->setText(QString::fromStdString(
Common::FS::GetYuzuPathString(Common::FS::YuzuPath::ScreenshotsDir)));
Common::FS::GetCitronPathString(Common::FS::CitronPath::ScreenshotsDir)));
const auto height = UISettings::values.screenshot_height.GetValue();
if (height == 0) {

View File

@@ -24,7 +24,7 @@
<property name="title">
<string>citron Web Service</string>
</property>
<layout class="QVBoxLayout" name="verticalLayoutYuzuWebService">
<layout class="QVBoxLayout" name="verticalLayoutCitronWebService">
<item>
<widget class="QLabel" name="web_credentials_disclaimer">
<property name="text">
@@ -33,7 +33,7 @@
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayoutYuzuUsername">
<layout class="QGridLayout" name="gridLayoutCitronUsername">
<item row="2" column="3">
<widget class="QPushButton" name="button_verify_login">
<property name="sizePolicy">

View File

@@ -14,7 +14,7 @@ namespace FS = Common::FS;
namespace {
bool ProfileExistsInFilesystem(std::string_view profile_name) {
return FS::Exists(FS::GetYuzuPath(FS::YuzuPath::ConfigDir) / "input" /
return FS::Exists(FS::GetCitronPath(FS::CitronPath::ConfigDir) / "input" /
fmt::format("{}.ini", profile_name));
}
@@ -29,7 +29,7 @@ std::filesystem::path GetNameWithoutExtension(std::filesystem::path filename) {
} // namespace
InputProfiles::InputProfiles() {
const auto input_profile_loc = FS::GetYuzuPath(FS::YuzuPath::ConfigDir) / "input";
const auto input_profile_loc = FS::GetCitronPath(FS::CitronPath::ConfigDir) / "input";
if (!FS::IsDir(input_profile_loc)) {
return;

View File

@@ -38,7 +38,7 @@ QString GetGameListCachedObject(const std::string& filename, const std::string&
}
const auto path =
Common::FS::PathToUTF8String(Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir) /
Common::FS::PathToUTF8String(Common::FS::GetCitronPath(Common::FS::CitronPath::CacheDir) /
"game_list" / fmt::format("{}.{}", filename, ext));
void(Common::FS::CreateParentDirs(path));
@@ -70,7 +70,7 @@ std::pair<std::vector<u8>, std::string> GetGameListCachedObject(
}
const auto game_list_dir =
Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir) / "game_list";
Common::FS::GetCitronPath(Common::FS::CitronPath::CacheDir) / "game_list";
const auto jpeg_name = fmt::format("{}.jpeg", filename);
const auto app_name = fmt::format("{}.appname.txt", filename);

View File

@@ -223,7 +223,7 @@ void GMainWindow::ShowTelemetryCallout() {
const int GMainWindow::max_recent_files_item;
static void RemoveCachedContents() {
const auto cache_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir);
const auto cache_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::CacheDir);
const auto offline_fonts = cache_dir / "fonts";
const auto offline_manual = cache_dir / "offline_web_applet_manual";
const auto offline_legal_information = cache_dir / "offline_web_applet_legal_information";
@@ -1600,7 +1600,7 @@ void GMainWindow::ConnectMenuEvents() {
connect_menu(ui->action_Configure_Tas, &GMainWindow::OnConfigureTas);
// Help
connect_menu(ui->action_Open_citron_Folder, &GMainWindow::OnOpenYuzuFolder);
connect_menu(ui->action_Open_citron_Folder, &GMainWindow::OnOpenCitronFolder);
connect_menu(ui->action_Verify_installed_contents, &GMainWindow::OnVerifyInstalledContents);
connect_menu(ui->action_Install_Firmware, &GMainWindow::OnInstallFirmware);
connect_menu(ui->action_Install_Keys, &GMainWindow::OnInstallDecryptionKeys);
@@ -2288,7 +2288,7 @@ void GMainWindow::OnGameListOpenFolder(u64 program_id, GameListOpenTarget target
switch (target) {
case GameListOpenTarget::SaveData: {
open_target = tr("Save Data");
const auto nand_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir);
const auto nand_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir);
auto vfs_nand_dir =
vfs->OpenDirectory(Common::FS::PathToUTF8String(nand_dir), FileSys::OpenMode::Read);
@@ -2344,7 +2344,7 @@ void GMainWindow::OnGameListOpenFolder(u64 program_id, GameListOpenTarget target
}
case GameListOpenTarget::ModData: {
open_target = tr("Mod Data");
path = Common::FS::GetYuzuPath(Common::FS::YuzuPath::LoadDir) /
path = Common::FS::GetCitronPath(Common::FS::CitronPath::LoadDir) /
fmt::format("{:016X}", program_id);
break;
}
@@ -2366,7 +2366,7 @@ void GMainWindow::OnGameListOpenFolder(u64 program_id, GameListOpenTarget target
}
void GMainWindow::OnTransferableShaderCacheOpenFile(u64 program_id) {
const auto shader_cache_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::ShaderDir);
const auto shader_cache_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::ShaderDir);
const auto shader_cache_folder_path{shader_cache_dir / fmt::format("{:016x}", program_id)};
if (!Common::FS::CreateDirs(shader_cache_folder_path)) {
QMessageBox::warning(this, tr("Error Opening Transferable Shader Cache"),
@@ -2485,7 +2485,7 @@ void GMainWindow::OnGameListRemoveInstalledEntry(u64 program_id, InstalledEntryT
RemoveAddOnContent(program_id, type);
break;
}
Common::FS::RemoveDirRecursively(Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir) /
Common::FS::RemoveDirRecursively(Common::FS::GetCitronPath(Common::FS::CitronPath::CacheDir) /
"game_list");
game_list->PopulateAsync(UISettings::values.game_dirs);
}
@@ -2591,7 +2591,7 @@ void GMainWindow::RemoveTransferableShaderCache(u64 program_id, GameListRemoveTa
return "";
}
}();
const auto shader_cache_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::ShaderDir);
const auto shader_cache_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::ShaderDir);
const auto shader_cache_folder_path = shader_cache_dir / fmt::format("{:016x}", program_id);
const auto target_file = shader_cache_folder_path / target_file_name;
@@ -2612,7 +2612,7 @@ void GMainWindow::RemoveTransferableShaderCache(u64 program_id, GameListRemoveTa
void GMainWindow::RemoveVulkanDriverPipelineCache(u64 program_id) {
static constexpr std::string_view target_file_name = "vulkan_pipelines.bin";
const auto shader_cache_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::ShaderDir);
const auto shader_cache_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::ShaderDir);
const auto shader_cache_folder_path = shader_cache_dir / fmt::format("{:016x}", program_id);
const auto target_file = shader_cache_folder_path / target_file_name;
@@ -2626,7 +2626,7 @@ void GMainWindow::RemoveVulkanDriverPipelineCache(u64 program_id) {
}
void GMainWindow::RemoveAllTransferableShaderCaches(u64 program_id) {
const auto shader_cache_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::ShaderDir);
const auto shader_cache_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::ShaderDir);
const auto program_shader_cache_dir = shader_cache_dir / fmt::format("{:016x}", program_id);
if (!Common::FS::Exists(program_shader_cache_dir)) {
@@ -2649,7 +2649,7 @@ void GMainWindow::RemoveCustomConfiguration(u64 program_id, const std::string& g
program_id == 0 ? Common::FS::PathToUTF8String(file_path.filename()).append(".ini")
: fmt::format("{:016X}.ini", program_id);
const auto custom_config_file_path =
Common::FS::GetYuzuPath(Common::FS::YuzuPath::ConfigDir) / "custom" / config_file_name;
Common::FS::GetCitronPath(Common::FS::CitronPath::ConfigDir) / "custom" / config_file_name;
if (!Common::FS::Exists(custom_config_file_path)) {
QMessageBox::warning(this, tr("Error Removing Custom Configuration"),
@@ -2667,7 +2667,7 @@ void GMainWindow::RemoveCustomConfiguration(u64 program_id, const std::string& g
}
void GMainWindow::RemoveCacheStorage(u64 program_id) {
const auto nand_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir);
const auto nand_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir);
auto vfs_nand_dir =
vfs->OpenDirectory(Common::FS::PathToUTF8String(nand_dir), FileSys::OpenMode::Read);
@@ -2725,8 +2725,8 @@ void GMainWindow::OnGameListDumpRomFS(u64 program_id, const std::string& game_pa
const auto base_romfs = base_nca->GetRomFS();
const auto dump_dir =
target == DumpRomFSTarget::Normal
? Common::FS::GetYuzuPath(Common::FS::YuzuPath::DumpDir)
: Common::FS::GetYuzuPath(Common::FS::YuzuPath::SDMCDir) / "atmosphere" / "contents";
? Common::FS::GetCitronPath(Common::FS::CitronPath::DumpDir)
: Common::FS::GetCitronPath(Common::FS::CitronPath::SDMCDir) / "atmosphere" / "contents";
const auto romfs_dir = fmt::format("{:016X}/romfs", title_id);
const auto path = Common::FS::PathToUTF8String(dump_dir / romfs_dir);
@@ -2981,10 +2981,10 @@ bool GMainWindow::CreateShortcutMessagesGUI(QWidget* parent, int imsg, const QSt
bool GMainWindow::MakeShortcutIcoPath(const u64 program_id, const std::string_view game_file_name,
std::filesystem::path& out_icon_path) {
// Get path to Yuzu icons directory & icon extension
// Get path to Citron icons directory & icon extension
std::string ico_extension = "png";
#if defined(_WIN32)
out_icon_path = Common::FS::GetYuzuPath(Common::FS::YuzuPath::IconsDir);
out_icon_path = Common::FS::GetCitronPath(Common::FS::CitronPath::IconsDir);
ico_extension = "ico";
#elif defined(__linux__) || defined(__FreeBSD__)
out_icon_path = Common::FS::GetDataDirectory("XDG_DATA_HOME") / "icons/hicolor/256x256";
@@ -3107,13 +3107,13 @@ void GMainWindow::OnGameListOpenDirectory(const QString& directory) {
std::filesystem::path fs_path;
if (directory == QStringLiteral("SDMC")) {
fs_path =
Common::FS::GetYuzuPath(Common::FS::YuzuPath::SDMCDir) / "Nintendo/Contents/registered";
Common::FS::GetCitronPath(Common::FS::CitronPath::SDMCDir) / "Nintendo/Contents/registered";
} else if (directory == QStringLiteral("UserNAND")) {
fs_path =
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "user/Contents/registered";
Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir) / "user/Contents/registered";
} else if (directory == QStringLiteral("SysNAND")) {
fs_path =
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/Contents/registered";
Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir) / "system/Contents/registered";
} else {
fs_path = directory.toStdString();
}
@@ -3339,7 +3339,7 @@ void GMainWindow::OnMenuInstallToNAND() {
: tr("%n file(s) failed to install\n", "", failed_files.size()));
QMessageBox::information(this, tr("Install Results"), install_results);
Common::FS::RemoveDirRecursively(Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir) /
Common::FS::RemoveDirRecursively(Common::FS::GetCitronPath(Common::FS::CitronPath::CacheDir) /
"game_list");
game_list->PopulateAsync(UISettings::values.game_dirs);
ui->action_Install_File_NAND->setEnabled(true);
@@ -3759,11 +3759,11 @@ void GMainWindow::OnConfigure() {
LOG_WARNING(Frontend, "Failed to remove configuration file");
}
if (!Common::FS::RemoveDirContentsRecursively(
Common::FS::GetYuzuPath(Common::FS::YuzuPath::ConfigDir) / "custom")) {
Common::FS::GetCitronPath(Common::FS::CitronPath::ConfigDir) / "custom")) {
LOG_WARNING(Frontend, "Failed to remove custom configuration files");
}
if (!Common::FS::RemoveDirRecursively(
Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir) / "game_list")) {
Common::FS::GetCitronPath(Common::FS::CitronPath::CacheDir) / "game_list")) {
LOG_WARNING(Frontend, "Failed to remove game metadata cache files");
}
@@ -4119,9 +4119,9 @@ void GMainWindow::LoadAmiibo(const QString& filename) {
}
}
void GMainWindow::OnOpenYuzuFolder() {
void GMainWindow::OnOpenCitronFolder() {
QDesktopServices::openUrl(QUrl::fromLocalFile(
QString::fromStdString(Common::FS::GetYuzuPathString(Common::FS::YuzuPath::YuzuDir))));
QString::fromStdString(Common::FS::GetCitronPathString(Common::FS::CitronPath::CitronDir))));
}
void GMainWindow::OnVerifyInstalledContents() {
@@ -4336,7 +4336,7 @@ void GMainWindow::OnInstallDecryptionKeys() {
return;
}
const auto citron_keys_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::KeysDir);
const auto citron_keys_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::KeysDir);
for (auto key_file : source_key_files) {
std::filesystem::path destination_key_file = citron_keys_dir / key_file.filename();
if (!std::filesystem::copy_file(key_file, destination_key_file,
@@ -4489,7 +4489,7 @@ void GMainWindow::OnCaptureScreenshot() {
const u64 title_id = system->GetApplicationProcessProgramID();
const auto screenshot_path =
QString::fromStdString(Common::FS::GetYuzuPathString(Common::FS::YuzuPath::ScreenshotsDir));
QString::fromStdString(Common::FS::GetCitronPathString(Common::FS::CitronPath::ScreenshotsDir));
const auto date =
QDateTime::currentDateTime().toString(QStringLiteral("yyyy-MM-dd_hh-mm-ss-zzz"));
QString filename = QStringLiteral("%1/%2_%3.png")
@@ -4517,7 +4517,7 @@ void GMainWindow::OnCaptureScreenshot() {
// TODO: Written 2020-10-01: Remove per-game config migration code when it is irrelevant
void GMainWindow::MigrateConfigFiles() {
const auto config_dir_fs_path = Common::FS::GetYuzuPath(Common::FS::YuzuPath::ConfigDir);
const auto config_dir_fs_path = Common::FS::GetCitronPath(Common::FS::CitronPath::ConfigDir);
const QDir config_dir =
QDir(QString::fromStdString(Common::FS::PathToUTF8String(config_dir_fs_path)));
const QStringList config_dir_list = config_dir.entryList(QStringList(QStringLiteral("*.ini")));

View File

@@ -377,7 +377,7 @@ private slots:
void OnToggleAdaptingFilter();
void OnConfigurePerGame();
void OnLoadAmiibo();
void OnOpenYuzuFolder();
void OnOpenCitronFolder();
void OnVerifyInstalledContents();
void OnInstallFirmware();
void OnInstallDecryptionKeys();

View File

@@ -26,7 +26,7 @@ std::optional<std::filesystem::path> GetCurrentUserPlayTimePath(
if (!uuid.has_value()) {
return std::nullopt;
}
return Common::FS::GetYuzuPath(Common::FS::YuzuPath::PlayTimeDir) /
return Common::FS::GetCitronPath(Common::FS::CitronPath::PlayTimeDir) /
uuid->RawString().append(".bin");
}

View File

@@ -57,7 +57,7 @@ u32 CalculateWidth(u32 height, Settings::AspectRatio ratio) {
void SaveWindowState() {
const auto window_state_config_loc =
FS::PathToUTF8String(FS::GetYuzuPath(FS::YuzuPath::ConfigDir) / "window_state.ini");
FS::PathToUTF8String(FS::GetCitronPath(FS::CitronPath::ConfigDir) / "window_state.ini");
void(FS::CreateParentDir(window_state_config_loc));
QSettings config(QString::fromStdString(window_state_config_loc), QSettings::IniFormat);
@@ -73,12 +73,12 @@ void SaveWindowState() {
void RestoreWindowState(std::unique_ptr<QtConfig>& qtConfig) {
const auto window_state_config_loc =
FS::PathToUTF8String(FS::GetYuzuPath(FS::YuzuPath::ConfigDir) / "window_state.ini");
FS::PathToUTF8String(FS::GetCitronPath(FS::CitronPath::ConfigDir) / "window_state.ini");
// Migrate window state from old location
if (!FS::Exists(window_state_config_loc) && qtConfig->Exists("UI", "UILayout\\geometry")) {
const auto config_loc =
FS::PathToUTF8String(FS::GetYuzuPath(FS::YuzuPath::ConfigDir) / "qt-config.ini");
FS::PathToUTF8String(FS::GetCitronPath(FS::CitronPath::ConfigDir) / "qt-config.ini");
QSettings config(QString::fromStdString(config_loc), QSettings::IniFormat);
config.beginGroup(QStringLiteral("UI"));

View File

@@ -54,7 +54,7 @@ if(WIN32)
endif()
if (MSVC)
include(CopyYuzuSDLDeps)
include(CopyCitronSDLDeps)
copy_citron_SDL_deps(citron-cmd)
endif()

View File

@@ -356,35 +356,35 @@ jfieldID GetPlayerInputUseSystemVibratorField() {
return s_player_input_use_system_vibrator_field;
}
jclass GetYuzuInputDeviceInterface() {
jclass GetCitronInputDeviceInterface() {
return s_citron_input_device_interface;
}
jmethodID GetYuzuDeviceGetName() {
jmethodID GetCitronDeviceGetName() {
return s_citron_input_device_get_name;
}
jmethodID GetYuzuDeviceGetGUID() {
jmethodID GetCitronDeviceGetGUID() {
return s_citron_input_device_get_guid;
}
jmethodID GetYuzuDeviceGetPort() {
jmethodID GetCitronDeviceGetPort() {
return s_citron_input_device_get_port;
}
jmethodID GetYuzuDeviceGetSupportsVibration() {
jmethodID GetCitronDeviceGetSupportsVibration() {
return s_citron_input_device_get_supports_vibration;
}
jmethodID GetYuzuDeviceVibrate() {
jmethodID GetCitronDeviceVibrate() {
return s_citron_input_device_vibrate;
}
jmethodID GetYuzuDeviceGetAxes() {
jmethodID GetCitronDeviceGetAxes() {
return s_citron_input_device_get_axes;
}
jmethodID GetYuzuDeviceHasKeys() {
jmethodID GetCitronDeviceHasKeys() {
return s_citron_input_device_has_keys;
}
@@ -531,7 +531,7 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) {
env->DeleteLocalRef(player_input_class);
const jclass citron_input_device_interface =
env->FindClass("org/citron/citron_emu/features/input/YuzuInputDevice");
env->FindClass("org/citron/citron_emu/features/input/CitronInputDevice");
s_citron_input_device_interface =
reinterpret_cast<jclass>(env->NewGlobalRef(citron_input_device_interface));
s_citron_input_device_get_name =

View File

@@ -100,13 +100,13 @@ jfieldID GetPlayerInputButtonColorRightField();
jfieldID GetPlayerInputProfileNameField();
jfieldID GetPlayerInputUseSystemVibratorField();
jclass GetYuzuInputDeviceInterface();
jmethodID GetYuzuDeviceGetName();
jmethodID GetYuzuDeviceGetGUID();
jmethodID GetYuzuDeviceGetPort();
jmethodID GetYuzuDeviceGetSupportsVibration();
jmethodID GetYuzuDeviceVibrate();
jmethodID GetYuzuDeviceGetAxes();
jmethodID GetYuzuDeviceHasKeys();
jclass GetCitronInputDeviceInterface();
jmethodID GetCitronDeviceGetName();
jmethodID GetCitronDeviceGetGUID();
jmethodID GetCitronDeviceGetPort();
jmethodID GetCitronDeviceGetSupportsVibration();
jmethodID GetCitronDeviceVibrate();
jmethodID GetCitronDeviceGetAxes();
jmethodID GetCitronDeviceHasKeys();
} // namespace Common::Android

View File

@@ -56,10 +56,10 @@ namespace fs = std::filesystem;
/**
* The PathManagerImpl is a singleton allowing to manage the mapping of
* YuzuPath enums to real filesystem paths.
* This class provides 2 functions: GetYuzuPathImpl and SetYuzuPathImpl.
* These are used by GetYuzuPath and SetYuzuPath respectively to get or modify
* the path mapped by the YuzuPath enum.
* CitronPath enums to real filesystem paths.
* This class provides 2 functions: GetCitronPathImpl and SetCitronPathImpl.
* These are used by GetCitronPath and SetCitronPath respectively to get or modify
* the path mapped by the CitronPath enum.
*/
class PathManagerImpl {
public:
@@ -75,11 +75,11 @@ public:
PathManagerImpl(PathManagerImpl&&) = delete;
PathManagerImpl& operator=(PathManagerImpl&&) = delete;
[[nodiscard]] const fs::path& GetYuzuPathImpl(YuzuPath citron_path) {
[[nodiscard]] const fs::path& GetCitronPathImpl(CitronPath citron_path) {
return citron_paths.at(citron_path);
}
void SetYuzuPathImpl(YuzuPath citron_path, const fs::path& new_path) {
void SetCitronPathImpl(CitronPath citron_path, const fs::path& new_path) {
citron_paths.insert_or_assign(citron_path, new_path);
}
@@ -115,22 +115,22 @@ public:
}
#endif
GenerateYuzuPath(YuzuPath::YuzuDir, citron_path);
GenerateYuzuPath(YuzuPath::AmiiboDir, citron_path / AMIIBO_DIR);
GenerateYuzuPath(YuzuPath::CacheDir, citron_path_cache);
GenerateYuzuPath(YuzuPath::ConfigDir, citron_path_config);
GenerateYuzuPath(YuzuPath::CrashDumpsDir, citron_path / CRASH_DUMPS_DIR);
GenerateYuzuPath(YuzuPath::DumpDir, citron_path / DUMP_DIR);
GenerateYuzuPath(YuzuPath::KeysDir, citron_path / KEYS_DIR);
GenerateYuzuPath(YuzuPath::LoadDir, citron_path / LOAD_DIR);
GenerateYuzuPath(YuzuPath::LogDir, citron_path / LOG_DIR);
GenerateYuzuPath(YuzuPath::NANDDir, citron_path / NAND_DIR);
GenerateYuzuPath(YuzuPath::PlayTimeDir, citron_path / PLAY_TIME_DIR);
GenerateYuzuPath(YuzuPath::ScreenshotsDir, citron_path / SCREENSHOTS_DIR);
GenerateYuzuPath(YuzuPath::SDMCDir, citron_path / SDMC_DIR);
GenerateYuzuPath(YuzuPath::ShaderDir, citron_path / SHADER_DIR);
GenerateYuzuPath(YuzuPath::TASDir, citron_path / TAS_DIR);
GenerateYuzuPath(YuzuPath::IconsDir, citron_path / ICONS_DIR);
GenerateCitronPath(CitronPath::CitronDir, citron_path);
GenerateCitronPath(CitronPath::AmiiboDir, citron_path / AMIIBO_DIR);
GenerateCitronPath(CitronPath::CacheDir, citron_path_cache);
GenerateCitronPath(CitronPath::ConfigDir, citron_path_config);
GenerateCitronPath(CitronPath::CrashDumpsDir, citron_path / CRASH_DUMPS_DIR);
GenerateCitronPath(CitronPath::DumpDir, citron_path / DUMP_DIR);
GenerateCitronPath(CitronPath::KeysDir, citron_path / KEYS_DIR);
GenerateCitronPath(CitronPath::LoadDir, citron_path / LOAD_DIR);
GenerateCitronPath(CitronPath::LogDir, citron_path / LOG_DIR);
GenerateCitronPath(CitronPath::NANDDir, citron_path / NAND_DIR);
GenerateCitronPath(CitronPath::PlayTimeDir, citron_path / PLAY_TIME_DIR);
GenerateCitronPath(CitronPath::ScreenshotsDir, citron_path / SCREENSHOTS_DIR);
GenerateCitronPath(CitronPath::SDMCDir, citron_path / SDMC_DIR);
GenerateCitronPath(CitronPath::ShaderDir, citron_path / SHADER_DIR);
GenerateCitronPath(CitronPath::TASDir, citron_path / TAS_DIR);
GenerateCitronPath(CitronPath::IconsDir, citron_path / ICONS_DIR);
}
private:
@@ -140,13 +140,13 @@ private:
~PathManagerImpl() = default;
void GenerateYuzuPath(YuzuPath citron_path, const fs::path& new_path) {
void GenerateCitronPath(CitronPath citron_path, const fs::path& new_path) {
void(FS::CreateDir(new_path));
SetYuzuPathImpl(citron_path, new_path);
SetCitronPathImpl(citron_path, new_path);
}
std::unordered_map<YuzuPath, fs::path> citron_paths;
std::unordered_map<CitronPath, fs::path> citron_paths;
};
bool ValidatePath(const fs::path& path) {
@@ -230,22 +230,22 @@ void SetAppDirectory(const std::string& app_directory) {
PathManagerImpl::GetInstance().Reinitialize(app_directory);
}
const fs::path& GetYuzuPath(YuzuPath citron_path) {
return PathManagerImpl::GetInstance().GetYuzuPathImpl(citron_path);
const fs::path& GetCitronPath(CitronPath citron_path) {
return PathManagerImpl::GetInstance().GetCitronPathImpl(citron_path);
}
std::string GetYuzuPathString(YuzuPath citron_path) {
return PathToUTF8String(GetYuzuPath(citron_path));
std::string GetCitronPathString(CitronPath citron_path) {
return PathToUTF8String(GetCitronPath(citron_path));
}
void SetYuzuPath(YuzuPath citron_path, const fs::path& new_path) {
void SetCitronPath(CitronPath citron_path, const fs::path& new_path) {
if (!FS::IsDir(new_path)) {
LOG_ERROR(Common_Filesystem, "Filesystem object at new_path={} is not a directory",
PathToUTF8String(new_path));
return;
}
PathManagerImpl::GetInstance().SetYuzuPathImpl(citron_path, new_path);
PathManagerImpl::GetInstance().SetCitronPathImpl(citron_path, new_path);
}
#ifdef _WIN32

View File

@@ -10,8 +10,8 @@
namespace Common::FS {
enum class YuzuPath {
YuzuDir, // Where citron stores its data.
enum class CitronPath {
CitronDir, // Where citron stores its data.
AmiiboDir, // Where Amiibo backups are stored.
CacheDir, // Where cached filesystem data is stored.
ConfigDir, // Where config files are stored.
@@ -193,39 +193,39 @@ template <typename Path>
void SetAppDirectory(const std::string& app_directory);
/**
* Gets the filesystem path associated with the YuzuPath enum.
* Gets the filesystem path associated with the CitronPath enum.
*
* @param citron_path YuzuPath enum
* @param citron_path CitronPath enum
*
* @returns The filesystem path associated with the YuzuPath enum.
* @returns The filesystem path associated with the CitronPath enum.
*/
[[nodiscard]] const std::filesystem::path& GetYuzuPath(YuzuPath citron_path);
[[nodiscard]] const std::filesystem::path& GetCitronPath(CitronPath citron_path);
/**
* Gets the filesystem path associated with the YuzuPath enum as a UTF-8 encoded std::string.
* Gets the filesystem path associated with the CitronPath enum as a UTF-8 encoded std::string.
*
* @param citron_path YuzuPath enum
* @param citron_path CitronPath enum
*
* @returns The filesystem path associated with the YuzuPath enum as a UTF-8 encoded std::string.
* @returns The filesystem path associated with the CitronPath enum as a UTF-8 encoded std::string.
*/
[[nodiscard]] std::string GetYuzuPathString(YuzuPath citron_path);
[[nodiscard]] std::string GetCitronPathString(CitronPath citron_path);
/**
* Sets a new filesystem path associated with the YuzuPath enum.
* Sets a new filesystem path associated with the CitronPath enum.
* If the filesystem object at new_path is not a directory, this function will not do anything.
*
* @param citron_path YuzuPath enum
* @param citron_path CitronPath enum
* @param new_path New filesystem path
*/
void SetYuzuPath(YuzuPath citron_path, const std::filesystem::path& new_path);
void SetCitronPath(CitronPath citron_path, const std::filesystem::path& new_path);
#ifdef _WIN32
template <typename Path>
void SetYuzuPath(YuzuPath citron_path, const Path& new_path) {
void SetCitronPath(CitronPath citron_path, const Path& new_path) {
if constexpr (IsChar<typename Path::value_type>) {
SetYuzuPath(citron_path, ToU8String(new_path));
SetCitronPath(citron_path, ToU8String(new_path));
} else {
SetYuzuPath(citron_path, std::filesystem::path{new_path});
SetCitronPath(citron_path, std::filesystem::path{new_path});
}
}
#endif
@@ -288,11 +288,11 @@ enum class DirectorySeparator {
};
// Splits the path on '/' or '\' and put the components into a vector
// i.e. "C:\Users\Yuzu\Documents\save.bin" becomes {"C:", "Users", "Yuzu", "Documents", "save.bin" }
// i.e. "C:\Users\Citron\Documents\save.bin" becomes {"C:", "Users", "Citron", "Documents", "save.bin" }
[[nodiscard]] std::vector<std::string_view> SplitPathComponents(std::string_view filename);
// Splits the path on '/' or '\' and put the components into a vector
// i.e. "C:\Users\Yuzu\Documents\save.bin" becomes {"C:", "Users", "Yuzu", "Documents", "save.bin" }
// i.e. "C:\Users\Citron\Documents\save.bin" becomes {"C:", "Users", "Citron", "Documents", "save.bin" }
[[nodiscard]] std::vector<std::string> SplitPathComponentsCopy(std::string_view filename);
// Removes trailing slash, makes all '\\' into '/', and removes duplicate '/'. Makes '/' into '\\'

View File

@@ -195,7 +195,7 @@ public:
return;
}
using namespace Common::FS;
const auto& log_dir = GetYuzuPath(YuzuPath::LogDir);
const auto& log_dir = GetCitronPath(CitronPath::LogDir);
void(CreateDir(log_dir));
Filter filter;
filter.ParseFilterString(Settings::values.log_filter.GetValue());

View File

@@ -138,7 +138,7 @@ void PrintMessageToLogcat(const Entry& entry) {
case Level::Count:
UNREACHABLE();
}
__android_log_print(android_log_priority, "YuzuNative", "%s", str.c_str());
__android_log_print(android_log_priority, "CitronNative", "%s", str.c_str());
#endif
}
} // namespace Common::Log

View File

@@ -14,7 +14,7 @@ namespace Common {
void ConfigureNvidiaEnvironmentFlags() {
#ifdef _WIN32
const auto nvidia_shader_dir =
Common::FS::GetYuzuPath(Common::FS::YuzuPath::ShaderDir) / "nvidia";
Common::FS::GetCitronPath(Common::FS::CitronPath::ShaderDir) / "nvidia";
if (!Common::FS::CreateDirs(nvidia_shader_dir)) {
return;

View File

@@ -130,11 +130,11 @@ void LogSettings() {
log_setting(name, setting->Canonicalize());
}
}
log_path("DataStorage_CacheDir", Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir));
log_path("DataStorage_ConfigDir", Common::FS::GetYuzuPath(Common::FS::YuzuPath::ConfigDir));
log_path("DataStorage_LoadDir", Common::FS::GetYuzuPath(Common::FS::YuzuPath::LoadDir));
log_path("DataStorage_NANDDir", Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir));
log_path("DataStorage_SDMCDir", Common::FS::GetYuzuPath(Common::FS::YuzuPath::SDMCDir));
log_path("DataStorage_CacheDir", Common::FS::GetCitronPath(Common::FS::CitronPath::CacheDir));
log_path("DataStorage_ConfigDir", Common::FS::GetCitronPath(Common::FS::CitronPath::ConfigDir));
log_path("DataStorage_LoadDir", Common::FS::GetCitronPath(Common::FS::CitronPath::LoadDir));
log_path("DataStorage_NANDDir", Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir));
log_path("DataStorage_SDMCDir", Common::FS::GetCitronPath(Common::FS::CitronPath::SDMCDir));
}
void UpdateGPUAccuracy() {

View File

@@ -372,7 +372,7 @@ Key128 DeriveKeyblobMACKey(const Key128& keyblob_key, const Key128& mac_source)
std::optional<Key128> DeriveSDSeed() {
const auto system_save_43_path =
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/8000000000000043";
Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir) / "system/save/8000000000000043";
const Common::FS::IOFile save_43{system_save_43_path, Common::FS::FileAccessMode::Read,
Common::FS::FileType::BinaryFile};
@@ -381,7 +381,7 @@ std::optional<Key128> DeriveSDSeed() {
}
const auto sd_private_path =
Common::FS::GetYuzuPath(Common::FS::YuzuPath::SDMCDir) / "Nintendo/Contents/private";
Common::FS::GetCitronPath(Common::FS::CitronPath::SDMCDir) / "Nintendo/Contents/private";
const Common::FS::IOFile sd_private{sd_private_path, Common::FS::FileAccessMode::Read,
Common::FS::FileType::BinaryFile};
@@ -640,7 +640,7 @@ KeyManager::KeyManager() {
void KeyManager::ReloadKeys() {
// Initialize keys
const auto citron_keys_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::KeysDir);
const auto citron_keys_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::KeysDir);
if (!Common::FS::CreateDir(citron_keys_dir)) {
LOG_ERROR(Core, "Failed to create the keys directory.");
@@ -847,7 +847,7 @@ Key256 KeyManager::GetBISKey(u8 partition_id) const {
template <size_t Size>
void KeyManager::WriteKeyToFile(KeyCategory category, std::string_view keyname,
const std::array<u8, Size>& key) {
const auto citron_keys_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::KeysDir);
const auto citron_keys_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::KeysDir);
std::string filename = "title.keys_autogenerated";
@@ -869,7 +869,7 @@ void KeyManager::WriteKeyToFile(KeyCategory category, std::string_view keyname,
if (add_info_text) {
void(file.WriteString(
"# This file is autogenerated by Yuzu\n"
"# This file is autogenerated by Citron\n"
"# It serves to store keys that were automatically generated from the normal keys\n"
"# If you are experiencing issues involving keys, it may help to delete this file\n"));
}
@@ -947,7 +947,7 @@ void KeyManager::SetKey(S256KeyType id, Key256 key, u64 field1, u64 field2) {
}
bool KeyManager::KeyFileExists(bool title) {
const auto citron_keys_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::KeysDir);
const auto citron_keys_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::KeysDir);
if (title) {
return Common::FS::Exists(citron_keys_dir / "title.keys");
@@ -1197,7 +1197,7 @@ void KeyManager::PopulateTickets() {
std::vector<Ticket> tickets;
const auto system_save_e1_path =
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/80000000000000e1";
Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir) / "system/save/80000000000000e1";
if (Common::FS::Exists(system_save_e1_path)) {
const Common::FS::IOFile save_e1{system_save_e1_path, Common::FS::FileAccessMode::Read,
Common::FS::FileType::BinaryFile};
@@ -1206,7 +1206,7 @@ void KeyManager::PopulateTickets() {
}
const auto system_save_e2_path =
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/80000000000000e2";
Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir) / "system/save/80000000000000e2";
if (Common::FS::Exists(system_save_e2_path)) {
const Common::FS::IOFile save_e2{system_save_e2_path, Common::FS::FileAccessMode::Read,
Common::FS::FileType::BinaryFile};

View File

@@ -83,7 +83,7 @@ VirtualFile BISFactory::OpenPartitionStorage(BisPartitionId id,
VirtualFilesystem file_system) const {
auto& keys = Core::Crypto::KeyManager::Instance();
Core::Crypto::PartitionDataManager pdm{file_system->OpenDirectory(
Common::FS::GetYuzuPathString(Common::FS::YuzuPath::NANDDir), OpenMode::Read)};
Common::FS::GetCitronPathString(Common::FS::CitronPath::NANDDir), OpenMode::Read)};
keys.PopulateFromPartitionData(pdm);
switch (id) {

View File

@@ -437,7 +437,7 @@ void RegisteredCache::ProcessFiles(const std::vector<NcaID>& ids) {
}
}
void RegisteredCache::AccumulateYuzuMeta() {
void RegisteredCache::AccumulateCitronMeta() {
const auto meta_dir = dir->GetSubdirectory("citron_meta");
if (meta_dir == nullptr) {
return;
@@ -460,7 +460,7 @@ void RegisteredCache::Refresh() {
const auto ids = AccumulateFiles();
ProcessFiles(ids);
AccumulateYuzuMeta();
AccumulateCitronMeta();
}
RegisteredCache::RegisteredCache(VirtualDir dir_, ContentProviderParsingFunction parsing_function)
@@ -668,7 +668,7 @@ InstallResult RegisteredCache::InstallEntry(const NCA& nca, TitleType type,
mbedtls_sha256_ret(data.data(), data.size(), c_rec.hash.data(), 0);
std::memcpy(&c_rec.nca_id, &c_rec.hash, 16);
const CNMT new_cnmt(header, opt_header, {c_rec}, {});
if (!RawInstallYuzuMeta(new_cnmt)) {
if (!RawInstallCitronMeta(new_cnmt)) {
return InstallResult::ErrorMetaFailed;
}
return RawInstallNCA(nca, copy, overwrite_if_exists, c_rec.nca_id);
@@ -693,7 +693,7 @@ InstallResult RegisteredCache::InstallEntry(const NCA& nca, const CNMTHeader& ba
};
const OptionalHeader opt_header{0, 0};
const CNMT new_cnmt(header, opt_header, {base_record}, {});
if (!RawInstallYuzuMeta(new_cnmt)) {
if (!RawInstallCitronMeta(new_cnmt)) {
return InstallResult::ErrorMetaFailed;
}
return RawInstallNCA(nca, copy, overwrite_if_exists, base_record.nca_id);
@@ -802,7 +802,7 @@ InstallResult RegisteredCache::RawInstallNCA(const NCA& nca, const VfsCopyFuncti
: InstallResult::ErrorCopyFailed;
}
bool RegisteredCache::RawInstallYuzuMeta(const CNMT& cnmt) {
bool RegisteredCache::RawInstallCitronMeta(const CNMT& cnmt) {
// Reasoning behind this method can be found in the comment for InstallEntry, NCA overload.
const auto meta_dir = dir->CreateDirectoryRelative("citron_meta");
const auto filename = GetCNMTName(cnmt.GetType(), cnmt.GetTitleID());

View File

@@ -184,13 +184,13 @@ private:
std::function<bool(const CNMT&, const ContentRecord&)> filter) const;
std::vector<NcaID> AccumulateFiles() const;
void ProcessFiles(const std::vector<NcaID>& ids);
void AccumulateYuzuMeta();
void AccumulateCitronMeta();
std::optional<NcaID> GetNcaIDFromMetadata(u64 title_id, ContentRecordType type) const;
VirtualFile GetFileAtID(NcaID id) const;
VirtualFile OpenFileOrDirectoryConcat(const VirtualDir& open_dir, std::string_view path) const;
InstallResult RawInstallNCA(const NCA& nca, const VfsCopyFunction& copy,
bool overwrite_if_exists, std::optional<NcaID> override_id = {});
bool RawInstallYuzuMeta(const CNMT& cnmt);
bool RawInstallCitronMeta(const CNMT& cnmt);
VirtualDir dir;
ContentProviderParsingFunction parser;

View File

@@ -36,7 +36,7 @@ namespace Service::Account {
constexpr std::size_t THUMBNAIL_SIZE = 0x24000;
static std::filesystem::path GetImagePath(const Common::UUID& uuid) {
return Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) /
return Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir) /
fmt::format("system/save/8000000000000010/su/avators/{}.jpg", uuid.FormattedString());
}
@@ -833,7 +833,7 @@ Result Module::Interface::InitializeApplicationInfoBase() {
case FileSys::StorageId::Host:
case FileSys::StorageId::NandUser:
case FileSys::StorageId::SdCard:
case FileSys::StorageId::None: // Yuzu specific, differs from hardware
case FileSys::StorageId::None: // Citron specific, differs from hardware
application_info.application_type = ApplicationType::Digital;
break;
default:

View File

@@ -377,7 +377,7 @@ bool ProfileManager::SetProfileBaseAndData(Common::UUID uuid, const ProfileBase&
}
void ProfileManager::ParseUserSaveFile() {
const auto save_path(FS::GetYuzuPath(FS::YuzuPath::NANDDir) / ACC_SAVE_AVATORS_BASE_PATH /
const auto save_path(FS::GetCitronPath(FS::CitronPath::NANDDir) / ACC_SAVE_AVATORS_BASE_PATH /
"profiles.dat");
const FS::IOFile save(save_path, FS::FileAccessMode::Read, FS::FileType::BinaryFile);
@@ -429,12 +429,12 @@ void ProfileManager::WriteUserSaveFile() {
};
}
const auto raw_path(FS::GetYuzuPath(FS::YuzuPath::NANDDir) / "system/save/8000000000000010");
const auto raw_path(FS::GetCitronPath(FS::CitronPath::NANDDir) / "system/save/8000000000000010");
if (FS::IsFile(raw_path) && !FS::RemoveFile(raw_path)) {
return;
}
const auto save_path(FS::GetYuzuPath(FS::YuzuPath::NANDDir) / ACC_SAVE_AVATORS_BASE_PATH /
const auto save_path(FS::GetCitronPath(FS::CitronPath::NANDDir) / ACC_SAVE_AVATORS_BASE_PATH /
"profiles.dat");
if (!FS::CreateParentDirs(save_path)) {

View File

@@ -155,7 +155,7 @@ void ExtractSharedFonts(Core::System& system) {
"FontNintendoExtended2.ttf",
};
const auto fonts_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir) / "fonts";
const auto fonts_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::CacheDir) / "fonts";
for (std::size_t i = 0; i < NS::SHARED_FONTS.size(); ++i) {
const auto font_file_path = fonts_dir / DECRYPTED_SHARED_FONTS[i];
@@ -415,7 +415,7 @@ void WebBrowser::InitializeOffline() {
"system_data",
};
offline_cache_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir) /
offline_cache_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::CacheDir) /
fmt::format("offline_web_applet_{}/{:016X}",
RESOURCE_TYPES[static_cast<u32>(document_kind) - 1], title_id);

View File

@@ -353,7 +353,7 @@ Result ISelfController::GetAccumulatedSuspendedTickValue(
LOG_DEBUG(Service_AM, "called.");
// This command returns the total number of system ticks since ISelfController creation
// where the game was suspended. Since Yuzu doesn't implement game suspension, this command
// where the game was suspended. Since Citron doesn't implement game suspension, this command
// can just always return 0 ticks.
std::scoped_lock lk{m_applet->lock};
*out_accumulated_suspended_tick_value = m_applet->suspended_ticks;

View File

@@ -303,7 +303,7 @@ void AlbumManager::FindScreenshots() {
album_files.clear();
// TODO: Swap this with a blocking operation.
const auto screenshots_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::ScreenshotsDir);
const auto screenshots_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::ScreenshotsDir);
Common::FS::IterateDirEntries(
screenshots_dir,
[this](const std::filesystem::path& full_path) {
@@ -438,7 +438,7 @@ static void PNGToMemory(void* context, void* data, int len) {
Result AlbumManager::SaveImage(ApplicationAlbumEntry& out_entry, std::span<const u8> image,
u64 title_id, const AlbumFileDateTime& date) const {
const auto screenshot_path =
Common::FS::GetYuzuPathString(Common::FS::YuzuPath::ScreenshotsDir);
Common::FS::GetCitronPathString(Common::FS::CitronPath::ScreenshotsDir);
const std::string formatted_date =
fmt::format("{:04}-{:02}-{:02}_{:02}-{:02}-{:02}-{:03}", date.year, date.month, date.day,
date.hour, date.minute, date.second, 0);

View File

@@ -66,7 +66,7 @@ enum class FatalType : u32 {
static void GenerateErrorReport(Core::System& system, Result error_code, const FatalInfo& info) {
const auto title_id = system.GetApplicationProcessProgramID();
std::string crash_report = fmt::format(
"Yuzu {}-{} crash report\n"
"Citron {}-{} crash report\n"
"Title ID: {:016x}\n"
"Result: 0x{:X} ({:04}-{:04d})\n"
"Set flags: 0x{:16X}\n"

View File

@@ -346,12 +346,12 @@ std::shared_ptr<SaveDataController> FileSystemController::OpenSaveDataController
std::shared_ptr<FileSys::SaveDataFactory> FileSystemController::CreateSaveDataFactory(
ProgramId program_id) {
using YuzuPath = Common::FS::YuzuPath;
using CitronPath = Common::FS::CitronPath;
const auto rw_mode = FileSys::OpenMode::ReadWrite;
auto vfs = system.GetFilesystem();
const auto nand_directory =
vfs->OpenDirectory(Common::FS::GetYuzuPathString(YuzuPath::NANDDir), rw_mode);
vfs->OpenDirectory(Common::FS::GetCitronPathString(CitronPath::NANDDir), rw_mode);
return std::make_shared<FileSys::SaveDataFactory>(system, program_id,
std::move(nand_directory));
}
@@ -683,20 +683,20 @@ void FileSystemController::CreateFactories(FileSys::VfsFilesystem& vfs, bool ove
sdmc_factory = nullptr;
}
using YuzuPath = Common::FS::YuzuPath;
const auto sdmc_dir_path = Common::FS::GetYuzuPath(YuzuPath::SDMCDir);
using CitronPath = Common::FS::CitronPath;
const auto sdmc_dir_path = Common::FS::GetCitronPath(CitronPath::SDMCDir);
const auto sdmc_load_dir_path = sdmc_dir_path / "atmosphere/contents";
const auto rw_mode = FileSys::OpenMode::ReadWrite;
auto nand_directory =
vfs.OpenDirectory(Common::FS::GetYuzuPathString(YuzuPath::NANDDir), rw_mode);
vfs.OpenDirectory(Common::FS::GetCitronPathString(CitronPath::NANDDir), rw_mode);
auto sd_directory = vfs.OpenDirectory(Common::FS::PathToUTF8String(sdmc_dir_path), rw_mode);
auto load_directory = vfs.OpenDirectory(Common::FS::GetYuzuPathString(YuzuPath::LoadDir),
auto load_directory = vfs.OpenDirectory(Common::FS::GetCitronPathString(CitronPath::LoadDir),
FileSys::OpenMode::Read);
auto sd_load_directory = vfs.OpenDirectory(Common::FS::PathToUTF8String(sdmc_load_dir_path),
FileSys::OpenMode::Read);
auto dump_directory =
vfs.OpenDirectory(Common::FS::GetYuzuPathString(YuzuPath::DumpDir), rw_mode);
vfs.OpenDirectory(Common::FS::GetCitronPathString(CitronPath::DumpDir), rw_mode);
if (bis_factory == nullptr) {
bis_factory = std::make_unique<FileSys::BISFactory>(

Some files were not shown because too many files have changed in this diff Show More