OLD | NEW |
1 /** | 1 /** |
2 * \file device-flags.h | 2 * \file device-flags.h |
3 * Special device flags to deal with bugs in specific devices. | 3 * Special device flags to deal with bugs in specific devices. |
4 * | 4 * |
5 * Copyright (C) 2005-2007 Richard A. Low <richard@wentnet.com> | 5 * Copyright (C) 2005-2007 Richard A. Low <richard@wentnet.com> |
6 * Copyright (C) 2005-2012 Linus Walleij <triad@df.lth.se> | 6 * Copyright (C) 2005-2012 Linus Walleij <triad@df.lth.se> |
7 * Copyright (C) 2006-2007 Marcus Meissner | 7 * Copyright (C) 2006-2007 Marcus Meissner |
8 * Copyright (C) 2007 Ted Bullock | 8 * Copyright (C) 2007 Ted Bullock |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 /** | 234 /** |
235 * Broken capture support where cameras do not send CaptureComplete events. | 235 * Broken capture support where cameras do not send CaptureComplete events. |
236 * (libgphoto2) | 236 * (libgphoto2) |
237 */ | 237 */ |
238 #define DEVICE_FLAG_NO_CAPTURE_COMPLETE 0x00400000 | 238 #define DEVICE_FLAG_NO_CAPTURE_COMPLETE 0x00400000 |
239 | 239 |
240 /** | 240 /** |
241 * Direct PTP match required. | 241 * Direct PTP match required. |
242 * (libgphoto2) | 242 * (libgphoto2) |
243 */ | 243 */ |
244 #define DEVICE_FLAG_MATCH_PTP_INTERFACE»» 0x00800000 | 244 #define DEVICE_FLAG_OLYMPUS_XML_WRAPPED»» 0x00800000 |
245 /** | 245 /** |
246 * This flag is like DEVICE_FLAG_OGG_IS_UNKNOWN but for FLAC | 246 * This flag is like DEVICE_FLAG_OGG_IS_UNKNOWN but for FLAC |
247 * files instead. Using the unknown filetype for FLAC files. | 247 * files instead. Using the unknown filetype for FLAC files. |
248 */ | 248 */ |
249 #define DEVICE_FLAG_FLAC_IS_UNKNOWN 0x01000000 | 249 #define DEVICE_FLAG_FLAC_IS_UNKNOWN 0x01000000 |
250 /** | 250 /** |
251 * Device needs unique filenames, no two files can be | 251 * Device needs unique filenames, no two files can be |
252 * named the same string. | 252 * named the same string. |
253 */ | 253 */ |
254 #define DEVICE_FLAG_UNIQUE_FILENAMES 0x02000000 | 254 #define DEVICE_FLAG_UNIQUE_FILENAMES 0x02000000 |
(...skipping 10 matching lines...) Expand all Loading... |
265 /** | 265 /** |
266 * This flag indicates that the device need an explicit | 266 * This flag indicates that the device need an explicit |
267 * USB reset after each connection. Some devices don't | 267 * USB reset after each connection. Some devices don't |
268 * like this, so it's not done by default. | 268 * like this, so it's not done by default. |
269 */ | 269 */ |
270 #define DEVICE_FLAG_FORCE_RESET_ON_CLOSE 0x10000000 | 270 #define DEVICE_FLAG_FORCE_RESET_ON_CLOSE 0x10000000 |
271 /** | 271 /** |
272 * Early Creative Zen (etc) models actually only support | 272 * Early Creative Zen (etc) models actually only support |
273 * command 9805 (Get object property list) and will hang | 273 * command 9805 (Get object property list) and will hang |
274 * if you try to get individual properties of an object. | 274 * if you try to get individual properties of an object. |
| 275 * Or so it seemed. Later bug fixes to the library has made |
| 276 * this work flawlessly so the bug flag is moot. |
| 277 * NOT USED ANYMORE, THIS FLAG MAY BE RECYCLED. |
275 */ | 278 */ |
276 #define DEVICE_FLAG_BROKEN_GET_OBJECT_PROPVAL 0x20000000 | 279 #define DEVICE_FLAG_BROKEN_GET_OBJECT_PROPVAL 0x20000000 |
277 /** | 280 /** |
278 * It seems that some devices return an bad data when | 281 * It seems that some devices return an bad data when |
279 * using the GetObjectInfo operation. So in these cases | 282 * using the GetObjectInfo operation. So in these cases |
280 * we prefer to override the PTP-compatible object infos | 283 * we prefer to override the PTP-compatible object infos |
281 * with the MTP property list. | 284 * with the MTP property list. |
282 * | 285 * |
283 * For example Some Samsung Galaxy S devices contain an MTP | 286 * For example Some Samsung Galaxy S devices contain an MTP |
284 * stack that present the ObjectInfo in 64 bit instead of | 287 * stack that present the ObjectInfo in 64 bit instead of |
285 * 32 bit. | 288 * 32 bit. |
286 */ | 289 */ |
287 #define DEVICE_FLAG_PROPLIST_OVERRIDES_OI 0x40000000 | 290 #define DEVICE_FLAG_PROPLIST_OVERRIDES_OI 0x40000000 |
288 | 291 |
289 /** | 292 /** |
290 * All these bug flags need to be set on SONY NWZ Walkman | 293 * All these bug flags need to be set on SONY NWZ Walkman |
291 * players, and will be autodetected on unknown devices | 294 * players, and will be autodetected on unknown devices |
292 * by detecting the vendor extension descriptor "sony.net" | 295 * by detecting the vendor extension descriptor "sony.net" |
293 */ | 296 */ |
294 #define DEVICE_FLAGS_SONY_NWZ_BUGS \ | 297 #define DEVICE_FLAGS_SONY_NWZ_BUGS \ |
295 (DEVICE_FLAG_UNLOAD_DRIVER | \ | 298 (DEVICE_FLAG_UNLOAD_DRIVER | \ |
296 DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | \ | 299 DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | \ |
297 DEVICE_FLAG_UNIQUE_FILENAMES | \ | 300 DEVICE_FLAG_UNIQUE_FILENAMES | \ |
298 DEVICE_FLAG_FORCE_RESET_ON_CLOSE ) | 301 DEVICE_FLAG_FORCE_RESET_ON_CLOSE) |
299 /** | 302 /** |
300 * All these bug flags need to be set on Android devices, | 303 * All these bug flags need to be set on Android devices, |
301 * they claim to support MTP operations they actually | 304 * they claim to support MTP operations they actually |
302 * cannot handle, especially 9805 (Get object property list). | 305 * cannot handle, especially 9805 (Get object property list). |
303 * These are auto-assigned to devices reporting | 306 * These are auto-assigned to devices reporting |
304 * "android.com" in their device extension descriptor. | 307 * "android.com" in their device extension descriptor. |
305 */ | 308 */ |
306 #define DEVICE_FLAGS_ANDROID_BUGS \ | 309 #define DEVICE_FLAGS_ANDROID_BUGS \ |
307 (DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | \ | 310 (DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | \ |
308 DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST | \ | 311 DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST | \ |
309 DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST | \ | 312 DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST | \ |
310 DEVICE_FLAG_UNLOAD_DRIVER | \ | 313 DEVICE_FLAG_UNLOAD_DRIVER | \ |
311 DEVICE_FLAG_LONG_TIMEOUT ) | 314 DEVICE_FLAG_LONG_TIMEOUT | \ |
| 315 DEVICE_FLAG_FORCE_RESET_ON_CLOSE) |
312 /** | 316 /** |
313 * All these bug flags appear on a number of SonyEricsson | 317 * All these bug flags appear on a number of SonyEricsson |
314 * devices including Android devices not using the stock | 318 * devices including Android devices not using the stock |
315 * Android 4.0+ (Ice Cream Sandwich) MTP stack. It is highly | 319 * Android 4.0+ (Ice Cream Sandwich) MTP stack. It is highly |
316 * supected that these bugs comes from an MTP implementation | 320 * supected that these bugs comes from an MTP implementation |
317 * from Aricent, so it is called the Aricent bug flags as a | 321 * from Aricent, so it is called the Aricent bug flags as a |
318 * shorthand. Especially the header errors that need to be | 322 * shorthand. Especially the header errors that need to be |
319 * ignored is typical for this stack. | 323 * ignored is typical for this stack. |
320 * | 324 * |
321 * After some guesswork we auto-assign these bug flags to | 325 * After some guesswork we auto-assign these bug flags to |
322 * devices that present the "microsoft.com/WPDNA", and | 326 * devices that present the "microsoft.com/WPDNA", and |
323 * "sonyericsson.com/SE" but NOT the "android.com" | 327 * "sonyericsson.com/SE" but NOT the "android.com" |
324 * descriptor. | 328 * descriptor. |
325 */ | 329 */ |
326 #define DEVICE_FLAGS_ARICENT_BUGS \ | 330 #define DEVICE_FLAGS_ARICENT_BUGS \ |
327 (DEVICE_FLAG_IGNORE_HEADER_ERRORS | \ | 331 (DEVICE_FLAG_IGNORE_HEADER_ERRORS | \ |
328 DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST | \ | 332 DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST | \ |
329 DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST ) | 333 DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST) |
OLD | NEW |