39 |
39 |
40 /****************************************************************************/ |
40 /****************************************************************************/ |
41 |
41 |
42 void CommandData::execute(MasterDevice &m, const StringVector &args) |
42 void CommandData::execute(MasterDevice &m, const StringVector &args) |
43 { |
43 { |
|
44 DomainList domains; |
|
45 DomainList::const_iterator di; |
|
46 |
44 m.open(MasterDevice::Read); |
47 m.open(MasterDevice::Read); |
|
48 domains = selectedDomains(m); |
45 |
49 |
46 if (domainIndex == -1) { |
50 for (di = domains.begin(); di != domains.end(); di++) { |
47 unsigned int i; |
51 outputDomainData(m, *di); |
48 ec_ioctl_master_t master; |
52 } |
49 |
|
50 m.getMaster(&master); |
|
51 |
|
52 for (i = 0; i < master.domain_count; i++) { |
|
53 outputDomainData(m, i); |
|
54 } |
|
55 } else { |
|
56 outputDomainData(m, domainIndex); |
|
57 } |
|
58 } |
53 } |
59 |
54 |
60 /****************************************************************************/ |
55 /****************************************************************************/ |
61 |
56 |
62 void CommandData::outputDomainData(MasterDevice &m, unsigned int domainIndex) |
57 void CommandData::outputDomainData( |
|
58 MasterDevice &m, |
|
59 const ec_ioctl_domain_t &domain |
|
60 ) |
63 { |
61 { |
64 ec_ioctl_domain_t domain; |
|
65 ec_ioctl_domain_data_t data; |
62 ec_ioctl_domain_data_t data; |
66 unsigned char *processData; |
63 unsigned char *processData; |
67 unsigned int i; |
64 unsigned int i; |
68 |
65 |
69 m.getDomain(&domain, domainIndex); |
|
70 |
|
71 if (!domain.data_size) |
66 if (!domain.data_size) |
72 return; |
67 return; |
73 |
68 |
74 processData = new unsigned char[domain.data_size]; |
69 processData = new unsigned char[domain.data_size]; |
75 |
70 |
76 try { |
71 try { |
77 m.getData(&data, domainIndex, domain.data_size, processData); |
72 m.getData(&data, domain.index, domain.data_size, processData); |
78 } catch (MasterDeviceException &e) { |
73 } catch (MasterDeviceException &e) { |
79 delete [] processData; |
74 delete [] processData; |
80 throw e; |
75 throw e; |
81 } |
76 } |
82 |
77 |