catcodec(1) [debian man page]
CATCODEC(1) BSD General Commands Manual CATCODEC(1) NAME
catcodec -- An open source tool to decode/encode the sample catalogue for OpenTTD SYNOPSIS
catcodec [-d sample_file] [-e sample_file] DESCRIPTION
catcodec decodes and encodes sample catalogues for OpenTTD. These sample catalogues are not much more than some meta-data (description and file name) and raw PCM data. Decoding a sample catalogue, e.g. sample.cat, results in a sample.sfo that contains the file names and descriptions of the samples and all samples with the file name as specified in the catalogue. Encoding a sample catalogue, e.g. sample.cat, reads sample.sfo for the file names and descriptions. It will then load the samples described in sample.sfo and encodes these into sample.cat. Generally speaking encoding a file and then decoding it results in the same file. Decoding of the original, Transport Tycoon Deluxe, sample format will force the output to be 11025 Hz, 8 bits mono because the meta-data of some of the samples is incorrect or even missing. Only PCM WAVE files with only the format and data chunks are supported. Any other formats need to be converted into this. Furthermore only 11025 Hz, 22050 Hz and 44100 Hz with 8 or 16 bits per sample single channel PCM WAVE files are supported. OPTIONS
-d sample_file Decode the given sample catalogue into its components. The sample_file must have the extension '.cat'. For the output meta- data file the '.cat' is replaced with '.sfo'. The actual samples, in PCM WAVE format, are extracted into files using the file names, including extension, as described in the catalogue or meta-data file. If any of the files already exists a backup is made, by adding '.bak', overwriting the existing backup. -e sample_file Encode the components for the given sample file into a sample catalogue. The sample_file must have the extension '.cat'. For the input meta-data file the '.cat' is replaced with '.sfo'. The actual samples, in PCM WAVE format, are read from files using the file names, including extension, as described in the meta-data file. If the sample_file already exists a backup is made, by adding '.bak', overwriting the existing backup. SEE ALSO
openttd(1) the game that uses these sample catalogues. AUTHORS
Remko Bijker <rubidium@openttd.org> November 05, 2009
Check Out this Related Man Page
RDSWAP(1) General Commands Manual RDSWAP(1) ["NAME"] rdswap - a multi-language RD documents support tool ["SYNOPSIS"] rdswap [ -h | -v ] filename ... ["DESCRIPTION"] This tool is written to support you to write multi-language documents using the Ruby-Document-Format (RD). The idea for such a tool was originated by Minero Aoki, how has thought about, how to make life easier for developers who have to write and maintain scripts in more than one language. You have to specify at least two filenames on the command line. One containing the Ruby script, the second containing a translated RD. If the script does not end with `.rb', it has to be the first filename mentioned on the command line! In opposition, all files containing translations must not ending with `.rb'! They should use a extension that describes the language. So that would give us the following pic- ture: o sample.rb : Script contains the original documentation. o sample.jp : Documentation written in Japanese. o sample.de : Translation to German. The tool doesn't care about the language extensions. You can name them as you like! So the file containing the Japanese translation above, could also be names e.g. `sample.japan' or even `japantranslation.japan'. For every translation file, a new file will be created. The name is build from the script filename plus the language extension. So regard- ing the example above, following files would be created: o sample.rb.jp o sample.rb.de or, given the alternative translation filename as mentioned above... o sample.rb.japan ["How does it work?"] The contents of all files will be split into source and RD blocks. The source of the translation files, will be discarded! Every RD block may be of a certain type. The type will be taken from the contents directly following the `=begin' on the same line. If there is only a lonely `=begin' on a line by itself, the type of the block is `nil'. That means in # File sample.rd : =begin bla bla =end : =begin whatever or not blub blub =end : the first block would be of type `nil' and the second one of type `whatever or not'. Block types are important for the translation. If a source will be generated from a script and a translation file, only these blocks are taken from the translation files, that comes in the right sequence and contains the same type as the block in the script! For example: # File sample.rb : =begin gnark Some comment =end : =begin block 2 =end : =begin block 3 =end : # File sample.de : =begin Block zwei =end : =begin Block drei =end : Here, the first block of `sample.rb' will *not* be translated, as there is no translation block with that type in sample.de! So the first block would be inserted as-it-is into the translated script. The blocks afterwards, however, are translated as the block type does match (it is `nil' there). Attention: In a translation file, a second block will only be used, if a first one was already used (matched). A third block will only be used, if a second one was used already! That means, if the first block of `sample.de' would be of type e.g. `Never match', then no block would ever be taken to replace anyone of `sample.rb'. ["OPTIONS"] ["-h"] shows this help text. ["-v"] shows some more text during processing. ["filename"] means a file, that contains RD and/or Ruby code. ["EXAMPLES"] rdswap -v sample.rb sample.ja sample.de rdswap -v sample.ja sample.rb sample.de rdswap -v sample.ja sample.de sample.rb rdswap -v sample.?? ["AUTHORS"] Clemens Hintze <c.hintze@gmx.net>. June 2012 RDSWAP(1)