Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

clSoundSrv Class Reference

Sound card input server. More...

#include <SoundSrv.hh>

Collaboration diagram for clSoundSrv:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 clSoundSrv (const char *, const char *)
 ~clSoundSrv ()
void Exec ()
void Quit ()
void Quit (int)
void InputExec ()
void WaitConnectExec ()
void ServeClientExec (void *)
bool Run ()

Private Member Functions

int FindFreeClient ()
int FindThisHandle (int)

Private Attributes

int iAudioFrmt
int iAudioSr
int iAudioCh
int iAudioTypeSize
int iErrorCount
int iClientIdx
int ipClientH [SS_MAXCLIENTS]
int iSampleCount
int iOutBufSize
bool bRun
char cpProgName [_POSIX_PATH_MAX]
char * cpOutBuf
sigset_t sigsetQuit
pth_t tidInput
pth_t tidWaitConnect
pth_t ptidServeClient [SS_MAXCLIENTS]
clPthMutex MutexThis
clPthCond CondDataAvail
clSoundMsg SoundMsg
clDSPOp DSP
clCfgFileCfgFile
clLogFileLogFile
clAudioAudio

Detailed Description

Sound card input server.

This uses great GNU Pth library for threads. This seems to be more efficient in some cases than soundsrv2 due to nonpre-emptive behaviour of used threading library. It, however, requires select() support from soundcard which, unfortunately, all soundcard drivers don't support...

Definition at line 54 of file SoundSrv.hh.


Constructor & Destructor Documentation

clSoundSrv::clSoundSrv const char *  ,
const char * 
 

Definition at line 145 of file SoundSrv.cc.

References clLogFile::Add(), Audio, AUDIO_READ, bRun, CfgFile, cpOutBuf, cpProgName, GDT, clAudio::GetError(), clAudio::GetFragmentSize(), clCfgFile::GetInt(), clAudio::GetVersion(), iAudioCh, iAudioFrmt, iAudioSr, iAudioTypeSize, iOutBufSize, ipClientH, iSampleCount, LogFile, SS_LOGFILE, SS_MAXCLIENTS, SS_PTH_MAJ, SS_PTH_MIN, SS_PTH_PL, SS_SND_CHANNELS, SS_SND_FORMAT, SS_SND_FORMAT_SIZE, and SS_SND_SAMPLERATE.

clSoundSrv::~clSoundSrv  ) 
 

Definition at line 241 of file SoundSrv.cc.

References clLogFile::Add(), Audio, CfgFile, cpOutBuf, iOutBufSize, and LogFile.


Member Function Documentation

int clSoundSrv::FindFreeClient  )  [inline, private]
 

Definition at line 651 of file SoundSrv.cc.

References ipClientH, and SS_MAXCLIENTS.

Referenced by WaitConnectExec().

int clSoundSrv::FindThisHandle int   )  [inline, private]
 

Definition at line 666 of file SoundSrv.cc.

References ipClientH, and SS_MAXCLIENTS.

Referenced by ServeClientExec().

void clSoundSrv::Exec  ) 
 

Definition at line 252 of file SoundSrv.cc.

References clLogFile::Add(), Input(), LogFile, Quit(), sigsetQuit, tidInput, tidWaitConnect, and WaitConnect().

Referenced by main().

void clSoundSrv::Quit  ) 
 

Definition at line 298 of file SoundSrv.cc.

References bRun.

Referenced by Exec(), and InputExec().

void clSoundSrv::Quit int   ) 
 

Definition at line 304 of file SoundSrv.cc.

References clLogFile::Add(), bRun, and LogFile.

void clSoundSrv::InputExec  ) 
 

Definition at line 321 of file SoundSrv.cc.

References clLogFile::Add(), Audio, bRun, CondDataAvail, cpOutBuf, DSP, GDT, clAudio::GetHandle(), iAudioTypeSize, iOutBufSize, iSampleCount, LogFile, MutexThis, Quit(), clSoundMsg::SetData(), SoundMsg, SoundSrv, SS_MAXERRORS, and SS_SHUTDOWNFILE.

Referenced by Input().

void clSoundSrv::WaitConnectExec  ) 
 

Definition at line 411 of file SoundSrv.cc.

References clLogFile::Add(), bRun, CfgFile, cpProgName, FindFreeClient(), clCfgFile::GetInt(), iClientIdx, ipClientH, LogFile, ptidServeClient, ServeClient(), SS_DEFAULT_PORT, SS_MAXCLIENTS, and tidInput.

Referenced by WaitConnect().

void clSoundSrv::ServeClientExec void *   ) 
 

Definition at line 510 of file SoundSrv.cc.

References clLogFile::Add(), bRun, CondDataAvail, cpOutBuf, _stSoundStart::dSampleRate, FindThisHandle(), GLOBAL_HEADER_LEN, iAudioCh, iAudioSr, _stSoundStart::iChannels, _stSoundStart::iFragmentSize, iOutBufSize, ipClientH, iSampleCount, LogFile, MutexThis, clSoundMsg::SetStart(), SoundMsg, SS_SOCKET_BUF_FRAGS, and tidInput.

Referenced by ServeClient().

bool clSoundSrv::Run  )  [inline]
 

Definition at line 91 of file SoundSrv.hh.

References bRun.


Member Data Documentation

int clSoundSrv::iAudioFrmt [private]
 

Definition at line 56 of file SoundSrv.hh.

Referenced by clSoundSrv().

int clSoundSrv::iAudioSr [private]
 

Definition at line 57 of file SoundSrv.hh.

Referenced by clSoundSrv(), and ServeClientExec().

int clSoundSrv::iAudioCh [private]
 

Definition at line 58 of file SoundSrv.hh.

Referenced by clSoundSrv(), and ServeClientExec().

int clSoundSrv::iAudioTypeSize [private]
 

Definition at line 59 of file SoundSrv.hh.

Referenced by clSoundSrv(), and InputExec().

int clSoundSrv::iErrorCount [private]
 

Definition at line 60 of file SoundSrv.hh.

int clSoundSrv::iClientIdx [private]
 

Definition at line 61 of file SoundSrv.hh.

Referenced by WaitConnectExec().

int clSoundSrv::ipClientH[SS_MAXCLIENTS] [private]
 

Definition at line 62 of file SoundSrv.hh.

Referenced by clSoundSrv(), FindFreeClient(), FindThisHandle(), ServeClientExec(), and WaitConnectExec().

int clSoundSrv::iSampleCount [private]
 

Definition at line 63 of file SoundSrv.hh.

Referenced by clSoundSrv(), InputExec(), and ServeClientExec().

int clSoundSrv::iOutBufSize [private]
 

Definition at line 64 of file SoundSrv.hh.

Referenced by clSoundSrv(), InputExec(), ServeClientExec(), and ~clSoundSrv().

bool clSoundSrv::bRun [private]
 

Definition at line 65 of file SoundSrv.hh.

Referenced by clSoundSrv(), InputExec(), Quit(), Run(), ServeClientExec(), and WaitConnectExec().

char clSoundSrv::cpProgName[_POSIX_PATH_MAX] [private]
 

Definition at line 66 of file SoundSrv.hh.

Referenced by clSoundSrv(), and WaitConnectExec().

char* clSoundSrv::cpOutBuf [private]
 

Definition at line 67 of file SoundSrv.hh.

Referenced by clSoundSrv(), InputExec(), ServeClientExec(), and ~clSoundSrv().

sigset_t clSoundSrv::sigsetQuit [private]
 

Definition at line 68 of file SoundSrv.hh.

Referenced by Exec().

pth_t clSoundSrv::tidInput [private]
 

Definition at line 69 of file SoundSrv.hh.

Referenced by Exec(), ServeClientExec(), and WaitConnectExec().

pth_t clSoundSrv::tidWaitConnect [private]
 

Definition at line 70 of file SoundSrv.hh.

Referenced by Exec().

pth_t clSoundSrv::ptidServeClient[SS_MAXCLIENTS] [private]
 

Definition at line 71 of file SoundSrv.hh.

Referenced by WaitConnectExec().

clPthMutex clSoundSrv::MutexThis [private]
 

Definition at line 72 of file SoundSrv.hh.

Referenced by InputExec(), and ServeClientExec().

clPthCond clSoundSrv::CondDataAvail [private]
 

Definition at line 73 of file SoundSrv.hh.

Referenced by InputExec(), and ServeClientExec().

clSoundMsg clSoundSrv::SoundMsg [private]
 

Definition at line 74 of file SoundSrv.hh.

Referenced by InputExec(), and ServeClientExec().

clDSPOp clSoundSrv::DSP [private]
 

Definition at line 75 of file SoundSrv.hh.

Referenced by InputExec().

clCfgFile* clSoundSrv::CfgFile [private]
 

Definition at line 76 of file SoundSrv.hh.

Referenced by clSoundSrv(), WaitConnectExec(), and ~clSoundSrv().

clLogFile* clSoundSrv::LogFile [private]
 

Definition at line 77 of file SoundSrv.hh.

Referenced by clSoundSrv(), Exec(), InputExec(), Quit(), ServeClientExec(), WaitConnectExec(), and ~clSoundSrv().

clAudio* clSoundSrv::Audio [private]
 

Definition at line 78 of file SoundSrv.hh.

Referenced by clSoundSrv(), InputExec(), and ~clSoundSrv().


The documentation for this class was generated from the following files:
Generated on Sun Oct 26 19:12:24 2003 for HASAS by doxygen 1.3.3