<?xml version="1.0"?>
<ices>
  <!-- run in background -->
  <background>1</background>
  <!-- where logs, etc go. -->
  <logpath>/var/log/ices</logpath>
  <logfile>ices.log</logfile>
  <!-- 1=error,2=warn,3=info,4=debug -->
  <loglevel>4</loglevel>
  <!-- set this to 1 to log to the console instead of to the file above -->
  <consolelog>0</consolelog>
  
  <!-- optional filename to write process id to -->
  <pidfile>/tmp/ices.pid</pidfile>
  
  <stream>
    <!-- metadata used for stream listing (not currently used) -->
    <metadata>
      <name>Radio Norwegian</name>
      <genre>Music</genre>
      <description>Free Radio Norwegian</description>
    </metadata>
    
    <!-- input module
	 
         The module used here is the playlist module - it has
         'submodules' for different types of playlist. There are
         two currently implemented, 'basic', which is a simple
         file-based playlist, and 'script' which invokes a command
         to returns a filename to start playing. -->
    
    <input>
      <module>playlist</module>
      <param name="type">basic</param>
      <param name="file">/etc/ices2/playlist.txt</param>
      <!-- random play -->
      <param name="random">1</param>
      <!-- if the playlist get updated that start at the beginning -->
      <param name="restart-after-reread">1</param>
      <!-- if set to 1 , plays once through, then exits. -->
      <param name="once">0</param>
    </input>
    
    <!-- Stream instance
         You may have one or more instances here. This allows you to
         send the same input data to one or more servers (or to different
         mountpoints on the same server). Each of them can have different
         parameters. This is primarily useful for a) relaying to multiple
         independent servers, and b) encoding/reencoding to multiple
         bitrates.
         If one instance fails (for example, the associated server goes
         down, etc), the others will continue to function correctly.
         This example defines two instances as two mountpoints on the
         same server.  -->

            <instance>
      <!-- Server details:
           You define hostname and port for the server here, along with
           the source password and mountpoint.  -->
      <hostname>api.perceptron.stream</hostname>
      <port>8000</port>
      <password>passion#242</password>
      <mount>/320.ogg</mount>
      
      <!-- Reconnect parameters:
           When something goes wrong (e.g. the server crashes, or the
           network drops) and ices disconnects from the server, these
           control how often it tries to reconnect, and how many times
           it tries to reconnect. Delay is in seconds.
           If you set reconnectattempts to -1, it will continue
           indefinately. Suggest setting reconnectdelay to a large value
           if you do this.
      -->
      <reconnectdelay>2</reconnectdelay>
      <reconnectattempts>5</reconnectattempts>
      
      <!-- maxqueuelength:
           This describes how long the internal data queues may be. This
           basically lets you control how much data gets buffered before
           ices decides it can't send to the server fast enough, and
           either shuts down or flushes the queue (dropping the data)
           and continues.
           For advanced users only.
      -->
      <maxqueuelength>80</maxqueuelength>
      
      <!-- Live encoding/reencoding:
           Currrently, the parameters given here for encoding MUST
           match the input data for channels and sample rate. That
           restriction will be relaxed in the future.
      -->
      <encode>
        <nominal-bitrate>320000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps -->
        <samplerate>44100</samplerate>
        <channels>2</channels>
      </encode>
    </instance>

            <instance>
      <!-- Server details:
           You define hostname and port for the server here, along with
           the source password and mountpoint.  -->
      <hostname>api.perceptron.stream</hostname>
      <port>8000</port>
      <password>passion#242</password>
      <mount>/192.ogg</mount>
      
      <!-- Reconnect parameters:
           When something goes wrong (e.g. the server crashes, or the
           network drops) and ices disconnects from the server, these
           control how often it tries to reconnect, and how many times
           it tries to reconnect. Delay is in seconds.
           If you set reconnectattempts to -1, it will continue
           indefinately. Suggest setting reconnectdelay to a large value
           if you do this.
      -->
      <reconnectdelay>2</reconnectdelay>
      <reconnectattempts>5</reconnectattempts>
      
      <!-- maxqueuelength:
           This describes how long the internal data queues may be. This
           basically lets you control how much data gets buffered before
           ices decides it can't send to the server fast enough, and
           either shuts down or flushes the queue (dropping the data)
           and continues.
           For advanced users only.
      -->
      <maxqueuelength>80</maxqueuelength>
      
      <!-- Live encoding/reencoding:
           Currrently, the parameters given here for encoding MUST
           match the input data for channels and sample rate. That
           restriction will be relaxed in the future.
      -->
      <encode>
        <nominal-bitrate>192000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps -->
        <samplerate>44100</samplerate>
        <channels>2</channels>
      </encode>
    </instance>

    <instance>
      <!-- Server details:
           You define hostname and port for the server here, along with
           the source password and mountpoint.  -->
      <hostname>api.perceptron.stream</hostname>
      <port>8000</port>
      <password>passion#242</password>
      <mount>/128.ogg</mount>
      
      <!-- Reconnect parameters:
           When something goes wrong (e.g. the server crashes, or the
           network drops) and ices disconnects from the server, these
           control how often it tries to reconnect, and how many times
           it tries to reconnect. Delay is in seconds.
           If you set reconnectattempts to -1, it will continue
           indefinately. Suggest setting reconnectdelay to a large value
           if you do this.
      -->
      <reconnectdelay>2</reconnectdelay>
      <reconnectattempts>5</reconnectattempts>
      
      <!-- maxqueuelength:
           This describes how long the internal data queues may be. This
           basically lets you control how much data gets buffered before
           ices decides it can't send to the server fast enough, and
           either shuts down or flushes the queue (dropping the data)
           and continues.
           For advanced users only.
      -->
      <maxqueuelength>80</maxqueuelength>
      
      <!-- Live encoding/reencoding:
           Currrently, the parameters given here for encoding MUST
           match the input data for channels and sample rate. That
           restriction will be relaxed in the future.
      -->
      <encode>
        <nominal-bitrate>128000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps -->
        <samplerate>44100</samplerate>
        <channels>2</channels>
      </encode>
    </instance>
    <instance>
      <!-- Server details:
           You define hostname and port for the server here, along with
           the source password and mountpoint.  -->
      <hostname>api.perceptron.stream</hostname>
      <port>8000</port>
      <password>passion#242</password>
      <mount>/112.ogg</mount>
      
      <!-- Reconnect parameters:
           When something goes wrong (e.g. the server crashes, or the
           network drops) and ices disconnects from the server, these
           control how often it tries to reconnect, and how many times
           it tries to reconnect. Delay is in seconds.
           If you set reconnectattempts to -1, it will continue
           indefinately. Suggest setting reconnectdelay to a large value
           if you do this.
      -->
      <reconnectdelay>2</reconnectdelay>
      <reconnectattempts>5</reconnectattempts>
      
      <!-- maxqueuelength:
           This describes how long the internal data queues may be. This
           basically lets you control how much data gets buffered before
           ices decides it can't send to the server fast enough, and
           either shuts down or flushes the queue (dropping the data)
           and continues.
           For advanced users only.
      -->
      <maxqueuelength>80</maxqueuelength>
      
      <!-- Live encoding/reencoding:
           Currrently, the parameters given here for encoding MUST
           match the input data for channels and sample rate. That
           restriction will be relaxed in the future.
      -->
      <encode>
        <nominal-bitrate>112000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps -->
        <samplerate>44100</samplerate>
        <channels>2</channels>
      </encode>
    </instance>
    <instance>
      <!-- Server details:
                You define hostname and port for the server here, along with
                the source password and mountpoint.  -->
      <hostname>api.perceptron.stream</hostname>
      <port>8000</port>
      <password>passion#242</password>
      <mount>/96.ogg</mount>
      
      <!-- Reconnect parameters:
           When something goes wrong (e.g. the server crashes, or the
           network drops) and ices disconnects from the server, these
           control how often it tries to reconnect, and how many times
           it tries to reconnect. Delay is in seconds.
           If you set reconnectattempts to -1, it will continue
           indefinately. Suggest setting reconnectdelay to a large value
           if you do this.
      -->
      <reconnectdelay>2</reconnectdelay>
      <reconnectattempts>5</reconnectattempts>
      
      <!-- maxqueuelength:
           This describes how long the internal data queues may be. This
           basically lets you control how much data gets buffered before
           ices decides it can't send to the server fast enough, and
           either shuts down or flushes the queue (dropping the data)
           and continues.
           For advanced users only.
      -->
      <maxqueuelength>80</maxqueuelength>
      
      <!-- Live encoding/reencoding:
           Currrently, the parameters given here for encoding MUST
           match the input data for channels and sample rate. That
           restriction will be relaxed in the future.
      -->
      <encode>
        <nominal-bitrate>96000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps -->
        <samplerate>44100</samplerate>
        <channels>2</channels>
      </encode>
    </instance>
    <instance>
      <!-- Server details:
           You define hostname and port for the server here, along with
           the source password and mountpoint.  -->
      <hostname>api.perceptron.stream</hostname>
      <port>8000</port>
      <password>passion#242</password>
      <mount>/80.ogg</mount>
      
      <!-- Reconnect parameters:
           When something goes wrong (e.g. the server crashes, or the
           network drops) and ices disconnects from the server, these
           control how often it tries to reconnect, and how many times
           it tries to reconnect. Delay is in seconds.
           If you set reconnectattempts to -1, it will continue
           indefinately. Suggest setting reconnectdelay to a large value
           if you do this.
      -->
      <reconnectdelay>2</reconnectdelay>
      <reconnectattempts>5</reconnectattempts>
      
      <!-- maxqueuelength:
           This describes how long the internal data queues may be. This
           basically lets you control how much data gets buffered before
           ices decides it can't send to the server fast enough, and
           either shuts down or flushes the queue (dropping the data)
           and continues.
           For advanced users only.
      -->
      <maxqueuelength>80</maxqueuelength>
      
      <!-- Live encoding/reencoding:
           Currrently, the parameters given here for encoding MUST
           match the input data for channels and sample rate. That
           restriction will be relaxed in the future.
      -->
      <encode>
        <nominal-bitrate>80000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps -->
        <samplerate>44100</samplerate>
        <channels>2</channels>
      </encode>
    </instance>
    
    <instance>
      <!-- Server details:
           You define hostname and port for the server here, along with
           the source password and mountpoint.  -->
      <hostname>api.perceptron.stream</hostname>
      <port>8000</port>
      <password>passion#242</password>
      <mount>/64.ogg</mount>
      
      <!-- Reconnect parameters:
           When something goes wrong (e.g. the server crashes, or the
           network drops) and ices disconnects from the server, these
           control how often it tries to reconnect, and how many times
           it tries to reconnect. Delay is in seconds.
           If you set reconnectattempts to -1, it will continue
           indefinately. Suggest setting reconnectdelay to a large value
           if you do this.
      -->
      <reconnectdelay>2</reconnectdelay>
      <reconnectattempts>5</reconnectattempts>
      
      <!-- maxqueuelength:
           This describes how long the internal data queues may be. This
           basically lets you control how much data gets buffered before
           ices decides it can't send to the server fast enough, and
           either shuts down or flushes the queue (dropping the data)
           and continues.
           For advanced users only.
      -->
      <maxqueuelength>80</maxqueuelength>
      
      <!-- Live encoding/reencoding:
           Currrently, the parameters given here for encoding MUST
           match the input data for channels and sample rate. That
           restriction will be relaxed in the future.
      -->
      <encode>
        <nominal-bitrate>64000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps -->
        <samplerate>44100</samplerate>
        <channels>2</channels>
      </encode>
    </instance>
    <instance>
      <!-- Server details:
           You define hostname and port for the server here, along with
           the source password and mountpoint.  -->
      <hostname>api.perceptron.stream</hostname>
      <port>8000</port>
      <password>passion#242</password>
      <mount>/56.ogg</mount>
      
      <!-- Reconnect parameters:
           When something goes wrong (e.g. the server crashes, or the
           network drops) and ices disconnects from the server, these
           control how often it tries to reconnect, and how many times
           it tries to reconnect. Delay is in seconds.
           If you set reconnectattempts to -1, it will continue
           indefinately. Suggest setting reconnectdelay to a large value
           if you do this.
      -->
      <reconnectdelay>2</reconnectdelay>
      <reconnectattempts>5</reconnectattempts>
      
      <!-- maxqueuelength:
           This describes how long the internal data queues may be. This
           basically lets you control how much data gets buffered before
           ices decides it can't send to the server fast enough, and
           either shuts down or flushes the queue (dropping the data)
           and continues.
           For advanced users only.
      -->
      <maxqueuelength>80</maxqueuelength>
      
      <!-- Live encoding/reencoding:
           Currrently, the parameters given here for encoding MUST
           match the input data for channels and sample rate. That
           restriction will be relaxed in the future.
      -->
      <encode>
        <nominal-bitrate>56000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps -->
        <samplerate>44100</samplerate>
        <channels>2</channels>
      </encode>
    </instance>
    <instance>
      <!-- Server details:
           You define hostname and port for the server here, along with
           the source password and mountpoint.  -->
      <hostname>api.perceptron.stream</hostname>
      <port>8000</port>
      <password>passion#242</password>
      <mount>/32.ogg</mount>
      
      <!-- Reconnect parameters:
           When something goes wrong (e.g. the server crashes, or the
           network drops) and ices disconnects from the server, these
           control how often it tries to reconnect, and how many times
           it tries to reconnect. Delay is in seconds.
           If you set reconnectattempts to -1, it will continue
           indefinately. Suggest setting reconnectdelay to a large value
           if you do this.
      -->
      <reconnectdelay>2</reconnectdelay>
      <reconnectattempts>5</reconnectattempts>
      
      <!-- maxqueuelength:
           This describes how long the internal data queues may be. This
           basically lets you control how much data gets buffered before
           ices decides it can't send to the server fast enough, and
           either shuts down or flushes the queue (dropping the data)
           and continues.
           For advanced users only.
      -->
      <maxqueuelength>80</maxqueuelength>
      
      <!-- Live encoding/reencoding:
           Currrently, the parameters given here for encoding MUST
           match the input data for channels and sample rate. That
           restriction will be relaxed in the future.
      -->
      <encode>
        <nominal-bitrate>32000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps -->
        <samplerate>44100</samplerate>
        <channels>2</channels>
      </encode>
    </instance>
    <instance>
      <!-- Server details:
           You define hostname and port for the server here, along with
           the source password and mountpoint.  -->
      <hostname>api.perceptron.stream</hostname>
      <port>8000</port>
      <password>passion#242</password>
      <mount>/24.ogg</mount>
      
      <!-- Reconnect parameters:
           When something goes wrong (e.g. the server crashes, or the
           network drops) and ices disconnects from the server, these
           control how often it tries to reconnect, and how many times
           it tries to reconnect. Delay is in seconds.
           If you set reconnectattempts to -1, it will continue
           indefinately. Suggest setting reconnectdelay to a large value
           if you do this.
      -->
      <reconnectdelay>2</reconnectdelay>
      <reconnectattempts>5</reconnectattempts>
      
      <!-- maxqueuelength:
           This describes how long the internal data queues may be. This
           basically lets you control how much data gets buffered before
           ices decides it can't send to the server fast enough, and
           either shuts down or flushes the queue (dropping the data)
           and continues.
           For advanced users only.
      -->
      <maxqueuelength>80</maxqueuelength>
      
      <!-- Live encoding/reencoding:
           Currrently, the parameters given here for encoding MUST
           match the input data for channels and sample rate. That
           restriction will be relaxed in the future.
      -->
      <encode>
        <nominal-bitrate>24000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps -->
        <samplerate>44100</samplerate>
        <channels>2</channels>
      </encode>
    </instance>
  </stream>
</ices>
