Sophie

Sophie

distrib > Mageia > 6 > x86_64 > media > core-updates > by-pkgid > e6ecaac536a8aa0be6d711d3b7a26b69 > files > 12

libmtp-doc-1.1.16-1.1.mga6.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libmtp: /home/iurt/rpmbuild/BUILD/libmtp-1.1.16/src/device-flags.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">libmtp
   &#160;<span id="projectnumber">1.1.16</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a>  </div>
  <div class="headertitle">
<div class="title">device-flags.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><a href="device-flags_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a19b7dced7fa4ac8a3e79defe4acf7226"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a19b7dced7fa4ac8a3e79defe4acf7226">DEVICE_FLAG_NONE</a>&#160;&#160;&#160;0x00000000</td></tr>
<tr class="separator:a19b7dced7fa4ac8a3e79defe4acf7226"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0e84d908586244a19a75488f33cab57"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#aa0e84d908586244a19a75488f33cab57">DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL</a>&#160;&#160;&#160;0x00000001</td></tr>
<tr class="separator:aa0e84d908586244a19a75488f33cab57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1587fc3f18474cc4851fabef4c8523f0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a1587fc3f18474cc4851fabef4c8523f0">DEVICE_FLAG_UNLOAD_DRIVER</a>&#160;&#160;&#160;0x00000002</td></tr>
<tr class="separator:a1587fc3f18474cc4851fabef4c8523f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab54d913455385d33e0768a9bc267cc2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#aab54d913455385d33e0768a9bc267cc2">DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST</a>&#160;&#160;&#160;0x00000004</td></tr>
<tr class="separator:aab54d913455385d33e0768a9bc267cc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55db7edcdd61ad6d7e55a1ce1a8c935a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a55db7edcdd61ad6d7e55a1ce1a8c935a">DEVICE_FLAG_NO_ZERO_READS</a>&#160;&#160;&#160;0x00000008</td></tr>
<tr class="separator:a55db7edcdd61ad6d7e55a1ce1a8c935a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6e791c9db4998010973b03fc1e8fdae"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#ad6e791c9db4998010973b03fc1e8fdae">DEVICE_FLAG_IRIVER_OGG_ALZHEIMER</a>&#160;&#160;&#160;0x00000010</td></tr>
<tr class="separator:ad6e791c9db4998010973b03fc1e8fdae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1a24609bfee40abbacaed393b52ddc4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#aa1a24609bfee40abbacaed393b52ddc4">DEVICE_FLAG_ONLY_7BIT_FILENAMES</a>&#160;&#160;&#160;0x00000020</td></tr>
<tr class="separator:aa1a24609bfee40abbacaed393b52ddc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41baf0bb778e8f27068f02105a1e8e87"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a41baf0bb778e8f27068f02105a1e8e87">DEVICE_FLAG_NO_RELEASE_INTERFACE</a>&#160;&#160;&#160;0x00000040</td></tr>
<tr class="separator:a41baf0bb778e8f27068f02105a1e8e87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3981ba089c54b80782ffcddfae61e77b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a3981ba089c54b80782ffcddfae61e77b">DEVICE_FLAG_IGNORE_HEADER_ERRORS</a>&#160;&#160;&#160;0x00000080</td></tr>
<tr class="separator:a3981ba089c54b80782ffcddfae61e77b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdb88a21ceca88176c696cca220dd6ee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#abdb88a21ceca88176c696cca220dd6ee">DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST</a>&#160;&#160;&#160;0x00000100</td></tr>
<tr class="separator:abdb88a21ceca88176c696cca220dd6ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cc044c15567467ea88d9bf9d8da6ee0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a8cc044c15567467ea88d9bf9d8da6ee0">DEVICE_FLAG_OGG_IS_UNKNOWN</a>&#160;&#160;&#160;0x00000200</td></tr>
<tr class="separator:a8cc044c15567467ea88d9bf9d8da6ee0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4cacd887fd65868705a1bea11429e7e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#aa4cacd887fd65868705a1bea11429e7e">DEVICE_FLAG_BROKEN_SET_SAMPLE_DIMENSIONS</a>&#160;&#160;&#160;0x00000400</td></tr>
<tr class="separator:aa4cacd887fd65868705a1bea11429e7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cb5ac176a14fab632094e75576983f1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a0cb5ac176a14fab632094e75576983f1">DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR</a>&#160;&#160;&#160;0x00000800</td></tr>
<tr class="separator:a0cb5ac176a14fab632094e75576983f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b7771694d15253fc4633b337aa96c12"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a1b7771694d15253fc4633b337aa96c12">DEVICE_FLAG_PLAYLIST_SPL_V1</a>&#160;&#160;&#160;0x00001000</td></tr>
<tr class="separator:a1b7771694d15253fc4633b337aa96c12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e2e383ae8bb09626861063e9fc551a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a0e2e383ae8bb09626861063e9fc551a6">DEVICE_FLAG_PLAYLIST_SPL_V2</a>&#160;&#160;&#160;0x00002000</td></tr>
<tr class="separator:a0e2e383ae8bb09626861063e9fc551a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98942a80d70f03e7ab0f3ab15f0c8e8d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a98942a80d70f03e7ab0f3ab15f0c8e8d">DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED</a>&#160;&#160;&#160;0x00004000</td></tr>
<tr class="separator:a98942a80d70f03e7ab0f3ab15f0c8e8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a009f4afd1f5c4d2dd65dc275b9130dc9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a009f4afd1f5c4d2dd65dc275b9130dc9">DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST</a>&#160;&#160;&#160;0x00008000</td></tr>
<tr class="separator:a009f4afd1f5c4d2dd65dc275b9130dc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3157b25d52eef828e8fd5307bbdcbd63"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a3157b25d52eef828e8fd5307bbdcbd63">DEVICE_FLAG_BROKEN_BATTERY_LEVEL</a>&#160;&#160;&#160;0x00010000</td></tr>
<tr class="separator:a3157b25d52eef828e8fd5307bbdcbd63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b1ee1569eb8ec62e5bf91dd59c23c68"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a2b1ee1569eb8ec62e5bf91dd59c23c68">DEVICE_FLAG_DELETE_SENDS_EVENT</a>&#160;&#160;&#160;0x00020000</td></tr>
<tr class="separator:a2b1ee1569eb8ec62e5bf91dd59c23c68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e87f0374d1dbad9aa8f63fafe6cb276"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a3e87f0374d1dbad9aa8f63fafe6cb276">DEVICE_FLAG_CAPTURE</a>&#160;&#160;&#160;0x00040000</td></tr>
<tr class="separator:a3e87f0374d1dbad9aa8f63fafe6cb276"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3a2a83cece26e605143746e75e66d94"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#ae3a2a83cece26e605143746e75e66d94">DEVICE_FLAG_CAPTURE_PREVIEW</a>&#160;&#160;&#160;0x00080000</td></tr>
<tr class="separator:ae3a2a83cece26e605143746e75e66d94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f0d55ab36c41b8720096b4c79354acc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a5f0d55ab36c41b8720096b4c79354acc">DEVICE_FLAG_NIKON_BROKEN_CAPTURE</a>&#160;&#160;&#160;0x00100000</td></tr>
<tr class="separator:a5f0d55ab36c41b8720096b4c79354acc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a7798479a769b9a77321e8297556d11"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a0a7798479a769b9a77321e8297556d11">DEVICE_FLAG_NIKON_1</a>&#160;&#160;&#160;0x00200000</td></tr>
<tr class="separator:a0a7798479a769b9a77321e8297556d11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9442f0c002e589f62043a6bb8f932209"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a9442f0c002e589f62043a6bb8f932209">DEVICE_FLAG_NO_CAPTURE_COMPLETE</a>&#160;&#160;&#160;0x00400000</td></tr>
<tr class="separator:a9442f0c002e589f62043a6bb8f932209"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7adf89881647209ff71c09d58073e9f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#af7adf89881647209ff71c09d58073e9f">DEVICE_FLAG_OLYMPUS_XML_WRAPPED</a>&#160;&#160;&#160;0x00800000</td></tr>
<tr class="separator:af7adf89881647209ff71c09d58073e9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0ebfc1b947d5051e8a197d444eb5051"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#ab0ebfc1b947d5051e8a197d444eb5051">DEVICE_FLAG_FLAC_IS_UNKNOWN</a>&#160;&#160;&#160;0x01000000</td></tr>
<tr class="separator:ab0ebfc1b947d5051e8a197d444eb5051"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade2f08c77c07bcf6b3e03e3e28449250"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#ade2f08c77c07bcf6b3e03e3e28449250">DEVICE_FLAG_UNIQUE_FILENAMES</a>&#160;&#160;&#160;0x02000000</td></tr>
<tr class="separator:ade2f08c77c07bcf6b3e03e3e28449250"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a212473c87013ce6002c9855970c3bdb8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a212473c87013ce6002c9855970c3bdb8">DEVICE_FLAG_SWITCH_MODE_BLACKBERRY</a>&#160;&#160;&#160;0x04000000</td></tr>
<tr class="separator:a212473c87013ce6002c9855970c3bdb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad24056fbb65aae5001ccc62731f4de74"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#ad24056fbb65aae5001ccc62731f4de74">DEVICE_FLAG_LONG_TIMEOUT</a>&#160;&#160;&#160;0x08000000</td></tr>
<tr class="separator:ad24056fbb65aae5001ccc62731f4de74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0ce09f1da84028007f2da3a80329778"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#ad0ce09f1da84028007f2da3a80329778">DEVICE_FLAG_FORCE_RESET_ON_CLOSE</a>&#160;&#160;&#160;0x10000000</td></tr>
<tr class="separator:ad0ce09f1da84028007f2da3a80329778"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ad4588664b7c781d086eebb781daafa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a2ad4588664b7c781d086eebb781daafa">DEVICE_FLAG_DONT_CLOSE_SESSION</a>&#160;&#160;&#160;0x20000000</td></tr>
<tr class="separator:a2ad4588664b7c781d086eebb781daafa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21f8ecfb7097c90b04a7794d01ca360a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a21f8ecfb7097c90b04a7794d01ca360a">DEVICE_FLAG_PROPLIST_OVERRIDES_OI</a>&#160;&#160;&#160;0x40000000</td></tr>
<tr class="separator:a21f8ecfb7097c90b04a7794d01ca360a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09bdaecb3ed6b921ea57ea3409b73dd5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a09bdaecb3ed6b921ea57ea3409b73dd5">DEVICE_FLAG_SAMSUNG_OFFSET_BUG</a>&#160;&#160;&#160;0x80000000</td></tr>
<tr class="separator:a09bdaecb3ed6b921ea57ea3409b73dd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d5e31d662059e4210cb039ed1ceee7c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a6d5e31d662059e4210cb039ed1ceee7c">DEVICE_FLAGS_SONY_NWZ_BUGS</a></td></tr>
<tr class="separator:a6d5e31d662059e4210cb039ed1ceee7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a176c8a3350d7f9048d577c112f0ec0e6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#a176c8a3350d7f9048d577c112f0ec0e6">DEVICE_FLAGS_ANDROID_BUGS</a></td></tr>
<tr class="separator:a176c8a3350d7f9048d577c112f0ec0e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba1e1b794984101136c0192625081e7d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="device-flags_8h.html#aba1e1b794984101136c0192625081e7d">DEVICE_FLAGS_ARICENT_BUGS</a></td></tr>
<tr class="separator:aba1e1b794984101136c0192625081e7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Special device flags to deal with bugs in specific devices.</p>
<p>Copyright (C) 2005-2007 Richard A. Low <a href="#" onclick="location.href='mai'+'lto:'+'ric'+'ha'+'rd@'+'we'+'ntn'+'et'+'.co'+'m'; return false;">richa<span style="display: none;">.nosp@m.</span>rd@w<span style="display: none;">.nosp@m.</span>entne<span style="display: none;">.nosp@m.</span>t.co<span style="display: none;">.nosp@m.</span>m</a> Copyright (C) 2005-2012 Linus Walleij <a href="#" onclick="location.href='mai'+'lto:'+'tri'+'ad'+'@df'+'.l'+'th.'+'se'; return false;">triad<span style="display: none;">.nosp@m.</span>@df.<span style="display: none;">.nosp@m.</span>lth.s<span style="display: none;">.nosp@m.</span>e</a> Copyright (C) 2006-2007 Marcus Meissner Copyright (C) 2007 Ted Bullock</p>
<p>This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.</p>
<p>This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</p>
<p>You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</p>
<p>This file is supposed to be included by both libmtp and libgphoto2. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a0cb5ac176a14fab632094e75576983f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0cb5ac176a14fab632094e75576983f1">&#9670;&nbsp;</a></span>DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR&#160;&#160;&#160;0x00000800</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Some devices, particularly SanDisk Sansas, need to always have their "OS Descriptor" probed in order to work correctly. This flag provides that extra massage. </p>

</div>
</div>
<a id="a3157b25d52eef828e8fd5307bbdcbd63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3157b25d52eef828e8fd5307bbdcbd63">&#9670;&nbsp;</a></span>DEVICE_FLAG_BROKEN_BATTERY_LEVEL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_BROKEN_BATTERY_LEVEL&#160;&#160;&#160;0x00010000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Devices that cannot support reading out battery level. </p>

</div>
</div>
<a id="aab54d913455385d33e0768a9bc267cc2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab54d913455385d33e0768a9bc267cc2">&#9670;&nbsp;</a></span>DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST&#160;&#160;&#160;0x00000004</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This means that the PTP_OC_MTP_GetObjPropList (9805) is broken in some way, either it doesn't work at all (as for Android devices) or it won't properly return all object properties if parameter 3 is set to 0xFFFFFFFFU. </p>

</div>
</div>
<a id="aa0e84d908586244a19a75488f33cab57"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0e84d908586244a19a75488f33cab57">&#9670;&nbsp;</a></span>DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL&#160;&#160;&#160;0x00000001</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This means that the PTP_OC_MTP_GetObjPropList is broken in the sense that it won't return properly formatted metadata for ALL files on the device when you request an object property list for object 0xFFFFFFFF with parameter 3 likewise set to 0xFFFFFFFF. Compare to DEVICE_FLAG_BROKEN_MTPGETOBJECTPROPLIST which only signify that it's broken when getting metadata for a SINGLE object. A typical way the implementation may be broken is that it may not return a proper count of the objects, and sometimes (like on the ZENs) objects are simply missing from the list if you use this. Sometimes it has been used incorrectly to mask bugs in the code (like handling transactions of data with size given to -1 (0xFFFFFFFFU), in that case please help us remove it now the code is fixed. Sometimes this is used because getting all the objects is just too slow and the USB transaction will time out if you use this command. </p>

</div>
</div>
<a id="a009f4afd1f5c4d2dd65dc275b9130dc9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a009f4afd1f5c4d2dd65dc275b9130dc9">&#9670;&nbsp;</a></span>DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST&#160;&#160;&#160;0x00008000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This avoids use of the send object proplist which is used when creating new objects (not just updating) The DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST is related but only concerns the case where the object proplist is sent in to update an existing object. The Toshiba Gigabeat MEU202 for example has this problem. </p>

</div>
</div>
<a id="abdb88a21ceca88176c696cca220dd6ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abdb88a21ceca88176c696cca220dd6ee">&#9670;&nbsp;</a></span>DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST&#160;&#160;&#160;0x00000100</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The Motorola RAZR2 V8 (others?) has broken set object proplist causing the metadata setting to fail. (The set object prop to set individual properties work on this device, but the metadata is plain ignored on tracks, though e.g. playlist names can be set.) </p>

</div>
</div>
<a id="aa4cacd887fd65868705a1bea11429e7e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4cacd887fd65868705a1bea11429e7e">&#9670;&nbsp;</a></span>DEVICE_FLAG_BROKEN_SET_SAMPLE_DIMENSIONS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_BROKEN_SET_SAMPLE_DIMENSIONS&#160;&#160;&#160;0x00000400</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The Creative Zen is quite unstable in libmtp but seems to be better with later firmware versions. However, it still frequently crashes when setting album art dimensions. This flag disables setting the dimensions (which seems to make no difference to how the graphic is displayed). </p>

</div>
</div>
<a id="a98942a80d70f03e7ab0f3ab15f0c8e8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a98942a80d70f03e7ab0f3ab15f0c8e8d">&#9670;&nbsp;</a></span>DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED&#160;&#160;&#160;0x00004000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The Sansa E250 is know to have this problem which is actually that the device claims that property PTP_OPC_DateModified is read/write but will still fail to update it. It can only be set properly the first time a file is sent. </p>

</div>
</div>
<a id="a3e87f0374d1dbad9aa8f63fafe6cb276"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e87f0374d1dbad9aa8f63fafe6cb276">&#9670;&nbsp;</a></span>DEVICE_FLAG_CAPTURE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_CAPTURE&#160;&#160;&#160;0x00040000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Cameras that can capture images. (libgphoto2) </p>

</div>
</div>
<a id="ae3a2a83cece26e605143746e75e66d94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3a2a83cece26e605143746e75e66d94">&#9670;&nbsp;</a></span>DEVICE_FLAG_CAPTURE_PREVIEW</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_CAPTURE_PREVIEW&#160;&#160;&#160;0x00080000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Cameras that can capture images. (libgphoto2) </p>

</div>
</div>
<a id="a2b1ee1569eb8ec62e5bf91dd59c23c68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b1ee1569eb8ec62e5bf91dd59c23c68">&#9670;&nbsp;</a></span>DEVICE_FLAG_DELETE_SENDS_EVENT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_DELETE_SENDS_EVENT&#160;&#160;&#160;0x00020000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Devices that send "ObjectDeleted" events after deletion of images. (libgphoto2) </p>

</div>
</div>
<a id="a2ad4588664b7c781d086eebb781daafa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ad4588664b7c781d086eebb781daafa">&#9670;&nbsp;</a></span>DEVICE_FLAG_DONT_CLOSE_SESSION</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_DONT_CLOSE_SESSION&#160;&#160;&#160;0x20000000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>On 2016 EOS cameras, do not close the session on exiting, as the device will only report ptp errors afterwards. </p>

</div>
</div>
<a id="ab0ebfc1b947d5051e8a197d444eb5051"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0ebfc1b947d5051e8a197d444eb5051">&#9670;&nbsp;</a></span>DEVICE_FLAG_FLAC_IS_UNKNOWN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_FLAC_IS_UNKNOWN&#160;&#160;&#160;0x01000000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This flag is like DEVICE_FLAG_OGG_IS_UNKNOWN but for FLAC files instead. Using the unknown filetype for FLAC files. </p>

</div>
</div>
<a id="ad0ce09f1da84028007f2da3a80329778"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad0ce09f1da84028007f2da3a80329778">&#9670;&nbsp;</a></span>DEVICE_FLAG_FORCE_RESET_ON_CLOSE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_FORCE_RESET_ON_CLOSE&#160;&#160;&#160;0x10000000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This flag indicates that the device need an explicit USB reset after each connection. Some devices don't like this, so it's not done by default. </p>

</div>
</div>
<a id="a3981ba089c54b80782ffcddfae61e77b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3981ba089c54b80782ffcddfae61e77b">&#9670;&nbsp;</a></span>DEVICE_FLAG_IGNORE_HEADER_ERRORS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_IGNORE_HEADER_ERRORS&#160;&#160;&#160;0x00000080</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This flag was introduced with the advent of Creative ZEN 8GB. The device sometimes return a broken PTP header like this: &lt; 1502 0000 0200 01d1 02d1 01d2 &gt; the latter 6 bytes (representing "code" and "transaction ID") contain junk. This is breaking the PTP/MTP spec but works on Windows anyway, probably because the Windows implementation does not check that these bytes are valid. To interoperate with devices like this, we need this flag to emulate the Windows bug. Broken headers has also been found in the Aricent MTP stack. </p>

</div>
</div>
<a id="ad6e791c9db4998010973b03fc1e8fdae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad6e791c9db4998010973b03fc1e8fdae">&#9670;&nbsp;</a></span>DEVICE_FLAG_IRIVER_OGG_ALZHEIMER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_IRIVER_OGG_ALZHEIMER&#160;&#160;&#160;0x00000010</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This flag means that the device is prone to forgetting the OGG container file type, so that libmtp must look at the filename extensions in order to determine that a file is actually OGG. This is a clear and present firmware bug, and while firmware bugs should be fixed in firmware, we like OGG so much that we back it by introducing this flag. The error has only been seen on iriver devices. Turning this flag on won't hurt anything, just that the check against filename extension will be done for files of "unknown" type. If the player does not even know (reports) that it supports ogg even though it does, please use the stronger OGG_IS_UNKNOWN flag, which will forcedly support ogg on anything with the .ogg filename extension. </p>

</div>
</div>
<a id="ad24056fbb65aae5001ccc62731f4de74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad24056fbb65aae5001ccc62731f4de74">&#9670;&nbsp;</a></span>DEVICE_FLAG_LONG_TIMEOUT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_LONG_TIMEOUT&#160;&#160;&#160;0x08000000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This flag indicates that the device need an extra long timeout on some operations. </p>

</div>
</div>
<a id="a0a7798479a769b9a77321e8297556d11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a7798479a769b9a77321e8297556d11">&#9670;&nbsp;</a></span>DEVICE_FLAG_NIKON_1</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_NIKON_1&#160;&#160;&#160;0x00200000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>To distinguish the V1 series from the DSLRs and handle them (libgphoto2) </p>

</div>
</div>
<a id="a5f0d55ab36c41b8720096b4c79354acc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f0d55ab36c41b8720096b4c79354acc">&#9670;&nbsp;</a></span>DEVICE_FLAG_NIKON_BROKEN_CAPTURE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_NIKON_BROKEN_CAPTURE&#160;&#160;&#160;0x00100000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Nikon broken capture support without proper ObjectAdded events. (libgphoto2) </p>

</div>
</div>
<a id="a9442f0c002e589f62043a6bb8f932209"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9442f0c002e589f62043a6bb8f932209">&#9670;&nbsp;</a></span>DEVICE_FLAG_NO_CAPTURE_COMPLETE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_NO_CAPTURE_COMPLETE&#160;&#160;&#160;0x00400000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Broken capture support where cameras do not send CaptureComplete events. (libgphoto2) </p>

</div>
</div>
<a id="a41baf0bb778e8f27068f02105a1e8e87"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a41baf0bb778e8f27068f02105a1e8e87">&#9670;&nbsp;</a></span>DEVICE_FLAG_NO_RELEASE_INTERFACE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_NO_RELEASE_INTERFACE&#160;&#160;&#160;0x00000040</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This flag indicates that the device will lock up if you try to get status of endpoints and/or release the interface when closing the device. This fixes problems with SanDisk Sansa devices especially. It may be a side-effect of a Windows behaviour of never releasing interfaces. </p>

</div>
</div>
<a id="a55db7edcdd61ad6d7e55a1ce1a8c935a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55db7edcdd61ad6d7e55a1ce1a8c935a">&#9670;&nbsp;</a></span>DEVICE_FLAG_NO_ZERO_READS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_NO_ZERO_READS&#160;&#160;&#160;0x00000008</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This means the device doesn't send zero packets to indicate end of transfer when the transfer boundary occurs at a multiple of 64 bytes (the USB 1.1 endpoint size). Instead, exactly one extra byte is sent at the end of the transfer if the size is an integer multiple of USB 1.1 endpoint size (64 bytes).</p>
<p>This behaviour is most probably a workaround due to the fact that the hardware USB slave controller in the device cannot handle zero writes at all, and the usage of the USB 1.1 endpoint size is due to the fact that the device will "gear
down" on a USB 1.1 hub, and since 64 bytes is a multiple of 512 bytes, it will work with USB 1.1 and USB 2.0 alike. </p>

</div>
</div>
<a id="a19b7dced7fa4ac8a3e79defe4acf7226"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19b7dced7fa4ac8a3e79defe4acf7226">&#9670;&nbsp;</a></span>DEVICE_FLAG_NONE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_NONE&#160;&#160;&#160;0x00000000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>These flags are used to indicate if some or other device need special treatment. These should be possible to concatenate using logical OR so please use one bit per feature and lets pray we don't need more than 32 bits... </p>

</div>
</div>
<a id="a8cc044c15567467ea88d9bf9d8da6ee0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8cc044c15567467ea88d9bf9d8da6ee0">&#9670;&nbsp;</a></span>DEVICE_FLAG_OGG_IS_UNKNOWN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_OGG_IS_UNKNOWN&#160;&#160;&#160;0x00000200</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The Samsung YP-T10 think Ogg files shall be sent with the "unknown" (PTP_OFC_Undefined) file type, this gives a side effect that is a combination of the iRiver Ogg Alzheimer problem (have to recognized Ogg files on file extension) and a need to report the Ogg support (the device itself does not properly claim to support it) and need to set filetype to unknown when storing Ogg files, even though they're not actually unknown. Later iRivers seem to need this flag since they do not report to support OGG even though they actually do. Often the device supports OGG in USB mass storage mode, then the firmware simply miss to declare metadata support for OGG properly. </p>

</div>
</div>
<a id="af7adf89881647209ff71c09d58073e9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7adf89881647209ff71c09d58073e9f">&#9670;&nbsp;</a></span>DEVICE_FLAG_OLYMPUS_XML_WRAPPED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_OLYMPUS_XML_WRAPPED&#160;&#160;&#160;0x00800000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Direct PTP match required. (libgphoto2) </p>

</div>
</div>
<a id="aa1a24609bfee40abbacaed393b52ddc4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1a24609bfee40abbacaed393b52ddc4">&#9670;&nbsp;</a></span>DEVICE_FLAG_ONLY_7BIT_FILENAMES</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_ONLY_7BIT_FILENAMES&#160;&#160;&#160;0x00000020</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This flag indicates a limitation in the filenames a device can accept - they must be 7 bit (all chars &lt;= 127/0x7F). It was found first on the Philips Shoqbox, and is a deviation from the PTP standard which mandates that any unicode chars may be used for filenames. I guess this is caused by a 7bit-only filesystem being used intrinsically on the device. </p>

</div>
</div>
<a id="a1b7771694d15253fc4633b337aa96c12"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b7771694d15253fc4633b337aa96c12">&#9670;&nbsp;</a></span>DEVICE_FLAG_PLAYLIST_SPL_V1</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_PLAYLIST_SPL_V1&#160;&#160;&#160;0x00001000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Samsung has implimented its own playlist format as a .spl file stored in the normal file system, rather than a proper mtp playlist. There are multiple versions of the .spl format identified by a line in the file: VERSION X.XX Version 1.00 is just a simple playlist. </p>

</div>
</div>
<a id="a0e2e383ae8bb09626861063e9fc551a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e2e383ae8bb09626861063e9fc551a6">&#9670;&nbsp;</a></span>DEVICE_FLAG_PLAYLIST_SPL_V2</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_PLAYLIST_SPL_V2&#160;&#160;&#160;0x00002000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Samsung has implimented its own playlist format as a .spl file stored in the normal file system, rather than a proper mtp playlist. There are multiple versions of the .spl format identified by a line in the file: VERSION X.XX Version 2.00 is playlist but allows DNSe sound settings to be stored, per playlist. </p>

</div>
</div>
<a id="a21f8ecfb7097c90b04a7794d01ca360a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21f8ecfb7097c90b04a7794d01ca360a">&#9670;&nbsp;</a></span>DEVICE_FLAG_PROPLIST_OVERRIDES_OI</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_PROPLIST_OVERRIDES_OI&#160;&#160;&#160;0x40000000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>It seems that some devices return an bad data when using the GetObjectInfo operation. So in these cases we prefer to override the PTP-compatible object infos with the MTP property list.</p>
<p>For example Some Samsung Galaxy S devices contain an MTP stack that present the ObjectInfo in 64 bit instead of 32 bit. </p>

</div>
</div>
<a id="a09bdaecb3ed6b921ea57ea3409b73dd5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a09bdaecb3ed6b921ea57ea3409b73dd5">&#9670;&nbsp;</a></span>DEVICE_FLAG_SAMSUNG_OFFSET_BUG</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_SAMSUNG_OFFSET_BUG&#160;&#160;&#160;0x80000000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The MTP stack of Samsung Galaxy devices has a mysterious bug in GetPartialObject. When GetPartialObject is invoked to read the last bytes of a file and the amount of data to read is such that the last USB packet sent in the reply matches exactly the USB 2.0 packet size, then the Samsung Galaxy device hangs, resulting in a timeout error. </p>

</div>
</div>
<a id="a212473c87013ce6002c9855970c3bdb8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a212473c87013ce6002c9855970c3bdb8">&#9670;&nbsp;</a></span>DEVICE_FLAG_SWITCH_MODE_BLACKBERRY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_SWITCH_MODE_BLACKBERRY&#160;&#160;&#160;0x04000000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This flag performs some random magic on the BlackBerry device to switch from USB mass storage to MTP mode we think. </p>

</div>
</div>
<a id="ade2f08c77c07bcf6b3e03e3e28449250"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade2f08c77c07bcf6b3e03e3e28449250">&#9670;&nbsp;</a></span>DEVICE_FLAG_UNIQUE_FILENAMES</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_UNIQUE_FILENAMES&#160;&#160;&#160;0x02000000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Device needs unique filenames, no two files can be named the same string. </p>

</div>
</div>
<a id="a1587fc3f18474cc4851fabef4c8523f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1587fc3f18474cc4851fabef4c8523f0">&#9670;&nbsp;</a></span>DEVICE_FLAG_UNLOAD_DRIVER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAG_UNLOAD_DRIVER&#160;&#160;&#160;0x00000002</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This means that under Linux, another kernel module may be using this device's USB interface, so we need to detach it if it is. Typically this is on dual-mode devices that will present both an MTP compliant interface and device descriptor <em>and</em> a USB mass storage interface. If the USB mass storage interface is in use, other apps (like our userspace libmtp through libusb access path) cannot get in and get cosy with it. So we can remove the offending application. Typically this means you have to run the program as root as well. </p>

</div>
</div>
<a id="a176c8a3350d7f9048d577c112f0ec0e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a176c8a3350d7f9048d577c112f0ec0e6">&#9670;&nbsp;</a></span>DEVICE_FLAGS_ANDROID_BUGS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAGS_ANDROID_BUGS</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(<a class="code" href="device-flags_8h.html#aab54d913455385d33e0768a9bc267cc2">DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST</a> | \</div><div class="line">   DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST | \</div><div class="line">   DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST | \</div><div class="line">   DEVICE_FLAG_UNLOAD_DRIVER | \</div><div class="line">   DEVICE_FLAG_LONG_TIMEOUT | \</div><div class="line">   DEVICE_FLAG_FORCE_RESET_ON_CLOSE)</div><div class="ttc" id="device-flags_8h_html_aab54d913455385d33e0768a9bc267cc2"><div class="ttname"><a href="device-flags_8h.html#aab54d913455385d33e0768a9bc267cc2">DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST</a></div><div class="ttdeci">#define DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST</div><div class="ttdef"><b>Definition:</b> device-flags.h:73</div></div>
</div><!-- fragment --><p>All these bug flags need to be set on Android devices, they claim to support MTP operations they actually cannot handle, especially 9805 (Get object property list). These are auto-assigned to devices reporting "android.com" in their device extension descriptor. </p>

</div>
</div>
<a id="aba1e1b794984101136c0192625081e7d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba1e1b794984101136c0192625081e7d">&#9670;&nbsp;</a></span>DEVICE_FLAGS_ARICENT_BUGS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAGS_ARICENT_BUGS</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(<a class="code" href="device-flags_8h.html#a3981ba089c54b80782ffcddfae61e77b">DEVICE_FLAG_IGNORE_HEADER_ERRORS</a> | \</div><div class="line">   DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST | \</div><div class="line">   DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST)</div><div class="ttc" id="device-flags_8h_html_a3981ba089c54b80782ffcddfae61e77b"><div class="ttname"><a href="device-flags_8h.html#a3981ba089c54b80782ffcddfae61e77b">DEVICE_FLAG_IGNORE_HEADER_ERRORS</a></div><div class="ttdeci">#define DEVICE_FLAG_IGNORE_HEADER_ERRORS</div><div class="ttdef"><b>Definition:</b> device-flags.h:135</div></div>
</div><!-- fragment --><p>All these bug flags appear on a number of SonyEricsson devices including Android devices not using the stock Android 4.0+ (Ice Cream Sandwich) MTP stack. It is highly supected that these bugs comes from an MTP implementation from Aricent, so it is called the Aricent bug flags as a shorthand. Especially the header errors that need to be ignored is typical for this stack.</p>
<p>After some guesswork we auto-assign these bug flags to devices that present the "microsoft.com/WPDNA", and "sonyericsson.com/SE" but NOT the "android.com" descriptor. </p>

</div>
</div>
<a id="a6d5e31d662059e4210cb039ed1ceee7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d5e31d662059e4210cb039ed1ceee7c">&#9670;&nbsp;</a></span>DEVICE_FLAGS_SONY_NWZ_BUGS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEVICE_FLAGS_SONY_NWZ_BUGS</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(<a class="code" href="device-flags_8h.html#a1587fc3f18474cc4851fabef4c8523f0">DEVICE_FLAG_UNLOAD_DRIVER</a> | \</div><div class="line">   DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | \</div><div class="line">   DEVICE_FLAG_UNIQUE_FILENAMES | \</div><div class="line">   DEVICE_FLAG_FORCE_RESET_ON_CLOSE)</div><div class="ttc" id="device-flags_8h_html_a1587fc3f18474cc4851fabef4c8523f0"><div class="ttname"><a href="device-flags_8h.html#a1587fc3f18474cc4851fabef4c8523f0">DEVICE_FLAG_UNLOAD_DRIVER</a></div><div class="ttdeci">#define DEVICE_FLAG_UNLOAD_DRIVER</div><div class="ttdef"><b>Definition:</b> device-flags.h:66</div></div>
</div><!-- fragment --><p>All these bug flags need to be set on SONY NWZ Walkman players, and will be autodetected on unknown devices by detecting the vendor extension descriptor "sony.net" </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>