summaryrefslogtreecommitdiff
path: root/audioreceiver.h
diff options
context:
space:
mode:
Diffstat (limited to 'audioreceiver.h')
-rw-r--r--audioreceiver.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/audioreceiver.h b/audioreceiver.h
new file mode 100644
index 0000000..33a6776
--- /dev/null
+++ b/audioreceiver.h
@@ -0,0 +1,63 @@
+/*
+ * audioreceiver.h
+ */
+
+#ifndef __AUDIORECEIVER_H
+#define __AUDIORECEIVER_H
+
+#include "postdata.h"
+#include "rds.h"
+#include "mpa-frame.h"
+#include "recstat.h"
+#include "a-tools.h"
+
+#include <vdr/receiver.h>
+#include <vdr/ringbuffer.h>
+#include <vdr/channels.h>
+
+#include <string>
+#include <fstream>
+
+
+class cAudioReceiver : public cReceiver, cThread {
+private:
+ bool active;
+ int device_number;
+
+ std::ofstream outfile;
+
+ cRingBufferLinear *buffer;
+ const cChannel *channel;
+
+ cPostData *postdata;
+ cRds *rds;
+
+ eRecStat recstat;
+ mpeg_audio_frame mpa_frame;
+ bool pes_sync;
+
+ void set_recstat_rds(void);
+ void control_track(void);
+protected:
+ virtual void Receive(uchar *data, int length);
+
+ virtual void Action(void);
+ virtual void Activate(bool on);
+public:
+ cAudioReceiver(const cChannel *_channel);
+ ~cAudioReceiver();
+
+ void set_device_number(int _device_number) { device_number =
+ _device_number; }
+ int get_device_number(void) { return device_number; }
+ bool is_attached(int attached_device_number);
+ /*
+ * returns true if the receiver is attached to the given device.
+ * if attached_device_number == -1, true is returned if the
+ * receiver is attached to a device
+ */
+ bool is_recording(void);
+ const cChannel *get_channel(void) { return channel; }
+};
+
+#endif /* __AUDIORECEIVER_H */