<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>libkate: Format - header packet type 0x80 - ID header</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li class="current"><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul> </div> </div> <div class="contents"> <h1><a class="anchor" id="format_0x80">Format - header packet type 0x80 - ID header </a></h1><p>The ID header must be the first packet in a Kate stream. It carries information about the stream.</p> <p>Here is a table description of the format of the ID header:</p> <div class="fragment"><pre class="fragment"> * Kate bitstream version 0.3 * * Default field type: LITTLE ENDIAN unsigned integer 0 1 2 3 | 0 1 2 3 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1| Byte +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | packtype | Identifier char[7]: 'kate\0\0\0' | 0-3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | kate magic continued | 4-7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | reserved - 0 | version major | version minor | num headers | 8-11 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | text encoding | directionality| reserved - 0 | granule shift | 12-15 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | cw sh | canvas width | ch sh | canvas height | 16-19 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | reserved - 0 | 20-23 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | granule rate numerator | 24-27 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | granule rate denominator | 28-31 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | language (NUL terminated) | 32-35 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | language (continued) | 36-39 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | language (continued) | 40-43 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | language (continued) | 44-47 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | category (NUL terminated) | 48-51 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | category (continued) | 52-55 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | category (continued) | 56-59 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | category (continued) | 60-63 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ </pre></div><p>and for a description of those fields:</p> <ul> <li><code>packtype</code> the packet type for this header - always 0x80</li> </ul> <ul> <li><code>kate</code> <code>magic</code> the 7 byte string "kate\0\0\0", as all other Kate headers</li> </ul> <ul> <li><code>version</code> <code>major</code> the major version number of the bitstream</li> </ul> <ul> <li><code>version</code> <code>minor</code> the minor version number of the bitstream</li> </ul> <ul> <li><code>num</code> <code>headers</code> the number of header packets present in this stream</li> </ul> <ul> <li><code>text</code> <code>encoding</code> the default encoding used by text (usually 0, UTF-8)</li> </ul> <ul> <li><code>directionality</code> the default directionality of the text</li> </ul> <ul> <li><code>granule</code> <code>shift</code> the number of bits in the granule positions reserved for storing the offset part</li> </ul> <ul> <li><code>cw</code> <code>sh</code> (from bitstream 0.2) the number of bits to left shift the <code>canvas</code> <code>width</code> field to compute the original canvas width </li> <li><code>canvas</code> width (from bitstream 0.2) the number to shift left by <code>cw</code> <code>sh</code> to compute the original canvas width</li> </ul> <p>zero is a valid width, and represents an unset width</p> <ul> <li><code>ch</code> <code>sh</code> (from bitstream 0.2) the number of bits to left shift the <code>canvas</code> <code>height</code> field to compute the original canvas height </li> <li><code>canvas</code> height (from bitstream 0.2) the number to shift left by <code>ch</code> <code>sh</code> to compute the original canvas height</li> </ul> <p>zero is a valid height, and represents an unset height</p> <ul> <li><code>granule</code> <code>rate</code> <code>numerator</code> the numerator of the fraction representing how many granule units represent a second (from bitstream 0.2)</li> </ul> <ul> <li><code>granule</code> <code>rate</code> <code>denominator</code> the denominator of the fraction representing how many granule units represent a second</li> </ul> <ul> <li><code>language</code> the default language of the text in this stream (will be NUL terminated)</li> </ul> <p>an empty string is a valid language, and represents an unset language</p> <ul> <li><code>category</code> the category of the text in this stream (will be NUL terminated)</li> </ul> <p>an empty string is a valid category, and represents an unset category</p> <p>All fields marked as "reserved - 0" should be set to zero when encoding a stream with this version of the bitstream format. However, if decoding a stream encoded with a version of the bitstream format with the same bitstream major version but a higher bitstream minor version, those fields may be non zero, if they were subsequently allocated to carry additional information. </p> </div> <hr size="1"/><address style="text-align: right;"><small>Generated on Wed Dec 23 04:05:07 2009 for libkate by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address> </body> </html>