···7272See https://www.rockbox.org/wiki/UsingGit for details on how to setup your
7373environment and how to upload a change you have made for review.
74747575-We'd prefer that you don't submit patches to the bug tracker any more,
7575+We strongly prefer that you don't submit patches to the bug tracker,
7676as it's much harder to read and discuss them there.
77777878Credits
···8080We believe in crediting all contributors by name. Before committing a patch to
8181Git, we ask that you give us your full real name (no pseudonyms or nicknames)
8282for adding to the credits list.
8383+8484+Generative AI
8585+-------------
8686+We are highly unlikely to review or accept AI-generated or "vibe coded"
8787+code; our time is very limited, and we need to know that *you* understand
8888+exactly what the code is doing and why, so that we can review it
8989+effectively with you.
9090+9191+Code is of no value to Rockbox if it is not maintainable, and it cannot
9292+be maintained if it is not understood. Quality is more important than
9393+quantity.
9494+9595+If you really *must* submit AI-generated code, you will need to include
9696+prompt provenance including the model used, dates and full content of
9797+prompts, and the unedited LLM output. See the article "Track Prompt
9898+Provenance in Version Control" at https://medium.com/@psluaces/track-prompt-provenance-in-version-control-8746e2bad3c2)
9999+by Pablo Santos Luaces.
···11+/***************************************************************************
22+ * __________ __ ___
33+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
44+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
55+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
66+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
77+ * \/ \/ \/ \/ \/
88+ *
99+ * Copyright (C) 2026 by Roman Artiukhin
1010+ *
1111+ * This program is free software; you can redistribute it and/or
1212+ * modify it under the terms of the GNU General Public License
1313+ * as published by the Free Software Foundation; either version 2
1414+ * of the License, or (at your option) any later version.
1515+ *
1616+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
1717+ * KIND, either express or implied.
1818+ ****************************************************************************/
1919+2020+2121+#ifndef __BUTTON_DEVINPUT_H__
2222+#define __BUTTON_DEVINPUT_H__
2323+2424+void button_close_device(void);
2525+void button_add_input_device(int i);
2626+void button_remove_input_device(int i);
2727+2828+#endif
···178178 to make the singer sound centrally placed, this often (but not
179179 always) has the effect of removing the voice track from a song. This
180180 setting also very often has other undesirable effects on the sound.
181181+ \item[Swap Left \& Right.]
182182+ Plays the left channel in the right stereo channel, and the right
183183+ channel in the left stereo channel.
181184 \end{description}
182185183186\section{Stereo Width}
+8-8
manual/platform/keymap-fiiom3k.tex
···7878\newcommand{\ActionKbdAbort}{\ButtonPower}
79798080%Button actions, Pitch Screen context
8181-\newcommand{\ActionPsToggleMode}{\ButtonSelect}
8282-\newcommand{\ActionPsIncSmall}{\ButtonUp{} or \ButtonScrollBack}
8383-\newcommand{\ActionPsDecSmall}{\ButtonDown{} or \ButtonScrollFwd}
8484-\newcommand{\ActionPsIncBig}{\ButtonVolUp}
8585-\newcommand{\ActionPsDecBig}{\ButtonVolDown}
8181+\newcommand{\ActionPsToggleMode}{\ButtonMenu}
8282+\newcommand{\ActionPsIncSmall}{\ButtonUp}
8383+\newcommand{\ActionPsDecSmall}{\ButtonDown}
8484+\newcommand{\ActionPsIncBig}{Long \ButtonUp{} or \ButtonScrollBack}
8585+\newcommand{\ActionPsDecBig}{Long \ButtonDown {} or \ButtonScrollFwd}
8686\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
8787\newcommand{\ActionPsNudgeRight}{\ButtonRight}
8888\newcommand{\ActionPsReset}{Long \ButtonSelect}
8989-\newcommand{\ActionPsExit}{\ButtonPower}
9090-\newcommand{\ActionPsFaster}{\ButtonBack}
9191-\newcommand{\ActionPsSlower}{\ButtonMenu}
8989+\newcommand{\ActionPsExit}{\ButtonBack{} or \ButtonSelect}
9090+\newcommand{\ActionPsFaster}{Long \ButtonRight}
9191+\newcommand{\ActionPsSlower}{Long \ButtonLeft}
92929393%Button actions, Bookmark screen context
9494\newcommand{\ActionBmDelete}{\ButtonPlay}
···11+% $Id$ %
22+\subsection{Countdown_timer}
33+44+A countdown timer. Set the desired duration, start the countdown, and the
55+\dap{} will alert you with a beep sequence when time is up. The timer
66+defaults to 10 minutes on launch.
77+88+\subsubsection{Setting the timer}
99+1010+When the plugin starts, the display shows the time to count down from with
1111+the active field highlighted in brackets (e.g.\ \texttt{[10]:00}).
1212+1313+\begin{btnmap}
1414+ \opt{scrollwheel}{\PluginScrollFwd{} / \PluginScrollBack{} or }
1515+ \PluginUp{} / \PluginDown
1616+ \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp{} / \PluginRCDown}
1717+ & Increase / decrease the selected field \\
1818+1919+ \PluginLeft{} / \PluginRight
2020+ \opt{HAVEREMOTEKEYMAP}{& \PluginRCLeft{} / \PluginRCRight}
2121+ & Switch between the minutes and seconds fields \\
2222+2323+ \PluginSelect
2424+ \opt{HAVEREMOTEKEYMAP}{& \PluginRCSelect}
2525+ & Start the countdown \\
2626+\end{btnmap}
2727+2828+Minutes can be set from 0 to 99 and seconds from 0 to 59. The timer cannot
2929+be started if both fields are zero. Values wrap around when incremented or
3030+decremented past their limits.
3131+3232+\subsubsection{Running the timer}
3333+3434+Once started, the remaining time counts down in \texttt{MM:SS} format.
3535+3636+\begin{btnmap}
3737+ \PluginSelect
3838+ \opt{HAVEREMOTEKEYMAP}{& \PluginRCSelect}
3939+ & Pause / resume the timer \\
4040+4141+ \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
4242+ \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
4343+ \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
4444+ & Quit (only available while paused) \\
4545+\end{btnmap}
4646+4747+When the countdown reaches zero the \dap{} pauses playback, turns on the
4848+backlight, and plays three beeps. After the alert the timer continues
4949+running into overtime, displaying the elapsed overtime as
5050+\texttt{-MM:SS}. Playback resumes automatically after the beep sequence.
5151+The timer can be quit by pausing it and pressing the quit button.
···143143 Deletes the currently selected file. This option applies only to files, and
144144 not to directories. Rockbox will ask for confirmation before deleting a file.
145145 Press \ActionYesNoAccept{}
146146- to confirm deletion or any other key to cancel.
146146+ to confirm deletion or any other key to cancel. When deleting a currently
147147+ playing file, the part of the file that has already been buffered (i.e. read
148148+ into the \daps\ memory) will continue playing. This may even be the whole track.
147149\item [Delete Directory.]
148150 Deletes the currently selected directory and all of the files and subdirectories
149151 it may contain. Deleted directories cannot be recovered. Use this feature with
+2-9
manual/rockbox_interface/wps.tex
···254254 \setting{Context Menu}. Then select \setting{Show Track Info}. The same steps
255255 work in the Playlist Viewer as well.}
256256257257-\subsubsection{Open With...}
258258-This \setting{Open With} function is the same as the \setting{Open With}
259259-function in the file browser's \setting{Context Menu}.
260260-261261-\subsubsection{Delete}
262262-Delete the currently playing file. The file will be deleted but the playback
263263-of the file will not stop immediately. Instead, the part of the file that
264264-has already been buffered (i.e. read into the \daps\ memory) will be played.
265265-This may even be the whole track.
257257+\subsubsection{Show in Files}
258258+Reveal the currently playing track in the \setting{File Browser}.
266259267260\opt{pitchscreen}{
268261 \subsubsection{\label{sec:pitchscreen}Pitch}