\chapter{Plugins} Plugins are little programs that Rockbox can load and run. Plugins have the file extension .rock. Most of them can be started from the main menu if you put them in the \textbf{/.rockbox/rocks} directory. Press PLAY on them to start them. Viewer plugins get started automatically by ``playing'' an associated file (i.e. text files, chip8 games), or from the ``Open with'' option on the File menu.\\ \textbf{The plugin loader} Only one plugin can be loaded at a time. Plugins run in the GUI thread and have exclusive control over the user interface. This means you cannot switch back and forth between a plugin and Rockbox. A plugin is loaded, run and then exited, which returns control to Rockbox. Music will carry on playing whilst plugins are being run. \section{Games} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano} {See also the Chip{}-8 emulator on page \pageref{ref:Chip8emulator} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor}{, Rockboy on page \pageref{ref:Rockboy} and Sudoku on page \pageref{ref:Sudoku}}.} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/brickmania.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/chessbox.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/flipit.tex}} \opt{player}{\input{plugins/jackpot.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/jewels.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/minesweeper.tex}} \opt{player}{\input{plugins/nim.tex}} \opt{h1xx,h300,ipodcolor,ipodnano}{\input{plugins/pacbox.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/pong.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/rockblox.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/sliding.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/snake.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/snake2.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/sokoban.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/solitaire.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/star.tex}} \opt{recorder,recorderv2fm}{\input{plugins/wormlet.tex}} \opt{h1xx,h300,ipodcolor,ipodnano,ipodvideo}{\input{plugins/xobox.tex}} \section{Demos} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/bounce.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/cube.tex}} \opt{HAVE_LCD_BITMAP}{\input{plugins/demystify.tex}} \opt{HAVE_LCD_BITMAP}{\input{plugins/fire.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300}{\input{plugins/grayscale.tex}} {\input{plugins/hello.tex}} {\input{plugins/logo.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/mandelbrot.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/mosaic.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/oscilloscope.tex}} \opt{HAVE_LCD_BITMAP}{\input{plugins/plasma.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/snow.tex}} \opt{HAVE_LCD_BITMAP}{\input{plugins/starfield.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/vumeter.tex}} \section{\label{ref:Viewersplugins}Viewers} Viewers are plugins which are associated with specific file extensions. They cannot be run directly but are started by ``playing'' the associated file. Viewers are stored in the \textbf{/.rockbox/viewers/ }directory. \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/chip8emulator.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/jpegviewer.tex}} \opt{recorder,recorderv2fm,ondio}{\input{plugins/movieplayer.tex}} \opt{recorder,recorderv2fm,ondio}{\input{plugins/rockbox_flash.tex}} \opt{recorder,recorderv2fm,h1xx,h300,ipodcolor}{\input{plugins/rockboy.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/search.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/sort.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor}{\input{plugins/sudoku.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/text_viewer.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/vbrfix.tex}} \section{Applications} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/battery_test.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/calculator.tex}} \opt{recorder,recorderv2fm,ondio}{\input{plugins/calendar.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/chess_clock.tex}} \opt{recorder,recorderv2fm}{\input{plugins/clock.tex}} \opt{recorder,recorderv2fm}{\input{plugins/euro_converter.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/favorites.tex}} \opt{recorder,recorderv2fm,ondio}{\input{plugins/firmware_flash.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/metronome.tex}} \opt{recorder,recorderv2fm,ondio}{\input{plugins/split_editor.tex}} \opt{recorder,recorderv2fm,ondio,h1xx,h300,ipodcolor,ipodnano}{\input{plugins/stopwatch.tex}}