00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00029 #if ! defined( ARTSSTREAM_HH )
00030 #define ARTSSTREAM_HH
00031
00032
00033 #include <signal.h>
00034 #include <unistd.h>
00035 #include <fcntl.h>
00036 #include <sys/stat.h>
00037
00038
00039 #include <string>
00040
00041
00042 #include "libpiave/piave_base.hh"
00043 #include "libpiave/avstream.hh"
00044 #include "libpiave/exception.hh"
00045
00046
00047
00048 #include "artsc.h"
00049
00050 namespace PIAVE {
00051
00052 class Frame;
00053
00054 class ArtsPlugin : public Plugin
00055 {
00056 public:
00057 ArtsPlugin();
00058 virtual PluginBase * newElement( const PropertyNode * p = 0 );
00059 };
00060
00061
00065 class OutARTSStream : public OutAudioStreamIFace
00066 {
00067 public:
00068 OutARTSStream();
00069 ~OutARTSStream();
00070 virtual void putFrame( Frame & f );
00071
00072 virtual PropertyNode * getProperties( PropertyNode * p ) const;
00073
00074 private:
00075 void init( Frame & f ) throw(exception);
00076
00077 private:
00078 bool _is_initialized;
00079 arts_stream_t _arts_stream;
00080 int _nChannels;
00081 int _frequency;
00082 std::string _streamName;
00083
00084 };
00085
00086 };
00087
00088 #endif