Sophie

Sophie

distrib > Mandriva > 2011.0 > i586 > media > contrib-release-debug > by-pkgid > a682ed06b7e9c8d5c3b6ae729da2d8d5 > files > 78

freego-debug-4.5-1mdv2011.0.i586.rpm

// VLC Recorder - Header
#ifndef RECORDER_H
#define RECORDER_H

#include "fgDialog.h"
#include "src/Options.h"
#include "src/misc.h"
#include "main.h"

#include <QBuffer>
#include <QContextMenuEvent>
#include <QDir>
#include <QHeaderView>
#include <QList>
#include <QMenu>
#include <QPointer>
#include <QProcess>
#include <QString>
#include <QTime>
#include <QTimer>
#include <QTcpSocket>
#include <QWidget>

#define BASE_PORT 9000

// Basic Structure for records
typedef struct record
{
	record()
	{ enabled = false; }
	
	QTime 	hstart;
	QTime 	hstop;
	QDate	date;
	QString	days;
	int		weekly;
	
	QString channel;
	QString	url;
	QString state;
	QString path;
	
	int		port;
	bool 	enabled;
	void debug() const
	{ qWarning() << hstart << hstop << date << days << weekly << channel << url << state << path << port << enabled; }
} Record;

// Class Recorder : Simple Widget Containing TV Record Schedules
class Recorder : public QObject
{
	Q_OBJECT
public:
	Recorder( QWidget* = 0 );
	static Recorder* self( QWidget* = 0 );

	void 	addRecord(Record*, bool modif = false);
	void 	saveRecords();

	Record* getRecord(int);
	Record* getLastRecord();
	int 	getNbRecords();
	inline int getId( Record* rec ) const { return records.indexOf( rec ); }

signals:
	void 	newRecord(Record*);
	void	recordFinished(Record*);
	void 	changeState(int, int);
	
public slots:
	void 	checkRecords();
	void 	removeRecord(int);
	void 	loadRecords();
	
private:
	QTimer 	*timer;

	QList<Record*> 	records;
	
	QAbstractSocket *socket, *closeSocket;
	QProcess 	vlc;
	QWidget 	*parent;
	bool		init;
	qint16		lastPortUsed;
	
	static QPointer<Recorder> pSelf;
};

#endif