diff options
author | kraxel <kraxel> | 2004-11-03 12:53:56 +0000 |
---|---|---|
committer | kraxel <kraxel> | 2004-11-03 12:53:56 +0000 |
commit | f172e7016a13f435adfbb93a85d5e22b2237a377 (patch) | |
tree | 98e523f7d77185af2a7092f2421eb35b1a976073 /oss.h | |
parent | a811c9986cad3e9a5c108fceb760e7e76a7dd65a (diff) | |
download | krecord-f172e7016a13f435adfbb93a85d5e22b2237a377.tar.gz |
- add files.
Diffstat (limited to 'oss.h')
-rw-r--r-- | oss.h | 68 |
1 files changed, 68 insertions, 0 deletions
@@ -0,0 +1,68 @@ +#ifndef OSS_H +#define OSS_H + +#include <qobject.h> +#include <qsocketnotifier.h> + +/* ---------------------------------------------------------------------- */ + +#define STATUS_CLOSED 0 +#define STATUS_RECORD 1 +#define STATUS_PLAYBACK 2 + +class Soundcard : public QObject +{ + Q_OBJECT; + +private: + /* sound card capabilities */ + char devname[32]; + int init_done; + int afmt_hw; + int afmt_sw; + int channels_hw; + + int trigger; + char driver_name[64]; + + /* current settings */ + int afmt; + int channels; + int rate; + int blocksize; + int latency; + + /* file handle, reference count */ + int fd, stat; + char buffer[65536]; + QSocketNotifier *telmi; + + /* internal functions */ + void get_capabilities(); + int open_dev(int record); + void close_dev(); + +public: + Soundcard(const char *dev); + ~Soundcard(); + char *driver(); + void setparams(struct SOUNDPARAMS *params); + int start_record(); + int start_playback(); + int kill_buffer(); + int stop(); + + int has_channels(); /* # of channels (1=mono,2=stereo) */ + int has_format(int f); /* check format availibity */ + +public slots: + void sounddata(int); + +signals: + void senddata(void *data); + /* !!! only one should be connected to receivedata !!! */ + void receivedata(void *data); + void newparams(struct SOUNDPARAMS *params); +}; + +#endif |