<html>
  <head>
    <title>Blinker - Transformer</title>
  </head>
  <body>
    <h1>Blinker - Transformer</h1>
    <p>
      The transformer module applies a transformation to each frame of a
      stream. The possible transformations are rotations and mirroring
      operations.
      It receives a single input stream, transforms its frames and passes it
      on.
    </p>
    <h2>Configuration</h2>
    <p>
      The configuration of the transformer module with name <code>NAME</code>
      is located in the <code>transformers/NAME</code> subdirectory.
    </p>
    <h3>Input Stream</h3>
    <p>
      The file <code>instream</code> contains the name of the stream to
      receive.
      The frames received from this stream are transformed and passed to the
      output stream.
    </p>
    <h3>Transformation</h3>
    <p>
      The file <code>transform</code> describes the transformation to apply.
      The file must contain a string from the following list:
      <table>
        <tr><td><code>none</code></td>
            <td width="2em"></td>
            <td>apply no transformation</td></tr>
        <tr><td><code>rotcw</code></td>
            <td width="2em"></td>
            <td>rotate 90 degrees clockwise</td></tr>
        <tr><td><code>rotccw</code></td>
            <td width="2em"></td>
            <td>rotate 90 degrees counter-clockwise</td></tr>
        <tr><td><code>rothalf</code></td>
            <td width="2em"></td>
            <td>rotate 180 degrees</td></tr>
        <tr><td><code>mirhor</code></td>
            <td width="2em"></td>
            <td>mirror horizontally</td></tr>
        <tr><td><code>mirver</code></td>
            <td width="2em"></td>
            <td>mirror vertically</td></tr>
        <tr><td><code>mirdiag</code></td>
            <td width="2em"></td>
            <td>mirror diagonally (\)</td></tr>