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_OLYMPUS_XML_WRAPPED»» 0x00800000 | 244 #define DEVICE_FLAG_MATCH_PTP_INTERFACE»» 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. | |
278 */ | 275 */ |
279 #define DEVICE_FLAG_BROKEN_GET_OBJECT_PROPVAL 0x20000000 | 276 #define DEVICE_FLAG_BROKEN_GET_OBJECT_PROPVAL 0x20000000 |
280 /** | 277 /** |
281 * It seems that some devices return an bad data when | 278 * It seems that some devices return an bad data when |
282 * using the GetObjectInfo operation. So in these cases | 279 * using the GetObjectInfo operation. So in these cases |
283 * we prefer to override the PTP-compatible object infos | 280 * we prefer to override the PTP-compatible object infos |
284 * with the MTP property list. | 281 * with the MTP property list. |
285 * | 282 * |
286 * For example Some Samsung Galaxy S devices contain an MTP | 283 * For example Some Samsung Galaxy S devices contain an MTP |
287 * stack that present the ObjectInfo in 64 bit instead of | 284 * stack that present the ObjectInfo in 64 bit instead of |
288 * 32 bit. | 285 * 32 bit. |
289 */ | 286 */ |
290 #define DEVICE_FLAG_PROPLIST_OVERRIDES_OI 0x40000000 | 287 #define DEVICE_FLAG_PROPLIST_OVERRIDES_OI 0x40000000 |
291 | 288 |
292 /** | 289 /** |
293 * All these bug flags need to be set on SONY NWZ Walkman | 290 * All these bug flags need to be set on SONY NWZ Walkman |
294 * players, and will be autodetected on unknown devices | 291 * players, and will be autodetected on unknown devices |
295 * by detecting the vendor extension descriptor "sony.net" | 292 * by detecting the vendor extension descriptor "sony.net" |
296 */ | 293 */ |
297 #define DEVICE_FLAGS_SONY_NWZ_BUGS \ | 294 #define DEVICE_FLAGS_SONY_NWZ_BUGS \ |
298 (DEVICE_FLAG_UNLOAD_DRIVER | \ | 295 (DEVICE_FLAG_UNLOAD_DRIVER | \ |
299 DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | \ | 296 DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | \ |
300 DEVICE_FLAG_UNIQUE_FILENAMES | \ | 297 DEVICE_FLAG_UNIQUE_FILENAMES | \ |
301 DEVICE_FLAG_FORCE_RESET_ON_CLOSE) | 298 DEVICE_FLAG_FORCE_RESET_ON_CLOSE ) |
302 /** | 299 /** |
303 * All these bug flags need to be set on Android devices, | 300 * All these bug flags need to be set on Android devices, |
304 * they claim to support MTP operations they actually | 301 * they claim to support MTP operations they actually |
305 * cannot handle, especially 9805 (Get object property list). | 302 * cannot handle, especially 9805 (Get object property list). |
306 * These are auto-assigned to devices reporting | 303 * These are auto-assigned to devices reporting |
307 * "android.com" in their device extension descriptor. | 304 * "android.com" in their device extension descriptor. |
308 */ | 305 */ |
309 #define DEVICE_FLAGS_ANDROID_BUGS \ | 306 #define DEVICE_FLAGS_ANDROID_BUGS \ |
310 (DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | \ | 307 (DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | \ |
311 DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST | \ | 308 DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST | \ |
312 DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST | \ | 309 DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST | \ |
313 DEVICE_FLAG_UNLOAD_DRIVER | \ | 310 DEVICE_FLAG_UNLOAD_DRIVER | \ |
314 DEVICE_FLAG_LONG_TIMEOUT | \ | 311 DEVICE_FLAG_LONG_TIMEOUT ) |
315 DEVICE_FLAG_FORCE_RESET_ON_CLOSE) | |
316 /** | 312 /** |
317 * All these bug flags appear on a number of SonyEricsson | 313 * All these bug flags appear on a number of SonyEricsson |
318 * devices including Android devices not using the stock | 314 * devices including Android devices not using the stock |
319 * Android 4.0+ (Ice Cream Sandwich) MTP stack. It is highly | 315 * Android 4.0+ (Ice Cream Sandwich) MTP stack. It is highly |
320 * supected that these bugs comes from an MTP implementation | 316 * supected that these bugs comes from an MTP implementation |
321 * from Aricent, so it is called the Aricent bug flags as a | 317 * from Aricent, so it is called the Aricent bug flags as a |
322 * shorthand. Especially the header errors that need to be | 318 * shorthand. Especially the header errors that need to be |
323 * ignored is typical for this stack. | 319 * ignored is typical for this stack. |
324 * | 320 * |
325 * After some guesswork we auto-assign these bug flags to | 321 * After some guesswork we auto-assign these bug flags to |
326 * devices that present the "microsoft.com/WPDNA", and | 322 * devices that present the "microsoft.com/WPDNA", and |
327 * "sonyericsson.com/SE" but NOT the "android.com" | 323 * "sonyericsson.com/SE" but NOT the "android.com" |
328 * descriptor. | 324 * descriptor. |
329 */ | 325 */ |
330 #define DEVICE_FLAGS_ARICENT_BUGS \ | 326 #define DEVICE_FLAGS_ARICENT_BUGS \ |
331 (DEVICE_FLAG_IGNORE_HEADER_ERRORS | \ | 327 (DEVICE_FLAG_IGNORE_HEADER_ERRORS | \ |
332 DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST | \ | 328 DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST | \ |
333 DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST) | 329 DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST ) |
OLD | NEW |