00001 #ifndef _LINUX_AVC_INFO_H_
00002 #define _LINUX_AVC_INFO_H_
00003
00004 #ifdef USING_LINUX_FIREWIRE
00005
00006
00007 #include <libraw1394/raw1394.h>
00008 #include <libraw1394/csr.h>
00009 #include <libiec61883/iec61883.h>
00010 #include <libavc1394/avc1394.h>
00011 #include <libavc1394/rom1394.h>
00012
00013
00014 #include <vector>
00015 using namespace std;
00016
00017
00018 #include <QMap>
00019
00020
00021 #include "avcinfo.h"
00022
00023 class LinuxAVCInfo : public AVCInfo
00024 {
00025 public:
00026 LinuxAVCInfo() : fw_handle(NULL) { }
00027
00028 bool Update(uint64_t _guid, raw1394handle_t handle,
00029 uint _port, uint _node);
00030
00031 bool OpenPort(void);
00032 bool ClosePort(void);
00033
00034 virtual bool SendAVCCommand(
00035 const vector<uint8_t> &cmd,
00036 vector<uint8_t> &result,
00037 int retry_cnt);
00038
00039 bool IsPortOpen(void) const { return fw_handle; }
00040
00042 int GetNode(void) const { return node; }
00043
00044 public:
00045 raw1394handle_t fw_handle;
00046 };
00047 typedef QMap<uint64_t,LinuxAVCInfo*> avcinfo_list_t;
00048
00049 #endif // USING_LINUX_FIREWIRE
00050
00051 #endif // _LINUX_AVC_INFO_H_