123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
- #ifndef _SVC_BURNER_H
- #define _SVC_BURNER_H
- #include <bfc/dispatch.h>
- #include <bfc/depend.h>
- #include <bfc/string/string.h>
- #include <api/service/services.h>
- namespace MediaRecorder {
- class Session : public Dispatchable {
- protected:
- Session() {}
- public:
- int getSessionType() { return _call(GETSESSIONTYPE,0); }
- enum {
- Session_REDBOOK, Session_DATA, Session_ISO
- };
- int closeSession() { return _call(CLOSESESSION,0); }
- int getNumEntries() { return _call(GETNUMENTRIES,0); }
- const char *enumEntry(int n) { return _call(ENUMENTRY,(const char *)NULL,n); }
- int getTotalBytes() { return _call(GETTOTALBYTES,0); }
- int getTotalTime() { return _call(GETTOTALTIME,0); }
- enum {
- GETSESSIONTYPE=10,
- CLOSESESSION=20,
- GETNUMENTRIES=30,
- ENUMENTRY=40,
- GETTOTALBYTES=50,
- GETTOTALTIME=60,
- };
- };
- class SessionI : public Session {
- public:
- virtual int getSessionType()=0;
- virtual int closeSession()=0;
- virtual int getNumEntries()=0;
- virtual const char *enumEntry(int n)=0;
- virtual int getTotalBytes()=0;
- virtual int getTotalTime()=0;
- protected:
- RECVS_DISPATCH;
- };
- class RedbookSession : public SessionI {
- public:
- virtual ~RedbookSession() { m_tracks.deleteAll(); }
- int getSessionType() { return Session_REDBOOK; }
- int closeSession() { return 1; }
- void addEntry(const char *file) { m_tracks.addItem(new String(file)); }
- int getNumEntries() { return m_tracks.getNumItems(); }
- void removeEntry(int n) { m_tracks.deleteItem(n); }
- void clearEntries() { m_tracks.deleteAll(); }
-
- const char *enumEntry(int n);
- int getTotalBytes();
- int getTotalTime();
- protected:
- PtrList<String> m_tracks;
- };
- class Device : public Dispatchable {
- protected:
- Device() {}
- public:
- static const GUID *depend_getClassGuid() {
-
- static const GUID ret =
- { 0x23f48039, 0x455d, 0x4348, { 0x86, 0xd5, 0xa, 0x82, 0x75, 0x46, 0x78, 0xfc } };
- return &ret;
- }
- api_dependent *getDependencyPtr() { return _call(GETDEPENDENCYPTR,(api_dependent *)NULL); }
- const char *getDeviceName() { return _call(GETDEVICENAME,(const char *)NULL); }
- const char *getDeviceType() { return _call(GETDEVICETYPE,(const char *)NULL); }
- const char *getDeviceDescription() { return _call(GETDEVICEDESCRIPTION,(const char *)NULL); }
- int enumDeviceSpeeds(int n) { return _call(ENUMDEVICESPEEDS,0,n); }
- int getMediaSize() { return _call(GETMEDIASIZE,0); }
- int getMediaFree() { return _call(GETMEDIAFREE,0); }
- void clearSessions() { _voidcall(CLEARSESSIONS); }
- int addSession(Session *session) { return _call(ADDSESSION,0,session); }
- Session *getSession(int num) { return _call(GETSESSION,(Session *)NULL,num); }
- int setRecordSpeed(int kbps) { return _call(SETRECORDSPEED,0,kbps); }
- int setTest(int testmode) { return _call(SETTEST,0,testmode); }
- int setCloseDisc(int closedisc) { return _call(SETCLOSEDISC,0,closedisc); }
- int canBurnNow() { return _call(CANBURNNOW,0); }
- int canCancel() { return _call(CANCANCEL,0); }
- int begin() { return _call(BEGIN,0); }
- int end() { return _call(END,0); }
- int cancel() { return _call(CANCEL,0); }
- int getStatus() { return _call(GETSTATUS,0); }
- enum {
- Status_IDLE, Status_PREPARING, Status_BURNING, Status_DONE,
- };
- int getProgress() { return _call(GETPROGRESS,0); }
- const char *getStatusText() { return _call(GETSTATUSTEXT,(const char *)NULL); }
- const char *getLastError() { return _call(GETLASTERROR,(const char *)NULL); }
- enum {
- Event_PREPAREBEGIN=100,
- Event_MEDIATRANSCODED=200,
- Event_PREPAREEND=300,
- Event_BURNBEGIN=400,
- Event_ENTRYCOMPLETE=500,
- Event_SESSIONCOMPLETE=600,
- Event_BURNEND=700,
- Event_ERROR=800,
- Event_MEDIACHANGE=900,
- };
- enum {
- GETDEPENDENCYPTR=10,
- GETDEVICENAME=20,
- GETDEVICETYPE=30,
- GETDEVICEDESCRIPTION=40,
- ENUMDEVICESPEEDS=50,
- GETMEDIASIZE=60,
- GETMEDIAFREE=70,
- CLEARSESSIONS=80,
- ADDSESSION=90,
- GETSESSION=100,
- SETRECORDSPEED=110,
- SETTEST=120,
- SETCLOSEDISC=130,
- CANBURNNOW=140,
- CANCANCEL=150,
- BEGIN=160,
- END=170,
- CANCEL=180,
- GETSTATUS=190,
- GETPROGRESS=200,
- GETSTATUSTEXT=210,
- GETLASTERROR=220,
- };
- };
- class DeviceI : public Device {
- public:
- virtual api_dependent *getDependencyPtr()=0;
- virtual const char *getDeviceName()=0;
- virtual const char *getDeviceType()=0;
- virtual const char *getDeviceDescription()=0;
- virtual int enumDeviceSpeeds(int n)=0;
- virtual int getMediaSize()=0;
- virtual int getMediaFree()=0;
- virtual void clearSessions()=0;
- virtual int addSession(Session *session)=0;
- virtual Session *getSession(int num)=0;
- virtual int setRecordSpeed(int kbps)=0;
- virtual int setTest(int testmode)=0;
- virtual int setCloseDisc(int closedisc)=0;
- virtual int canBurnNow()=0;
- virtual int canCancel()=0;
- virtual int begin()=0;
- virtual int end()=0;
- virtual int cancel()=0;
- virtual int getStatus()=0;
- virtual int getProgress()=0;
- virtual const char *getStatusText()=0;
- virtual const char *getLastError()=0;
- protected:
- RECVS_DISPATCH;
- };
- };
- class NOVTABLE svc_mediaRecorder : public Dispatchable {
- protected:
- svc_mediaRecorder() {}
- public:
- static FOURCC getServiceType() { return WaSvc::MEDIARECORDER; }
- int isSessionSupported(MediaRecorder::Session *session) { return _call(ISSESSIONSUPPORTED,0,session); }
- int isMediaSupported(const char *medianame) { return _call(ISMEDIASUPPORTED,0,medianame); }
- int getNumDevices() { return _call(GETNUMDEVICES,0); }
- MediaRecorder::Device *enumDevice(int n) { return _call(ENUMDEVICE,(MediaRecorder::Device*)NULL,n); }
- void refreshDevices() { _voidcall(REFRESHDEVICES); }
- enum {
- ISSESSIONSUPPORTED=10,
- ISMEDIASUPPORTED=20,
- GETNUMDEVICES=30,
- ENUMDEVICE=40,
- REFRESHDEVICES=50,
- };
- };
- class NOVTABLE svc_mediaRecorderI : public svc_mediaRecorder {
- public:
- static FOURCC getServiceType() { return WaSvc::MEDIARECORDER; }
- virtual int isSessionSupported(MediaRecorder::Session *session)=0;
- virtual int isMediaSupported(const char *medianame)=0;
- virtual int getNumDevices()=0;
- virtual MediaRecorder::Device *enumDevice(int n)=0;
- virtual void refreshDevices()=0;
- protected:
- RECVS_DISPATCH;
- };
- #endif
|