| 
							- /******************************************/
 - /*
 -   Example program to output N channels of audio
 -   data over a network socket connection.
 - 
 -   by Gary P. Scavone, 2000
 - 
 -   This program will load a specified WAV, SND, AIFF, STK RAW, or
 -   MAT-file formatted file.  The output data format is set for signed
 -   16-bit integers.  However, it is easy to change the InetWvOut
 -   setting to any of the other defined StkFormats.  If using tcpIn, it
 -   will be necessary to change the expected data format there as well.
 - 
 -   The class InetWvOut first attempts to establish a socket connection
 -   to a socket server running on port 2006.  Therefore, this program
 -   needs to be started AFTER the streaming server.
 - */
 - /******************************************/
 - 
 - #include "FileWvIn.h"
 - #include "InetWvOut.h"
 - #include <cstdlib>
 - 
 - using namespace stk;
 - 
 - void usage(void) {
 -   // Error function in case of incorrect command-line
 -   // argument specifications.
 -   std::cout << "\nuseage: inetOut file host <rate>\n";
 -   std::cout << "    where file = the file to load,\n";
 -   std::cout << "    host = the hostname where the receiving\n";
 -   std::cout << "           application is running.\n";
 -   std::cout << "    and rate = an optional playback rate for the file.\n";
 -   std::cout << "               (default = 1.0, can be negative)\n\n";
 -   exit( 0 );
 - }
 - 
 - int main( int argc, char *argv[] )
 - {
 -   // Minimal command-line checking.
 -   if ( argc < 3 || argc > 4 ) usage();
 - 
 -   FileWvIn input;
 -   InetWvOut output;
 - 
 -   // Load the file.
 -   try {
 -     input.openFile( (char *)argv[1] );
 -   }
 -   catch ( StkError & ) {
 -     exit( 1 );
 -   }
 - 
 -   // Set the global STK sample rate to the file rate.
 -   Stk::setSampleRate( input.getFileRate() );
 - 
 -   // Set input read rate.
 -   double rate = 1.0;
 -   if ( argc == 4 ) rate = atof( argv[3] );
 -   input.setRate( rate );
 - 
 -   // Find out how many channels we have.
 -   int channels = input.channelsOut();
 -   StkFrames frames( 4096, channels );
 - 
 -   // Attempt to connect to the socket server.
 -   try {
 -     //output.connect( 2006, Socket::PROTO_UDP, (char *)argv[2], channels, Stk::STK_SINT16 );
 -     output.connect( 2006, Socket::PROTO_TCP, (char *)argv[2], channels, Stk::STK_SINT16 );
 -   }
 -   catch ( StkError & ) {
 -     exit( 1 );
 -   }
 - 
 -   // Here's the runtime loop
 -   while ( !input.isFinished() )
 -     output.tick( input.tick( frames ) );
 - 
 -   return 0;
 - }
 
 
  |