1 package net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.messages;
3 import androidx.annotation.NonNull;
5 import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.IPtpIpCommandCallback;
8 public class PtpIpCommandGeneric extends PtpIpCommandBase
10 private final IPtpIpCommandCallback callback;
11 private final boolean isDumpLog;
12 private final int bodySize;
14 private final int holdId;
15 private final int estimatedObjectSize;
17 private final byte opCode0;
18 private final byte opCode1;
20 private final byte data0;
21 private final byte data1;
22 private final byte data2;
23 private final byte data3;
25 private final byte data4;
26 private final byte data5;
27 private final byte data6;
28 private final byte data7;
30 private final byte data8;
31 private final byte data9;
32 private final byte dataA;
33 private final byte dataB;
35 private final byte dataC;
36 private final byte dataD;
37 private final byte dataE;
38 private final byte dataF;
40 public PtpIpCommandGeneric(@NonNull IPtpIpCommandCallback callback, int id, boolean isDumpLog, int holdId, int opcode)
42 this.callback = callback;
44 this.isDumpLog = isDumpLog;
45 this.estimatedObjectSize = -1;
49 opCode0 = ((byte) (0x000000ff & opcode));
50 opCode1 = ((byte)((0x0000ff00 & opcode) >> 8));
62 data8 = 0; // ((byte) (0x000000ff & value3));
63 data9 = 0; // ((byte)((0x0000ff00 & value3) >> 8));
64 dataA = 0; // ((byte)((0x00ff0000 & value3) >> 16));
65 dataB = 0; // ((byte)((0xff000000 & value3) >> 24));
67 dataC = 0; // ((byte) (0x000000ff & value4));
68 dataD = 0; // ((byte)((0x0000ff00 & value4) >> 8));
69 dataE = 0; // ((byte)((0x00ff0000 & value4) >> 16));
70 dataF = 0; // ((byte)((0xff000000 & value4) >> 24));
73 public PtpIpCommandGeneric(@NonNull IPtpIpCommandCallback callback, int id, boolean isDumpLog, int holdId, int opcode, int bodySize, int value)
75 this.callback = callback;
76 this.bodySize = bodySize;
77 this.isDumpLog = isDumpLog;
78 this.estimatedObjectSize = -1;
82 opCode0 = ((byte) (0x000000ff & opcode));
83 opCode1 = ((byte)((0x0000ff00 & opcode) >> 8));
85 data0 = ((byte) (0x000000ff & value));
86 data1 = ((byte)((0x0000ff00 & value) >> 8));
87 data2 = ((byte)((0x00ff0000 & value) >> 16));
88 data3 = ((byte)((0xff000000 & value) >> 24));
90 data4 = 0; // ((byte) (0x000000ff & value));
91 data5 = 0; // ((byte)((0x0000ff00 & value) >> 8));
92 data6 = 0; // ((byte)((0x00ff0000 & value) >> 16));
93 data7 = 0; // ((byte)((0xff000000 & value) >> 24));
95 data8 = 0; // ((byte) (0x000000ff & value3));
96 data9 = 0; // ((byte)((0x0000ff00 & value3) >> 8));
97 dataA = 0; // ((byte)((0x00ff0000 & value3) >> 16));
98 dataB = 0; // ((byte)((0xff000000 & value3) >> 24));
100 dataC = 0; // ((byte) (0x000000ff & value4));
101 dataD = 0; // ((byte)((0x0000ff00 & value4) >> 8));
102 dataE = 0; // ((byte)((0x00ff0000 & value4) >> 16));
103 dataF = 0; // ((byte)((0xff000000 & value4) >> 24));
106 public PtpIpCommandGeneric(@NonNull IPtpIpCommandCallback callback, int id, boolean isDumpLog, int holdId, int opcode, int bodySize, int value, int value2)
108 this.callback = callback;
109 this.bodySize = bodySize;
110 this.isDumpLog = isDumpLog;
111 this.estimatedObjectSize = -1;
114 this.holdId = holdId;
115 opCode0 = ((byte) (0x000000ff & opcode));
116 opCode1 = ((byte)((0x0000ff00 & opcode) >> 8));
118 data0 = ((byte) (0x000000ff & value));
119 data1 = ((byte)((0x0000ff00 & value) >> 8));
120 data2 = ((byte)((0x00ff0000 & value) >> 16));
121 data3 = ((byte)((0xff000000 & value) >> 24));
123 data4 = ((byte) (0x000000ff & value2));
124 data5 = ((byte)((0x0000ff00 & value2) >> 8));
125 data6 = ((byte)((0x00ff0000 & value2) >> 16));
126 data7 = ((byte)((0xff000000 & value2) >> 24));
128 data8 = 0; // ((byte) (0x000000ff & value3));
129 data9 = 0; // ((byte)((0x0000ff00 & value3) >> 8));
130 dataA = 0; // ((byte)((0x00ff0000 & value3) >> 16));
131 dataB = 0; // ((byte)((0xff000000 & value3) >> 24));
133 dataC = 0; // ((byte) (0x000000ff & value4));
134 dataD = 0; // ((byte)((0x0000ff00 & value4) >> 8));
135 dataE = 0; // ((byte)((0x00ff0000 & value4) >> 16));
136 dataF = 0; // ((byte)((0xff000000 & value4) >> 24));
139 public PtpIpCommandGeneric(@NonNull IPtpIpCommandCallback callback, int id, boolean isDumpLog, int holdId, int opcode, int bodySize, int value, int value2, int value3)
141 this.callback = callback;
142 this.bodySize = bodySize;
143 this.isDumpLog = isDumpLog;
144 this.estimatedObjectSize = -1;
147 this.holdId = holdId;
148 opCode0 = ((byte) (0x000000ff & opcode));
149 opCode1 = ((byte)((0x0000ff00 & opcode) >> 8));
151 data0 = ((byte) (0x000000ff & value));
152 data1 = ((byte)((0x0000ff00 & value) >> 8));
153 data2 = ((byte)((0x00ff0000 & value) >> 16));
154 data3 = ((byte)((0xff000000 & value) >> 24));
156 data4 = ((byte) (0x000000ff & value2));
157 data5 = ((byte)((0x0000ff00 & value2) >> 8));
158 data6 = ((byte)((0x00ff0000 & value2) >> 16));
159 data7 = ((byte)((0xff000000 & value2) >> 24));
161 data8 = ((byte) (0x000000ff & value3));
162 data9 = ((byte)((0x0000ff00 & value3) >> 8));
163 dataA = ((byte)((0x00ff0000 & value3) >> 16));
164 dataB = ((byte)((0xff000000 & value3) >> 24));
166 dataC = 0; // ((byte) (0x000000ff & value4));
167 dataD = 0; // ((byte)((0x0000ff00 & value4) >> 8));
168 dataE = 0; // ((byte)((0x00ff0000 & value4) >> 16));
169 dataF = 0; // ((byte)((0xff000000 & value4) >> 24));
173 public PtpIpCommandGeneric(@NonNull IPtpIpCommandCallback callback, int id, boolean isDumpLog, int holdId, int opcode, int bodySize, int value, int value2, int value3, int value4)
175 this.callback = callback;
176 this.bodySize = bodySize;
177 this.isDumpLog = isDumpLog;
178 this.estimatedObjectSize = -1;
181 this.holdId = holdId;
182 opCode0 = ((byte) (0x000000ff & opcode));
183 opCode1 = ((byte)((0x0000ff00 & opcode) >> 8));
185 data0 = ((byte) (0x000000ff & value));
186 data1 = ((byte)((0x0000ff00 & value) >> 8));
187 data2 = ((byte)((0x00ff0000 & value) >> 16));
188 data3 = ((byte)((0xff000000 & value) >> 24));
190 data4 = ((byte) (0x000000ff & value2));
191 data5 = ((byte)((0x0000ff00 & value2) >> 8));
192 data6 = ((byte)((0x00ff0000 & value2) >> 16));
193 data7 = ((byte)((0xff000000 & value2) >> 24));
195 data8 = ((byte) (0x000000ff & value3));
196 data9 = ((byte)((0x0000ff00 & value3) >> 8));
197 dataA = ((byte)((0x00ff0000 & value3) >> 16));
198 dataB = ((byte)((0xff000000 & value3) >> 24));
200 dataC = ((byte) (0x000000ff & value4));
201 dataD = ((byte)((0x0000ff00 & value4) >> 8));
202 dataE = ((byte)((0x00ff0000 & value4) >> 16));
203 dataF = ((byte)((0xff000000 & value4) >> 24));
207 public IPtpIpCommandCallback responseCallback()
219 public int estimatedReceiveDataSize()
221 return (estimatedObjectSize);
225 public byte[] commandBody()
232 (byte) 0x06, (byte) 0x00, (byte) 0x00, (byte) 0x00,
235 (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00,
241 (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
247 else if (bodySize == 4)
252 (byte) 0x06, (byte) 0x00, (byte) 0x00, (byte) 0x00,
255 (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00,
261 (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
264 data0, data1, data2, data3,
267 else if (bodySize == 8)
272 (byte) 0x06, (byte) 0x00, (byte) 0x00, (byte) 0x00,
275 (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00,
281 (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
284 data0, data1, data2, data3,
285 data4, data5, data6, data7,
288 else if (bodySize == 12)
293 (byte) 0x06, (byte) 0x00, (byte) 0x00, (byte) 0x00,
296 (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00,
302 (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
305 data0, data1, data2, data3,
306 data4, data5, data6, data7,
307 data8, data9, dataA, dataB,
310 else if (bodySize == 16)
315 (byte) 0x06, (byte) 0x00, (byte) 0x00, (byte) 0x00,
318 (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00,
324 (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
327 data0, data1, data2, data3,
328 data4, data5, data6, data7,
329 data8, data9, dataA, dataB,
330 dataC, dataD, dataE, dataF,
333 else // ボディ長が 2, 4, 8, 12 以外の場合... (ボディなし)
338 (byte) 0x06, (byte) 0x00, (byte) 0x00, (byte) 0x00,
341 (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00,
347 (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
353 public int getHoldId()
359 public boolean dumpLog()