## Classes
EventEmitterObjectModule containing utility functions
Returns a 256 color, see https://en.wikipedia.org/wiki/ANSI_escape_code#Colors for more info.
Returns a basic ansi color, see https://en.wikipedia.org/wiki/ANSI_escape_code#Colors for more info.
Returns a malformed 24-bit ansi color
Returns an ANSI code for 24-bit True Color, see https://en.wikipedia.org/wiki/ANSI_escape_code#Colors and look for 24-bit colors for more info. Only looks good in supported terminals, otherwise looks like FakeColor
Draws concentric circles. Each ring has its own color.
Draws moving gradient boxes
Draws small moving gradient boxes and repeats them.
Draws random colors
Draws random sprinkles in the screen each frame. Same color per frame.
StringA function that represents a screen, it is called frequently and should return a string consisting of commands to run.
StringA function that represents a renderer, it should take in a color in RGB and return a string with the appropriate code to colorize the terminal.
String
A function that represents a screen, it is called frequently and should
return a string consisting of commands to run.
**Kind**: global interface
**Returns**: String - The commands used to render the screen elements
| Param | Type | Description |
| --- | --- | --- |
| modulation | Number | A number between 0 and 255 representing the current step of the modulation |
| width | Number | The width of the screen |
| height | Number | The height of the screen |
| renderer | [IRenderer](#IRenderer) | The renderer used to colorize the scfeen |
## IRenderer ⇒ String
A function that represents a renderer, it should take in a color in RGB and
return a string with the appropriate code to colorize the terminal.
**Kind**: global interface
**Returns**: String - The commands used to colorize the terminal
| Param | Type | Description |
| --- | --- | --- |
| red | Number | The red component of the color between 0 and 255 |
| green | Number | The green component of the color between 0 and 255 |
| blue | Number | The green component of the color between 0 and 255 |
## TomatoSauce ⇐ EventEmitter
**Kind**: global class
**Extends**: EventEmitter
**Properties**
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| screens | [Array.<IScreen>](#IScreen) | | an array of screens available to serve |
| renderers | [Array.<IRenderer>](#IRenderer) | | an array of renderers available to colorize |
| [port] | Number | 9999 | the port to listen on |
| [frequency] | Number | 333 | how often to update the screen |
| [modulation] | Number | 5 | number between 0-255 depicting current modulation step |
* [TomatoSauce](#TomatoSauce) ⇐ EventEmitter
* [new TomatoSauce(config)](#new_TomatoSauce_new)
* [.run()](#TomatoSauce+run)
### new TomatoSauce(config)
The main application for tomato sauce. Listens for connections and serves
random combinations of screens and renderers
The main entry point is the `#run()` function.
It emits a listening event that contains the server information on
the `server` key inside the `data` property of the event.
It also emits an error event that contains the error information on
the `error` key inside the `data` property of the event.
| Param | Type | Description |
| --- | --- | --- |
| config | object | the configuration object used to extend the properties. |
### tomatoSauce.run()
Main entry point, initializes the server and binds events for connections
**Kind**: instance method of [TomatoSauce](#TomatoSauce)
## Util : Object
Module containing utility functions
**Kind**: global variable
* [Util](#Util) : Object
* [.parse16BitBuffer(buffer)](#Util.parse16BitBuffer) ⇒ Number
* [.pickRandom(array)](#Util.pickRandom) ⇒ Any
* [.loadFiles(path)](#Util.loadFiles) ⇒ Array
### Util.parse16BitBuffer(buffer) ⇒ Number
Parses a 16 bit number buffer
**Kind**: static method of [Util](#Util)
**Returns**: Number - the parsed value
| Param | Type | Description |
| --- | --- | --- |
| buffer | Array.<String> | the buffer to parse |
### Util.pickRandom(array) ⇒ Any
Picks a random element from an array
**Kind**: static method of [Util](#Util)
**Returns**: Any - the picked element
| Param | Type | Description |
| --- | --- | --- |
| array | Array | the array to use |
### Util.loadFiles(path) ⇒ Array
For a gi ven path, requires all of the files and returns an array
with the results. If the directory contains any non-requireable
files, it will fail.
**Kind**: static method of [Util](#Util)
**Returns**: Array - the array of all the loaded modules
| Param | Type | Description |
| --- | --- | --- |
| path | String | the path where the files are located |
## 256ColorsRenderer()
Returns a 256 color, see https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
for more info.
**Kind**: global function
**Implements**: [IRenderer](#IRenderer)
## ANSIRenderer()
Returns a basic ansi color, see https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
for more info.
**Kind**: global function
**Implements**: [IRenderer](#IRenderer)
## FakeColorRenderer()
Returns a malformed 24-bit ansi color
**Kind**: global function
**Implements**: [IRenderer](#IRenderer)
## TrueColorRenderer()
Returns an ANSI code for 24-bit True Color, see
https://en.wikipedia.org/wiki/ANSI_escape_code#Colors and look for
24-bit colors for more info. Only looks good in supported terminals,
otherwise looks like FakeColor
**Kind**: global function
**Implements**: [IRenderer](#IRenderer)
## CircleScreen()
Draws concentric circles. Each ring has its own color.
**Kind**: global function
**Implements**: [IScreen](#IScreen)
## GradientsScreen()
Draws moving gradient boxes
**Kind**: global function
**Implements**: [IScreen](#IScreen)
## MirrorsScreen()
Draws small moving gradient boxes and repeats them.
**Kind**: global function
**Implements**: [IScreen](#IScreen)
## RandomScreen()
Draws random colors
**Kind**: global function
**Implements**: [IScreen](#IScreen)
## SprinklesScreen()
Draws random sprinkles in the screen each frame. Same color per
frame.
**Kind**: global function
**Implements**: [IScreen](#IScreen)