ecasound 2.7.2 (2010) package. ubuntu's ecasound package is only at ecasound 2.2 way back from 2003. had to modify ecacontrol.py to use subprocess module instead of deprecated popen2

This commit is contained in:
Naomi 2011-03-05 13:24:27 -05:00
parent 4b4174fe50
commit e2406e2501
430 changed files with 168506 additions and 0 deletions

View file

@ -0,0 +1,88 @@
#ifndef INCLUDED_AUDIOIO_OSS_H
#define INCLUDED_AUDIOIO_OSS_H
#include <string>
#include <iostream>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/soundcard.h>
#ifndef AFMT_S32_LE
#define AFMT_S32_LE 0x00001000
#endif
#ifndef AFMT_S32_BE
#define AFMT_S32_BE 0x00002000
#endif
#include "audioio-device.h"
/**
* Class for handling Open Sound System -devices (OSS/Linux
* and OSS/Lite).
* @author Kai Vehmanen
*/
class OSSDEVICE : public AUDIO_IO_DEVICE {
public:
OSSDEVICE (const std::string& name = "/dev/dsp", bool precise_sample_rates = false);
virtual ~OSSDEVICE(void);
virtual OSSDEVICE* clone(void) const;
virtual OSSDEVICE* new_expr(void) const { return new OSSDEVICE(); }
virtual std::string name(void) const { return("OSS soundcard device"); }
virtual std::string description(void) const { return("Open Sound System -devices (OSS/Linux and OSS/Free)."); }
/** @name Function reimplemented from AUDIO_IO */
/*@{*/
virtual int supported_io_modes(void) const { return(io_read | io_write); }
virtual void open(void) throw(AUDIO_IO::SETUP_ERROR &);
virtual void close(void);
virtual long int read_samples(void* target_buffer, long int samples);
virtual void write_samples(void* target_buffer, long int samples);
/*@}*/
/** @name Function reimplemented from AUDIO_IO_DEVICE */
/*@{*/
virtual void start(void);
virtual void stop(void);
virtual long int delay(void) const;
virtual long int latency(void) const { return(buffersize()); }
virtual long int prefill_space(void) const { if (io_mode() != io_read) return(buffersize() * fragment_count); else return(0); }
/*@}*/
private:
OSSDEVICE(const OSSDEVICE& x) { }
OSSDEVICE& operator=(const OSSDEVICE& x) { return *this; }
int audio_fd;
audio_buf_info audiobuf; // soundcard.h
count_info audioinfo; // soundcard.h
fd_set fds;
int fragment_size;
int fragment_count;
long int bytes_read;
int oss_caps;
struct timeval start_time;
bool precise_srate_mode;
};
#endif