File: qmddevice.h

package info (click to toggle)
linux-minidisc 0.9.13-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 2,096 kB
  • ctags: 1,530
  • sloc: ansic: 6,345; cpp: 2,569; python: 2,451; perl: 866; sh: 22; makefile: 8
file content (101 lines) | stat: -rw-r--r-- 2,928 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#ifndef QMDDEVICE_H
#define QMDDEVICE_H

#include <QString>
#include <QStringList>

#include <qmdtrack.h>
#include "qhimduploaddialog.h"

enum device_type {
    NO_DEVICE,
    NETMD_DEVICE,
    HIMD_DEVICE
};

class QMDDevice : public QObject {
    Q_OBJECT
    Q_DISABLE_COPY(QMDDevice)

    QString recorder_name;
    bool is_busy;
protected:
    QString device_path;
    enum device_type dev_type;
    bool is_open;
    unsigned int trk_count;
    bool md_inserted;
    void * devhandle;
    void * mdChange;
    QHiMDUploadDialog uploadDialog;
public:
    explicit QMDDevice();
    virtual ~QMDDevice();
    virtual enum device_type deviceType();
    virtual void setPath(QString path);
    virtual QString path();
    virtual void setName(QString name);
    virtual QString name();
    virtual void setBusy(bool busy);
    virtual bool isBusy();
    virtual QString open() {return QString();}
    virtual void close() {}
    virtual bool isOpen() {return is_open;}
    virtual QString discTitle() {return QString();}
    virtual void setMdInserted(bool inserted);
    virtual bool mdInserted();
    virtual void setDeviceHandle(void * devicehandle);
    virtual void * deviceHandle();
    virtual void registerMdChange(void * regMdChange);
    virtual void * MdChange();
    virtual QMDTrack track(unsigned int trkindex) {return QMDTrack();}
    virtual int trackCount() {return trk_count;}
    virtual QStringList downloadableFileExtensions() const;
    virtual void checkfile(QString UploadDirectory, QString &filename, QString extension);
    virtual void batchUpload(QMDTrackIndexList tlist, QString path) {}
    virtual void upload(unsigned int trackidx, QString path) {}

signals:
    void opened();
    void closed();
};

class QNetMDDevice : public QMDDevice {

    netmd_device * netmd;
    netmd_dev_handle * devh;
    minidisc current_md;
private:
    QString upload_track_blocks(uint32_t length, FILE *file, size_t chunksize);
public:
    explicit QNetMDDevice();
    virtual ~QNetMDDevice();
    virtual void setUsbDevice(netmd_device * dev);
    virtual QString open();
    virtual void close();
    virtual QString discTitle();
    virtual QNetMDTrack netmdTrack(unsigned int trkindex);
    virtual void batchUpload(QMDTrackIndexList tlist, QString path);
    virtual void upload(unsigned int trackidx, QString path);

};

class QHiMDDevice : public QMDDevice {

    struct himd * himd;
private:
    QString dumpmp3(const QHiMDTrack &trk, QString file);
    QString dumpoma(const QHiMDTrack & track, QString file);
    QString dumppcm(const QHiMDTrack &track, QString file);
public:
    explicit QHiMDDevice();
    virtual ~QHiMDDevice();
    virtual QString open();
    virtual void close();
    virtual QHiMDTrack himdTrack(unsigned int trkindex);
    virtual void upload(unsigned int trackidx, QString path);
    virtual void batchUpload(QMDTrackIndexList tlist, QString path);

};

#endif // QMDDEVICE_H