Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > by-pkgid > 23fdeec2afeeb035357795bcffb419c6 > files > 67

libmtp-doc-1.0.2-1mdv2010.1.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"/>
<title>libmtp: /home/mandrake/rpm/BUILD/libmtp-1.0.2/src/ptp.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.2 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="dir_afadb87d2fbfeb62b40078349a549d44.html">src</a>
  </div>
</div>
<div class="contents">
<h1>ptp.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* ptp.h</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2001 Mariusz Woloszyn &lt;emsi@ipartners.pl&gt;</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2003-2009 Marcus Meissner &lt;marcus@jet.franken.de&gt;</span>
<a name="l00005"></a>00005 <span class="comment"> * Copyright (C) 2006-2008 Linus Walleij &lt;triad@df.lth.se&gt;</span>
<a name="l00006"></a>00006 <span class="comment"> *</span>
<a name="l00007"></a>00007 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00008"></a>00008 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00009"></a>00009 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00010"></a>00010 <span class="comment"> * version 2 of the License, or (at your option) any later version.</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00013"></a>00013 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00014"></a>00014 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00015"></a>00015 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00016"></a>00016 <span class="comment"> *</span>
<a name="l00017"></a>00017 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00018"></a>00018 <span class="comment"> * License along with this library; if not, write to the</span>
<a name="l00019"></a>00019 <span class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</span>
<a name="l00020"></a>00020 <span class="comment"> * Boston, MA 02111-1307, USA.</span>
<a name="l00021"></a>00021 <span class="comment"> */</span>
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="preprocessor">#ifndef __PTP_H__</span>
<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#define __PTP_H__</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;stdarg.h&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;time.h&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_ICONV</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#include &lt;iconv.h&gt;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#endif</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#include &quot;gphoto2-endian.h&quot;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="device-flags_8h.html">device-flags.h</a>&quot;</span>
<a name="l00033"></a>00033 
<a name="l00034"></a>00034 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
<a name="l00036"></a>00036 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
<a name="l00037"></a>00037 
<a name="l00038"></a>00038 <span class="comment">/* PTP datalayer byteorder */</span>
<a name="l00039"></a>00039 
<a name="l00040"></a>00040 <span class="preprocessor">#define PTP_DL_BE                       0xF0</span>
<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DL_LE                       0x0F</span>
<a name="l00042"></a>00042 <span class="preprocessor"></span>
<a name="l00043"></a>00043 <span class="comment">/* USB interface class */</span>
<a name="l00044"></a>00044 <span class="preprocessor">#ifndef USB_CLASS_PTP</span>
<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_PTP                   6</span>
<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00047"></a>00047 <span class="preprocessor"></span>
<a name="l00048"></a>00048 <span class="comment">/* PTP request/response/event general PTP container (transport independent) */</span>
<a name="l00049"></a>00049 
<a name="l00050"></a><a class="code" href="struct__PTPContainer.html">00050</a> <span class="keyword">struct </span><a class="code" href="struct__PTPContainer.html">_PTPContainer</a> {
<a name="l00051"></a>00051         uint16_t Code;
<a name="l00052"></a>00052         uint32_t SessionID;
<a name="l00053"></a>00053         uint32_t Transaction_ID;
<a name="l00054"></a>00054         <span class="comment">/* params  may be of any type of size less or equal to uint32_t */</span>
<a name="l00055"></a>00055         uint32_t Param1;
<a name="l00056"></a>00056         uint32_t Param2;
<a name="l00057"></a>00057         uint32_t Param3;
<a name="l00058"></a>00058         <span class="comment">/* events can only have three parameters */</span>
<a name="l00059"></a>00059         uint32_t Param4;
<a name="l00060"></a>00060         uint32_t Param5;
<a name="l00061"></a>00061         <span class="comment">/* the number of meaningfull parameters */</span>
<a name="l00062"></a>00062         uint8_t  Nparam;
<a name="l00063"></a>00063 };
<a name="l00064"></a>00064 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPContainer.html">_PTPContainer</a> <a class="code" href="struct__PTPContainer.html">PTPContainer</a>;
<a name="l00065"></a>00065 
<a name="l00066"></a>00066 <span class="comment">/* PTP USB Bulk-Pipe container */</span>
<a name="l00067"></a>00067 <span class="comment">/* USB bulk max packet length for high speed endpoints */</span>
<a name="l00068"></a>00068 <span class="comment">/* The max packet is set to 512 bytes. The spec says</span>
<a name="l00069"></a>00069 <span class="comment"> * &quot;end of data transfers are signaled by short packets or NULL</span>
<a name="l00070"></a>00070 <span class="comment"> * packets&quot;. It never says anything about 512, but current</span>
<a name="l00071"></a>00071 <span class="comment"> * implementations seem to have chosen this value, which also</span>
<a name="l00072"></a>00072 <span class="comment"> * happens to be the size of an USB 2.0 HS endpoint, even though</span>
<a name="l00073"></a>00073 <span class="comment"> * this is not necessary.</span>
<a name="l00074"></a>00074 <span class="comment"> *</span>
<a name="l00075"></a>00075 <span class="comment"> * Previously we had this as 4096 for MTP devices. We have found</span>
<a name="l00076"></a>00076 <span class="comment"> * and fixed the bugs that made this necessary and it can be 512 again.</span>
<a name="l00077"></a>00077 <span class="comment"> */</span>
<a name="l00078"></a>00078 <span class="preprocessor">#define PTP_USB_BULK_HS_MAX_PACKET_LEN_WRITE    512</span>
<a name="l00079"></a>00079 <span class="preprocessor"></span><span class="preprocessor">#define PTP_USB_BULK_HS_MAX_PACKET_LEN_READ   512</span>
<a name="l00080"></a>00080 <span class="preprocessor"></span><span class="preprocessor">#define PTP_USB_BULK_HDR_LEN            (2*sizeof(uint32_t)+2*sizeof(uint16_t))</span>
<a name="l00081"></a>00081 <span class="preprocessor"></span><span class="preprocessor">#define PTP_USB_BULK_PAYLOAD_LEN_WRITE  (PTP_USB_BULK_HS_MAX_PACKET_LEN_WRITE-PTP_USB_BULK_HDR_LEN)</span>
<a name="l00082"></a>00082 <span class="preprocessor"></span><span class="preprocessor">#define PTP_USB_BULK_PAYLOAD_LEN_READ   (PTP_USB_BULK_HS_MAX_PACKET_LEN_READ-PTP_USB_BULK_HDR_LEN)</span>
<a name="l00083"></a>00083 <span class="preprocessor"></span><span class="preprocessor">#define PTP_USB_BULK_REQ_LEN    (PTP_USB_BULK_HDR_LEN+5*sizeof(uint32_t))</span>
<a name="l00084"></a>00084 <span class="preprocessor"></span>
<a name="l00085"></a><a class="code" href="struct__PTPUSBBulkContainer.html">00085</a> <span class="keyword">struct </span><a class="code" href="struct__PTPUSBBulkContainer.html">_PTPUSBBulkContainer</a> {
<a name="l00086"></a>00086         uint32_t length;
<a name="l00087"></a>00087         uint16_t type;
<a name="l00088"></a>00088         uint16_t code;
<a name="l00089"></a>00089         uint32_t trans_id;
<a name="l00090"></a>00090         <span class="keyword">union </span>{
<a name="l00091"></a>00091                 <span class="keyword">struct </span>{
<a name="l00092"></a>00092                         uint32_t param1;
<a name="l00093"></a>00093                         uint32_t param2;
<a name="l00094"></a>00094                         uint32_t param3;
<a name="l00095"></a>00095                         uint32_t param4;
<a name="l00096"></a>00096                         uint32_t param5;
<a name="l00097"></a>00097                 } params;
<a name="l00098"></a>00098        <span class="comment">/* this must be set to the maximum of PTP_USB_BULK_PAYLOAD_LEN_WRITE </span>
<a name="l00099"></a>00099 <span class="comment">        * and PTP_USB_BULK_PAYLOAD_LEN_READ */</span>
<a name="l00100"></a>00100                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> data[PTP_USB_BULK_PAYLOAD_LEN_READ];
<a name="l00101"></a>00101         } payload;
<a name="l00102"></a>00102 };
<a name="l00103"></a>00103 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPUSBBulkContainer.html">_PTPUSBBulkContainer</a> <a class="code" href="struct__PTPUSBBulkContainer.html">PTPUSBBulkContainer</a>;
<a name="l00104"></a>00104 
<a name="l00105"></a>00105 <span class="comment">/* PTP USB Asynchronous Event Interrupt Data Format */</span>
<a name="l00106"></a><a class="code" href="struct__PTPUSBEventContainer.html">00106</a> <span class="keyword">struct </span><a class="code" href="struct__PTPUSBEventContainer.html">_PTPUSBEventContainer</a> {
<a name="l00107"></a>00107         uint32_t length;
<a name="l00108"></a>00108         uint16_t type;
<a name="l00109"></a>00109         uint16_t code;
<a name="l00110"></a>00110         uint32_t trans_id;
<a name="l00111"></a>00111         uint32_t param1;
<a name="l00112"></a>00112         uint32_t param2;
<a name="l00113"></a>00113         uint32_t param3;
<a name="l00114"></a>00114 };
<a name="l00115"></a>00115 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPUSBEventContainer.html">_PTPUSBEventContainer</a> <a class="code" href="struct__PTPUSBEventContainer.html">PTPUSBEventContainer</a>;
<a name="l00116"></a>00116 
<a name="l00117"></a><a class="code" href="struct__PTPCanon__directtransfer__entry.html">00117</a> <span class="keyword">struct </span><a class="code" href="struct__PTPCanon__directtransfer__entry.html">_PTPCanon_directtransfer_entry</a> {
<a name="l00118"></a>00118         uint32_t        oid;
<a name="l00119"></a>00119         <span class="keywordtype">char</span>            *str;
<a name="l00120"></a>00120 };
<a name="l00121"></a>00121 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPCanon__directtransfer__entry.html">_PTPCanon_directtransfer_entry</a> <a class="code" href="struct__PTPCanon__directtransfer__entry.html">PTPCanon_directtransfer_entry</a>;
<a name="l00122"></a>00122 
<a name="l00123"></a>00123 <span class="comment">/* USB container types */</span>
<a name="l00124"></a>00124 
<a name="l00125"></a>00125 <span class="preprocessor">#define PTP_USB_CONTAINER_UNDEFINED             0x0000</span>
<a name="l00126"></a>00126 <span class="preprocessor"></span><span class="preprocessor">#define PTP_USB_CONTAINER_COMMAND               0x0001</span>
<a name="l00127"></a>00127 <span class="preprocessor"></span><span class="preprocessor">#define PTP_USB_CONTAINER_DATA                  0x0002</span>
<a name="l00128"></a>00128 <span class="preprocessor"></span><span class="preprocessor">#define PTP_USB_CONTAINER_RESPONSE              0x0003</span>
<a name="l00129"></a>00129 <span class="preprocessor"></span><span class="preprocessor">#define PTP_USB_CONTAINER_EVENT                 0x0004</span>
<a name="l00130"></a>00130 <span class="preprocessor"></span>
<a name="l00131"></a>00131 <span class="comment">/* PTP/IP definitions */</span>
<a name="l00132"></a>00132 <span class="preprocessor">#define PTPIP_INIT_COMMAND_REQUEST      1</span>
<a name="l00133"></a>00133 <span class="preprocessor"></span><span class="preprocessor">#define PTPIP_INIT_COMMAND_ACK          2</span>
<a name="l00134"></a>00134 <span class="preprocessor"></span><span class="preprocessor">#define PTPIP_INIT_EVENT_REQUEST        3</span>
<a name="l00135"></a>00135 <span class="preprocessor"></span><span class="preprocessor">#define PTPIP_INIT_EVENT_ACK            4</span>
<a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor">#define PTPIP_INIT_FAIL                 5</span>
<a name="l00137"></a>00137 <span class="preprocessor"></span><span class="preprocessor">#define PTPIP_CMD_REQUEST               6</span>
<a name="l00138"></a>00138 <span class="preprocessor"></span><span class="preprocessor">#define PTPIP_CMD_RESPONSE              7</span>
<a name="l00139"></a>00139 <span class="preprocessor"></span><span class="preprocessor">#define PTPIP_EVENT                     8</span>
<a name="l00140"></a>00140 <span class="preprocessor"></span><span class="preprocessor">#define PTPIP_START_DATA_PACKET         9</span>
<a name="l00141"></a>00141 <span class="preprocessor"></span><span class="preprocessor">#define PTPIP_DATA_PACKET               10</span>
<a name="l00142"></a>00142 <span class="preprocessor"></span><span class="preprocessor">#define PTPIP_CANCEL_TRANSACTION        11</span>
<a name="l00143"></a>00143 <span class="preprocessor"></span><span class="preprocessor">#define PTPIP_END_DATA_PACKET           12</span>
<a name="l00144"></a>00144 <span class="preprocessor"></span><span class="preprocessor">#define PTPIP_PING                      13</span>
<a name="l00145"></a>00145 <span class="preprocessor"></span><span class="preprocessor">#define PTPIP_PONG                      14</span>
<a name="l00146"></a>00146 <span class="preprocessor"></span>
<a name="l00147"></a><a class="code" href="struct__PTPIPHeader.html">00147</a> <span class="keyword">struct </span><a class="code" href="struct__PTPIPHeader.html">_PTPIPHeader</a> {
<a name="l00148"></a>00148         uint32_t        length;
<a name="l00149"></a>00149         uint32_t        type;
<a name="l00150"></a>00150 };
<a name="l00151"></a>00151 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPIPHeader.html">_PTPIPHeader</a> <a class="code" href="struct__PTPIPHeader.html">PTPIPHeader</a>;
<a name="l00152"></a>00152 
<a name="l00153"></a>00153 <span class="comment">/* Vendor IDs */</span>
<a name="l00154"></a>00154 <span class="preprocessor">#define PTP_VENDOR_EASTMAN_KODAK        0x00000001</span>
<a name="l00155"></a>00155 <span class="preprocessor"></span><span class="preprocessor">#define PTP_VENDOR_SEIKO_EPSON          0x00000002</span>
<a name="l00156"></a>00156 <span class="preprocessor"></span><span class="preprocessor">#define PTP_VENDOR_AGILENT              0x00000003</span>
<a name="l00157"></a>00157 <span class="preprocessor"></span><span class="preprocessor">#define PTP_VENDOR_POLAROID             0x00000004</span>
<a name="l00158"></a>00158 <span class="preprocessor"></span><span class="preprocessor">#define PTP_VENDOR_AGFA_GEVAERT         0x00000005</span>
<a name="l00159"></a>00159 <span class="preprocessor"></span><span class="preprocessor">#define PTP_VENDOR_MICROSOFT            0x00000006</span>
<a name="l00160"></a>00160 <span class="preprocessor"></span><span class="preprocessor">#define PTP_VENDOR_EQUINOX              0x00000007</span>
<a name="l00161"></a>00161 <span class="preprocessor"></span><span class="preprocessor">#define PTP_VENDOR_VIEWQUEST            0x00000008</span>
<a name="l00162"></a>00162 <span class="preprocessor"></span><span class="preprocessor">#define PTP_VENDOR_STMICROELECTRONICS   0x00000009</span>
<a name="l00163"></a>00163 <span class="preprocessor"></span><span class="preprocessor">#define PTP_VENDOR_NIKON                0x0000000A</span>
<a name="l00164"></a>00164 <span class="preprocessor"></span><span class="preprocessor">#define PTP_VENDOR_CANON                0x0000000B</span>
<a name="l00165"></a>00165 <span class="preprocessor"></span><span class="preprocessor">#define PTP_VENDOR_FOTONATION           0x0000000C</span>
<a name="l00166"></a>00166 <span class="preprocessor"></span><span class="preprocessor">#define PTP_VENDOR_PENTAX               0x0000000D</span>
<a name="l00167"></a>00167 <span class="preprocessor"></span><span class="preprocessor">#define PTP_VENDOR_FUJI                 0x0000000E</span>
<a name="l00168"></a>00168 <span class="preprocessor"></span><span class="comment">/* Vendor extension ID used for MTP (occasionaly, usualy 6 is used) */</span>
<a name="l00169"></a>00169 <span class="preprocessor">#define PTP_VENDOR_MTP                  0xffffffff  </span>
<a name="l00170"></a>00170 <span class="preprocessor"></span>
<a name="l00171"></a>00171 <span class="comment">/* Operation Codes */</span>
<a name="l00172"></a>00172 
<a name="l00173"></a>00173 <span class="comment">/* PTP v1.0 operation codes */</span>
<a name="l00174"></a>00174 <span class="preprocessor">#define PTP_OC_Undefined                0x1000</span>
<a name="l00175"></a>00175 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetDeviceInfo            0x1001</span>
<a name="l00176"></a>00176 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_OpenSession              0x1002</span>
<a name="l00177"></a>00177 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CloseSession             0x1003</span>
<a name="l00178"></a>00178 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetStorageIDs            0x1004</span>
<a name="l00179"></a>00179 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetStorageInfo           0x1005</span>
<a name="l00180"></a>00180 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetNumObjects            0x1006</span>
<a name="l00181"></a>00181 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetObjectHandles         0x1007</span>
<a name="l00182"></a>00182 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetObjectInfo            0x1008</span>
<a name="l00183"></a>00183 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetObject                0x1009</span>
<a name="l00184"></a>00184 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetThumb                 0x100A</span>
<a name="l00185"></a>00185 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_DeleteObject             0x100B</span>
<a name="l00186"></a>00186 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_SendObjectInfo           0x100C</span>
<a name="l00187"></a>00187 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_SendObject               0x100D</span>
<a name="l00188"></a>00188 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_InitiateCapture          0x100E</span>
<a name="l00189"></a>00189 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_FormatStore              0x100F</span>
<a name="l00190"></a>00190 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_ResetDevice              0x1010</span>
<a name="l00191"></a>00191 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_SelfTest                 0x1011</span>
<a name="l00192"></a>00192 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_SetObjectProtection      0x1012</span>
<a name="l00193"></a>00193 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_PowerDown                0x1013</span>
<a name="l00194"></a>00194 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetDevicePropDesc        0x1014</span>
<a name="l00195"></a>00195 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetDevicePropValue       0x1015</span>
<a name="l00196"></a>00196 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_SetDevicePropValue       0x1016</span>
<a name="l00197"></a>00197 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_ResetDevicePropValue     0x1017</span>
<a name="l00198"></a>00198 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_TerminateOpenCapture     0x1018</span>
<a name="l00199"></a>00199 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MoveObject               0x1019</span>
<a name="l00200"></a>00200 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CopyObject               0x101A</span>
<a name="l00201"></a>00201 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetPartialObject         0x101B</span>
<a name="l00202"></a>00202 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_InitiateOpenCapture      0x101C</span>
<a name="l00203"></a>00203 <span class="preprocessor"></span><span class="comment">/* PTP v1.1 operation codes */</span>
<a name="l00204"></a>00204 <span class="preprocessor">#define PTP_OC_StartEnumHandles         0x101D</span>
<a name="l00205"></a>00205 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_EnumHandles              0x101E</span>
<a name="l00206"></a>00206 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_StopEnumHandles          0x101F</span>
<a name="l00207"></a>00207 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetVendorExtensionMaps   0x1020</span>
<a name="l00208"></a>00208 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetVendorDeviceInfo      0x1021</span>
<a name="l00209"></a>00209 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetResizedImageObject    0x1022</span>
<a name="l00210"></a>00210 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetFilesystemManifest    0x1023</span>
<a name="l00211"></a>00211 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetStreamInfo            0x1024</span>
<a name="l00212"></a>00212 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_GetStream                0x1025</span>
<a name="l00213"></a>00213 <span class="preprocessor"></span>
<a name="l00214"></a>00214 <span class="comment">/* Eastman Kodak extension Operation Codes */</span>
<a name="l00215"></a>00215 <span class="preprocessor">#define PTP_OC_EK_GetSerial             0x9003</span>
<a name="l00216"></a>00216 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_EK_SetSerial             0x9004</span>
<a name="l00217"></a>00217 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_EK_SendFileObjectInfo    0x9005</span>
<a name="l00218"></a>00218 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_EK_SendFileObject        0x9006</span>
<a name="l00219"></a>00219 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_EK_SetText               0x9008</span>
<a name="l00220"></a>00220 <span class="preprocessor"></span>
<a name="l00221"></a>00221 <span class="comment">/* Canon extension Operation Codes */</span>
<a name="l00222"></a>00222 <span class="preprocessor">#define PTP_OC_CANON_GetPartialObjectInfo       0x9001</span>
<a name="l00223"></a>00223 <span class="preprocessor"></span><span class="comment">/* 9002 - sends 2 uint32, nothing back  */</span>
<a name="l00224"></a>00224 <span class="preprocessor">#define PTP_OC_CANON_SetObjectArchive           0x9002</span>
<a name="l00225"></a>00225 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_KeepDeviceOn               0x9003</span>
<a name="l00226"></a>00226 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_LockDeviceUI               0x9004</span>
<a name="l00227"></a>00227 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_UnlockDeviceUI             0x9005</span>
<a name="l00228"></a>00228 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetObjectHandleByName      0x9006</span>
<a name="l00229"></a>00229 <span class="preprocessor"></span><span class="comment">/* no 9007 observed yet */</span>
<a name="l00230"></a>00230 <span class="preprocessor">#define PTP_OC_CANON_InitiateReleaseControl     0x9008</span>
<a name="l00231"></a>00231 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_TerminateReleaseControl    0x9009</span>
<a name="l00232"></a>00232 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_TerminatePlaybackMode      0x900A</span>
<a name="l00233"></a>00233 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_ViewfinderOn               0x900B</span>
<a name="l00234"></a>00234 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_ViewfinderOff              0x900C</span>
<a name="l00235"></a>00235 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_DoAeAfAwb                  0x900D</span>
<a name="l00236"></a>00236 <span class="preprocessor"></span>
<a name="l00237"></a>00237 <span class="comment">/* 900e - send nothing, gets 5 uint16t in 32bit entities back in 20byte datablob */</span>
<a name="l00238"></a>00238 <span class="preprocessor">#define PTP_OC_CANON_GetCustomizeSpec           0x900E</span>
<a name="l00239"></a>00239 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetCustomizeItemInfo       0x900F</span>
<a name="l00240"></a>00240 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetCustomizeData           0x9010</span>
<a name="l00241"></a>00241 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_SetCustomizeData           0x9011</span>
<a name="l00242"></a>00242 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetCaptureStatus           0x9012</span>
<a name="l00243"></a>00243 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_CheckEvent                 0x9013</span>
<a name="l00244"></a>00244 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_FocusLock                  0x9014</span>
<a name="l00245"></a>00245 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_FocusUnlock                0x9015</span>
<a name="l00246"></a>00246 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetLocalReleaseParam       0x9016</span>
<a name="l00247"></a>00247 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_SetLocalReleaseParam       0x9017</span>
<a name="l00248"></a>00248 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_AskAboutPcEvf              0x9018</span>
<a name="l00249"></a>00249 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_SendPartialObject          0x9019</span>
<a name="l00250"></a>00250 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_InitiateCaptureInMemory    0x901A</span>
<a name="l00251"></a>00251 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetPartialObjectEx         0x901B</span>
<a name="l00252"></a>00252 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_SetObjectTime              0x901C</span>
<a name="l00253"></a>00253 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetViewfinderImage         0x901D</span>
<a name="l00254"></a>00254 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetObjectAttributes        0x901E</span>
<a name="l00255"></a>00255 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_ChangeUSBProtocol          0x901F</span>
<a name="l00256"></a>00256 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetChanges                 0x9020</span>
<a name="l00257"></a>00257 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetObjectInfoEx            0x9021</span>
<a name="l00258"></a>00258 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_InitiateDirectTransfer     0x9022</span>
<a name="l00259"></a>00259 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_TerminateDirectTransfer    0x9023</span>
<a name="l00260"></a>00260 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_SendObjectInfoByPath       0x9024</span>
<a name="l00261"></a>00261 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_SendObjectByPath           0x9025</span>
<a name="l00262"></a>00262 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_InitiateDirectTansferEx    0x9026</span>
<a name="l00263"></a>00263 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetAncillaryObjectHandles  0x9027</span>
<a name="l00264"></a>00264 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetTreeInfo                0x9028</span>
<a name="l00265"></a>00265 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetTreeSize                0x9029</span>
<a name="l00266"></a>00266 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_NotifyProgress             0x902A</span>
<a name="l00267"></a>00267 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_NotifyCancelAccepted       0x902B</span>
<a name="l00268"></a>00268 <span class="preprocessor"></span><span class="comment">/* 902c: no parms, read 3 uint32 in data, no response parms */</span>
<a name="l00269"></a>00269 <span class="preprocessor">#define PTP_OC_CANON_902C                       0x902C</span>
<a name="l00270"></a>00270 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetDirectory               0x902D</span>
<a name="l00271"></a>00271 <span class="preprocessor"></span>
<a name="l00272"></a>00272 <span class="preprocessor">#define PTP_OC_CANON_SetPairingInfo             0x9030</span>
<a name="l00273"></a>00273 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetPairingInfo             0x9031</span>
<a name="l00274"></a>00274 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_DeletePairingInfo          0x9032</span>
<a name="l00275"></a>00275 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetMACAddress              0x9033</span>
<a name="l00276"></a>00276 <span class="preprocessor"></span><span class="comment">/* 9034: 1 param, no parms returned */</span>
<a name="l00277"></a>00277 <span class="preprocessor">#define PTP_OC_CANON_SetDisplayMonitor          0x9034</span>
<a name="l00278"></a>00278 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_PairingComplete            0x9035</span>
<a name="l00279"></a>00279 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_GetWirelessMAXChannel      0x9036</span>
<a name="l00280"></a>00280 <span class="preprocessor"></span>
<a name="l00281"></a>00281 <span class="comment">/* 9101: no args, 8 byte data (01 00 00 00 00 00 00 00), no resp data. */</span>
<a name="l00282"></a>00282 <span class="preprocessor">#define PTP_OC_CANON_EOS_GetStorageIDs          0x9101</span>
<a name="l00283"></a>00283 <span class="preprocessor"></span><span class="comment">/* 9102: 1 arg (0)</span>
<a name="l00284"></a>00284 <span class="comment"> * 0x28 bytes of data:</span>
<a name="l00285"></a>00285 <span class="comment">    00000000: 34 00 00 00 02 00 02 91 0a 00 00 00 04 00 03 00</span>
<a name="l00286"></a>00286 <span class="comment">    00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span>
<a name="l00287"></a>00287 <span class="comment">    00000020: 00 00 ff ff ff ff 03 43 00 46 00 00 00 03 41 00</span>
<a name="l00288"></a>00288 <span class="comment">    00000030: 3a 00 00 00</span>
<a name="l00289"></a>00289 <span class="comment"> * no resp args</span>
<a name="l00290"></a>00290 <span class="comment"> */</span>
<a name="l00291"></a>00291 <span class="preprocessor">#define PTP_OC_CANON_EOS_GetStorageInfo         0x9102</span>
<a name="l00292"></a>00292 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_GetObjectInfo          0x9103</span>
<a name="l00293"></a>00293 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_GetObject              0x9104</span>
<a name="l00294"></a>00294 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_DeleteObject           0x9105</span>
<a name="l00295"></a>00295 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_FormatStore            0x9106</span>
<a name="l00296"></a>00296 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_GetPartialObject       0x9107</span>
<a name="l00297"></a>00297 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_GetDeviceInfoEx        0x9108</span>
<a name="l00298"></a>00298 <span class="preprocessor"></span>
<a name="l00299"></a>00299 <span class="comment">/* sample1:</span>
<a name="l00300"></a>00300 <span class="comment"> * 3 cmdargs: 1,0xffffffff,00 00 10 00;</span>
<a name="l00301"></a>00301 <span class="comment"> * data:</span>
<a name="l00302"></a>00302 <span class="comment">    00000000: 48 00 00 00 02 00 09 91 12 00 00 00 01 00 00 00</span>
<a name="l00303"></a>00303 <span class="comment">    00000010: 38 00 00 00 00 00 00 30 01 00 00 00 01 30 00 00</span>
<a name="l00304"></a>00304 <span class="comment">    00000020: 01 00 00 00 10 00 00 00 00 00 00 00 00 00 00 20</span>
<a name="l00305"></a>00305 <span class="comment">    00000030: 00 00 00 30 44 43 49 4d 00 00 00 00 00 00 00 00   DCIM</span>
<a name="l00306"></a>00306 <span class="comment">    00000040: 00 00 00 00 cc c3 01 46</span>
<a name="l00307"></a>00307 <span class="comment"> * 2 respargs: 0x0, 0x3c</span>
<a name="l00308"></a>00308 <span class="comment"> * </span>
<a name="l00309"></a>00309 <span class="comment"> * sample2:</span>
<a name="l00310"></a>00310 <span class="comment"> *</span>
<a name="l00311"></a>00311 <span class="comment">    00000000: 18 00 00 00 01 00 09 91 15 00 00 00 01 00 00 00</span>
<a name="l00312"></a>00312 <span class="comment">    00000010: 00 00 00 30 00 00 10 00</span>
<a name="l00313"></a>00313 <span class="comment"></span>
<a name="l00314"></a>00314 <span class="comment">    00000000: 48 00 00 00 02 00 09 91 15 00 00 00 01 00 00 00</span>
<a name="l00315"></a>00315 <span class="comment">    00000010: 38 00 00 00 00 00 9c 33 01 00 00 00 01 30 00 00</span>
<a name="l00316"></a>00316 <span class="comment">    00000020: 01 00 00 00 10 00 00 00 00 00 00 00 00 00 00 30</span>
<a name="l00317"></a>00317 <span class="comment">    00000030: 00 00 9c 33 32 33 31 43 41 4e 4f 4e 00 00 00 00    231CANON</span>
<a name="l00318"></a>00318 <span class="comment">    00000040: 00 00 00 00 cc c3 01 46</span>
<a name="l00319"></a>00319 <span class="comment"></span>
<a name="l00320"></a>00320 <span class="comment"> */</span>
<a name="l00321"></a>00321 <span class="preprocessor">#define PTP_OC_CANON_EOS_GetObjectInfoEx        0x9109</span>
<a name="l00322"></a>00322 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_GetThumbEx             0x910A</span>
<a name="l00323"></a>00323 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_SendPartialObject      0x910B</span>
<a name="l00324"></a>00324 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_SetObjectAttributes    0x910C</span>
<a name="l00325"></a>00325 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_GetObjectTime          0x910D</span>
<a name="l00326"></a>00326 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_SetObjectTime          0x910E</span>
<a name="l00327"></a>00327 <span class="preprocessor"></span>
<a name="l00328"></a>00328 <span class="comment">/* 910f: no args, no data, 1 response arg (0). */</span>
<a name="l00329"></a>00329 <span class="preprocessor">#define PTP_OC_CANON_EOS_RemoteRelease          0x910F</span>
<a name="l00330"></a>00330 <span class="preprocessor"></span><span class="comment">/* Marcus: looks more like &quot;Set DeviceProperty&quot; in the trace. </span>
<a name="l00331"></a>00331 <span class="comment"> *</span>
<a name="l00332"></a>00332 <span class="comment"> * no cmd args</span>
<a name="l00333"></a>00333 <span class="comment"> * data phase (0xc, 0xd11c, 0x1)</span>
<a name="l00334"></a>00334 <span class="comment"> * no resp args </span>
<a name="l00335"></a>00335 <span class="comment"> */</span>
<a name="l00336"></a>00336 <span class="preprocessor">#define PTP_OC_CANON_EOS_SetDevicePropValueEx   0x9110</span>
<a name="l00337"></a>00337 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_GetRemoteMode          0x9113</span>
<a name="l00338"></a>00338 <span class="preprocessor"></span><span class="comment">/* 9114: 1 arg (0x1), no data, no resp data. */</span>
<a name="l00339"></a>00339 <span class="preprocessor">#define PTP_OC_CANON_EOS_SetRemoteMode          0x9114</span>
<a name="l00340"></a>00340 <span class="preprocessor"></span><span class="comment">/* 9115: 1 arg (0x1), no data, no resp data. */</span>
<a name="l00341"></a>00341 <span class="preprocessor">#define PTP_OC_CANON_EOS_SetEventMode           0x9115</span>
<a name="l00342"></a>00342 <span class="preprocessor"></span><span class="comment">/* 9116: no args, data phase, no resp data. */</span>
<a name="l00343"></a>00343 <span class="preprocessor">#define PTP_OC_CANON_EOS_GetEvent               0x9116</span>
<a name="l00344"></a>00344 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_TransferComplete       0x9117</span>
<a name="l00345"></a>00345 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_CancelTransfer         0x9118</span>
<a name="l00346"></a>00346 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_ResetTransfer          0x9119</span>
<a name="l00347"></a>00347 <span class="preprocessor"></span>
<a name="l00348"></a>00348 <span class="comment">/* 911a: 3 args (0xfffffff7, 0x00001000, 0x00000001), no data, no resp data. */</span>
<a name="l00349"></a>00349 <span class="comment">/* 911a: 3 args (0x001dfc60, 0x00001000, 0x00000001), no data, no resp data. */</span>
<a name="l00350"></a>00350 <span class="preprocessor">#define PTP_OC_CANON_EOS_PCHDDCapacity          0x911A</span>
<a name="l00351"></a>00351 <span class="preprocessor"></span>
<a name="l00352"></a>00352 <span class="comment">/* 911b: no cmd args, no data, no resp args */</span>
<a name="l00353"></a>00353 <span class="preprocessor">#define PTP_OC_CANON_EOS_SetUILock              0x911B</span>
<a name="l00354"></a>00354 <span class="preprocessor"></span><span class="comment">/* 911c: no cmd args, no data, no resp args */</span>
<a name="l00355"></a>00355 <span class="preprocessor">#define PTP_OC_CANON_EOS_ResetUILock            0x911C</span>
<a name="l00356"></a>00356 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_KeepDeviceOn           0x911D</span>
<a name="l00357"></a>00357 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_SetNullPacketMode      0x911E</span>
<a name="l00358"></a>00358 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_UpdateFirmware         0x911F</span>
<a name="l00359"></a>00359 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_TransferCompleteDT     0x9120</span>
<a name="l00360"></a>00360 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_CancelTransferDT       0x9121</span>
<a name="l00361"></a>00361 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_SetWftProfile          0x9122</span>
<a name="l00362"></a>00362 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_GetWftProfile          0x9122</span>
<a name="l00363"></a>00363 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_SetProfileToWft        0x9124</span>
<a name="l00364"></a>00364 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_BulbStart              0x9125</span>
<a name="l00365"></a>00365 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_BulbEnd                0x9126</span>
<a name="l00366"></a>00366 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_RequestDevicePropValue 0x9127</span>
<a name="l00367"></a>00367 <span class="preprocessor"></span>
<a name="l00368"></a>00368 <span class="comment">/* 0x9128 args (0x1/0x2, 0x0), no data, no resp args */</span>
<a name="l00369"></a>00369 <span class="preprocessor">#define PTP_OC_CANON_EOS_RemoteReleaseOn        0x9128</span>
<a name="l00370"></a>00370 <span class="preprocessor"></span><span class="comment">/* 0x9129 args (0x1/0x2), no data, no resp args */</span>
<a name="l00371"></a>00371 <span class="preprocessor">#define PTP_OC_CANON_EOS_RemoteReleaseOff       0x9129</span>
<a name="l00372"></a>00372 <span class="preprocessor"></span>
<a name="l00373"></a>00373 <span class="preprocessor">#define PTP_OC_CANON_EOS_InitiateViewfinder     0x9151</span>
<a name="l00374"></a>00374 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_TerminateViewfinder    0x9152</span>
<a name="l00375"></a>00375 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_GetViewFinderData      0x9153</span>
<a name="l00376"></a>00376 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_DoAf                   0x9154</span>
<a name="l00377"></a>00377 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_DriveLens              0x9155</span>
<a name="l00378"></a>00378 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_DepthOfFieldPreview    0x9156</span>
<a name="l00379"></a>00379 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_ClickWB                0x9157</span>
<a name="l00380"></a>00380 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_Zoom                   0x9158</span>
<a name="l00381"></a>00381 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_ZoomPosition           0x9159</span>
<a name="l00382"></a>00382 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_SetLiveAfFrame         0x915a</span>
<a name="l00383"></a>00383 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_AfCancel               0x9160</span>
<a name="l00384"></a>00384 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_FAPIMessageTX          0x91FE</span>
<a name="l00385"></a>00385 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_CANON_EOS_FAPIMessageRX          0x91FF</span>
<a name="l00386"></a>00386 <span class="preprocessor"></span>
<a name="l00387"></a>00387 <span class="comment">/* Nikon extension Operation Codes */</span>
<a name="l00388"></a>00388 <span class="preprocessor">#define PTP_OC_NIKON_GetProfileAllData  0x9006</span>
<a name="l00389"></a>00389 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_SendProfileData    0x9007</span>
<a name="l00390"></a>00390 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_DeleteProfile      0x9008</span>
<a name="l00391"></a>00391 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_SetProfileData     0x9009</span>
<a name="l00392"></a>00392 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_AdvancedTransfer   0x9010</span>
<a name="l00393"></a>00393 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_GetFileInfoInBlock 0x9011</span>
<a name="l00394"></a>00394 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_Capture            0x90C0  </span><span class="comment">/* 1 param,   no data */</span>
<a name="l00395"></a>00395 <span class="preprocessor">#define PTP_OC_NIKON_AfDrive            0x90C1  </span><span class="comment">/* no params, no data */</span>
<a name="l00396"></a>00396 <span class="preprocessor">#define PTP_OC_NIKON_SetControlMode     0x90C2  </span><span class="comment">/* 1 param,   no data */</span>
<a name="l00397"></a>00397 <span class="preprocessor">#define PTP_OC_NIKON_DelImageSDRAM      0x90C3  </span><span class="comment">/* no params, no data */</span>
<a name="l00398"></a>00398 <span class="preprocessor">#define PTP_OC_NIKON_GetLargeThumb      0x90C4</span>
<a name="l00399"></a>00399 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_CurveDownload      0x90C5  </span><span class="comment">/* 1 param,   data in */</span>
<a name="l00400"></a>00400 <span class="preprocessor">#define PTP_OC_NIKON_CurveUpload        0x90C6  </span><span class="comment">/* 1 param,   data out */</span>
<a name="l00401"></a>00401 <span class="preprocessor">#define PTP_OC_NIKON_CheckEvent         0x90C7  </span><span class="comment">/* no params, data in */</span>
<a name="l00402"></a>00402 <span class="preprocessor">#define PTP_OC_NIKON_DeviceReady        0x90C8  </span><span class="comment">/* no params, no data */</span>
<a name="l00403"></a>00403 <span class="preprocessor">#define PTP_OC_NIKON_SetPreWBData       0x90C9  </span><span class="comment">/* 3 params,  data out */</span>
<a name="l00404"></a>00404 <span class="preprocessor">#define PTP_OC_NIKON_GetVendorPropCodes 0x90CA  </span><span class="comment">/* 0 params, data in */</span>
<a name="l00405"></a>00405 <span class="preprocessor">#define PTP_OC_NIKON_AfCaptureSDRAM     0x90CB  </span><span class="comment">/* no params, no data */</span>
<a name="l00406"></a>00406 <span class="preprocessor">#define PTP_OC_NIKON_GetPictCtrlData    0x90CC</span>
<a name="l00407"></a>00407 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_SetPictCtrlData    0x90CD</span>
<a name="l00408"></a>00408 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_DelCstPicCtrl      0x90CE</span>
<a name="l00409"></a>00409 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_GetPicCtrlCapability       0x90CF</span>
<a name="l00410"></a>00410 <span class="preprocessor"></span>
<a name="l00411"></a>00411 <span class="comment">/* Nikon Liveview stuff */</span>
<a name="l00412"></a>00412 <span class="preprocessor">#define PTP_OC_NIKON_GetPreviewImg      0x9200</span>
<a name="l00413"></a>00413 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_StartLiveView      0x9201</span>
<a name="l00414"></a>00414 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_EndLiveView        0x9202</span>
<a name="l00415"></a>00415 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_GetLiveViewImg     0x9203</span>
<a name="l00416"></a>00416 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_MfDrive            0x9204</span>
<a name="l00417"></a>00417 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_ChangeAfArea       0x9205</span>
<a name="l00418"></a>00418 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_NIKON_AfDriveCancel      0x9206</span>
<a name="l00419"></a>00419 <span class="preprocessor"></span>
<a name="l00420"></a>00420 <span class="preprocessor">#define PTP_OC_NIKON_GetDevicePTPIPInfo 0x90E0</span>
<a name="l00421"></a>00421 <span class="preprocessor"></span>
<a name="l00422"></a>00422 <span class="comment">/* Microsoft / MTP extension codes */</span>
<a name="l00423"></a>00423 
<a name="l00424"></a>00424 <span class="preprocessor">#define PTP_OC_MTP_GetObjectPropsSupported      0x9801</span>
<a name="l00425"></a>00425 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_GetObjectPropDesc            0x9802</span>
<a name="l00426"></a>00426 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_GetObjectPropValue           0x9803</span>
<a name="l00427"></a>00427 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_SetObjectPropValue           0x9804</span>
<a name="l00428"></a>00428 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_GetObjPropList               0x9805</span>
<a name="l00429"></a>00429 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_SetObjPropList               0x9806</span>
<a name="l00430"></a>00430 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_GetInterdependendPropdesc    0x9807</span>
<a name="l00431"></a>00431 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_SendObjectPropList           0x9808</span>
<a name="l00432"></a>00432 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_GetObjectReferences          0x9810</span>
<a name="l00433"></a>00433 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_SetObjectReferences          0x9811</span>
<a name="l00434"></a>00434 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_UpdateDeviceFirmware         0x9812</span>
<a name="l00435"></a>00435 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_Skip                         0x9820</span>
<a name="l00436"></a>00436 <span class="preprocessor"></span>
<a name="l00437"></a>00437 <span class="comment">/*</span>
<a name="l00438"></a>00438 <span class="comment"> * Windows Media Digital Rights Management for Portable Devices </span>
<a name="l00439"></a>00439 <span class="comment"> * Extension Codes (microsoft.com/WMDRMPD: 10.1)</span>
<a name="l00440"></a>00440 <span class="comment"> */</span>
<a name="l00441"></a>00441 <span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_GetSecureTimeChallenge       0x9101</span>
<a name="l00442"></a>00442 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_GetSecureTimeResponse        0x9102</span>
<a name="l00443"></a>00443 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_SetLicenseResponse   0x9103</span>
<a name="l00444"></a>00444 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_GetSyncList          0x9104</span>
<a name="l00445"></a>00445 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_SendMeterChallengeQuery      0x9105</span>
<a name="l00446"></a>00446 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_GetMeterChallenge    0x9106</span>
<a name="l00447"></a>00447 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_SetMeterResponse             0x9107</span>
<a name="l00448"></a>00448 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_CleanDataStore               0x9108</span>
<a name="l00449"></a>00449 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_GetLicenseState              0x9109</span>
<a name="l00450"></a>00450 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_SendWMDRMPDCommand   0x910A</span>
<a name="l00451"></a>00451 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_SendWMDRMPDRequest   0x910B</span>
<a name="l00452"></a>00452 <span class="preprocessor"></span>
<a name="l00453"></a>00453 <span class="comment">/* </span>
<a name="l00454"></a>00454 <span class="comment"> * Windows Media Digital Rights Management for Portable Devices </span>
<a name="l00455"></a>00455 <span class="comment"> * Extension Codes (microsoft.com/WMDRMPD: 10.1)</span>
<a name="l00456"></a>00456 <span class="comment"> * Below are operations that have no public documented identifier </span>
<a name="l00457"></a>00457 <span class="comment"> * associated with them &quot;Vendor-defined Command Code&quot;</span>
<a name="l00458"></a>00458 <span class="comment"> */</span>
<a name="l00459"></a>00459 <span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_SendWMDRMPDAppRequest        0x9212</span>
<a name="l00460"></a>00460 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_GetWMDRMPDAppResponse        0x9213</span>
<a name="l00461"></a>00461 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_EnableTrustedFilesOperations 0x9214</span>
<a name="l00462"></a>00462 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_DisableTrustedFilesOperations 0x9215</span>
<a name="l00463"></a>00463 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMPD_EndTrustedAppSession         0x9216</span>
<a name="l00464"></a>00464 <span class="preprocessor"></span><span class="comment">/* ^^^ guess ^^^ */</span>
<a name="l00465"></a>00465 
<a name="l00466"></a>00466 <span class="comment">/*</span>
<a name="l00467"></a>00467 <span class="comment"> * Microsoft Advanced Audio/Video Transfer </span>
<a name="l00468"></a>00468 <span class="comment"> * Extensions (microsoft.com/AAVT: 1.0)</span>
<a name="l00469"></a>00469 <span class="comment"> */</span>
<a name="l00470"></a>00470 <span class="preprocessor">#define PTP_OC_MTP_AAVT_OpenMediaSession                0x9170</span>
<a name="l00471"></a>00471 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_AAVT_CloseMediaSession               0x9171</span>
<a name="l00472"></a>00472 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_AAVT_GetNextDataBlock                0x9172</span>
<a name="l00473"></a>00473 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_AAVT_SetCurrentTimePosition          0x9173</span>
<a name="l00474"></a>00474 <span class="preprocessor"></span>
<a name="l00475"></a>00475 <span class="comment">/*</span>
<a name="l00476"></a>00476 <span class="comment"> * Windows Media Digital Rights Management for Network Devices </span>
<a name="l00477"></a>00477 <span class="comment"> * Extensions (microsoft.com/WMDRMND: 1.0) MTP/IP?</span>
<a name="l00478"></a>00478 <span class="comment"> */</span>
<a name="l00479"></a>00479 <span class="preprocessor">#define PTP_OC_MTP_WMDRMND_SendRegistrationRequest      0x9180</span>
<a name="l00480"></a>00480 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMND_GetRegistrationResponse      0x9181</span>
<a name="l00481"></a>00481 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMND_GetProximityChallenge        0x9182</span>
<a name="l00482"></a>00482 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMND_SendProximityResponse        0x9183</span>
<a name="l00483"></a>00483 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMND_SendWMDRMNDLicenseRequest    0x9184</span>
<a name="l00484"></a>00484 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMDRMND_GetWMDRMNDLicenseResponse    0x9185</span>
<a name="l00485"></a>00485 <span class="preprocessor"></span>
<a name="l00486"></a>00486 <span class="comment">/* </span>
<a name="l00487"></a>00487 <span class="comment"> * Windows Media Player Portiable Devices </span>
<a name="l00488"></a>00488 <span class="comment"> * Extension Codes (microsoft.com/WMPPD: 11.1)</span>
<a name="l00489"></a>00489 <span class="comment"> */</span>
<a name="l00490"></a>00490 <span class="preprocessor">#define PTP_OC_MTP_WMPPD_ReportAddedDeletedItems        0x9201</span>
<a name="l00491"></a>00491 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMPPD_ReportAcquiredItems            0x9202</span>
<a name="l00492"></a>00492 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_MTP_WMPPD_PlaylistObjectPref             0x9203</span>
<a name="l00493"></a>00493 <span class="preprocessor"></span>
<a name="l00494"></a>00494 <span class="comment">/*</span>
<a name="l00495"></a>00495 <span class="comment"> * Undocumented Zune Operation Codes </span>
<a name="l00496"></a>00496 <span class="comment"> * maybe related to WMPPD extension set?</span>
<a name="l00497"></a>00497 <span class="comment"> */</span>
<a name="l00498"></a>00498 <span class="preprocessor">#define PTP_OC_MTP_ZUNE_GETUNDEFINED001                 0x9204</span>
<a name="l00499"></a>00499 <span class="preprocessor"></span>
<a name="l00500"></a>00500 <span class="comment">/* WiFi Provisioning MTP Extension Codes (microsoft.com/WPDWCN: 1.0) */</span>
<a name="l00501"></a>00501 <span class="preprocessor">#define PTP_OC_MTP_WPDWCN_ProcessWFCObject              0x9122</span>
<a name="l00502"></a>00502 <span class="preprocessor"></span>
<a name="l00503"></a>00503 <span class="comment">/* Proprietary vendor extension operations mask */</span>
<a name="l00504"></a>00504 <span class="preprocessor">#define PTP_OC_EXTENSION_MASK           0xF000</span>
<a name="l00505"></a>00505 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OC_EXTENSION                0x9000</span>
<a name="l00506"></a>00506 <span class="preprocessor"></span>
<a name="l00507"></a>00507 <span class="comment">/* Response Codes */</span>
<a name="l00508"></a>00508 
<a name="l00509"></a>00509 <span class="comment">/* PTP v1.0 response codes */</span>
<a name="l00510"></a>00510 <span class="preprocessor">#define PTP_RC_Undefined                0x2000</span>
<a name="l00511"></a>00511 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_OK                       0x2001</span>
<a name="l00512"></a>00512 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_GeneralError             0x2002</span>
<a name="l00513"></a>00513 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_SessionNotOpen           0x2003</span>
<a name="l00514"></a>00514 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_InvalidTransactionID     0x2004</span>
<a name="l00515"></a>00515 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_OperationNotSupported    0x2005</span>
<a name="l00516"></a>00516 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_ParameterNotSupported    0x2006</span>
<a name="l00517"></a>00517 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_IncompleteTransfer       0x2007</span>
<a name="l00518"></a>00518 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_InvalidStorageId         0x2008</span>
<a name="l00519"></a>00519 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_InvalidObjectHandle      0x2009</span>
<a name="l00520"></a>00520 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_DevicePropNotSupported   0x200A</span>
<a name="l00521"></a>00521 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_InvalidObjectFormatCode  0x200B</span>
<a name="l00522"></a>00522 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_StoreFull                0x200C</span>
<a name="l00523"></a>00523 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_ObjectWriteProtected     0x200D</span>
<a name="l00524"></a>00524 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_StoreReadOnly            0x200E</span>
<a name="l00525"></a>00525 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_AccessDenied             0x200F</span>
<a name="l00526"></a>00526 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NoThumbnailPresent       0x2010</span>
<a name="l00527"></a>00527 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_SelfTestFailed           0x2011</span>
<a name="l00528"></a>00528 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_PartialDeletion          0x2012</span>
<a name="l00529"></a>00529 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_StoreNotAvailable        0x2013</span>
<a name="l00530"></a>00530 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_SpecificationByFormatUnsupported         0x2014</span>
<a name="l00531"></a>00531 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NoValidObjectInfo        0x2015</span>
<a name="l00532"></a>00532 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_InvalidCodeFormat        0x2016</span>
<a name="l00533"></a>00533 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_UnknownVendorCode        0x2017</span>
<a name="l00534"></a>00534 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_CaptureAlreadyTerminated 0x2018</span>
<a name="l00535"></a>00535 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_DeviceBusy               0x2019</span>
<a name="l00536"></a>00536 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_InvalidParentObject      0x201A</span>
<a name="l00537"></a>00537 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_InvalidDevicePropFormat  0x201B</span>
<a name="l00538"></a>00538 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_InvalidDevicePropValue   0x201C</span>
<a name="l00539"></a>00539 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_InvalidParameter         0x201D</span>
<a name="l00540"></a>00540 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_SessionAlreadyOpened     0x201E</span>
<a name="l00541"></a>00541 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_TransactionCanceled      0x201F</span>
<a name="l00542"></a>00542 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_SpecificationOfDestinationUnsupported            0x2020</span>
<a name="l00543"></a>00543 <span class="preprocessor"></span><span class="comment">/* PTP v1.1 response codes */</span>
<a name="l00544"></a>00544 <span class="preprocessor">#define PTP_RC_InvalidEnumHandle        0x2021</span>
<a name="l00545"></a>00545 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NoStreamEnabled          0x2022</span>
<a name="l00546"></a>00546 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_InvalidDataSet           0x2023</span>
<a name="l00547"></a>00547 <span class="preprocessor"></span>
<a name="l00548"></a>00548 <span class="comment">/* Eastman Kodak extension Response Codes */</span>
<a name="l00549"></a>00549 <span class="preprocessor">#define PTP_RC_EK_FilenameRequired      0xA001</span>
<a name="l00550"></a>00550 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_EK_FilenameConflicts     0xA002</span>
<a name="l00551"></a>00551 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_EK_FilenameInvalid       0xA003</span>
<a name="l00552"></a>00552 <span class="preprocessor"></span>
<a name="l00553"></a>00553 <span class="comment">/* Nikon specific response codes */</span>
<a name="l00554"></a>00554 <span class="preprocessor">#define PTP_RC_NIKON_HardwareError              0xA001</span>
<a name="l00555"></a>00555 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NIKON_OutOfFocus                 0xA002</span>
<a name="l00556"></a>00556 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NIKON_ChangeCameraModeFailed     0xA003</span>
<a name="l00557"></a>00557 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NIKON_InvalidStatus              0xA004</span>
<a name="l00558"></a>00558 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NIKON_SetPropertyNotSupported    0xA005</span>
<a name="l00559"></a>00559 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NIKON_WbResetError               0xA006</span>
<a name="l00560"></a>00560 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NIKON_DustReferenceError         0xA007</span>
<a name="l00561"></a>00561 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NIKON_ShutterSpeedBulb           0xA008</span>
<a name="l00562"></a>00562 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NIKON_MirrorUpSequence           0xA009</span>
<a name="l00563"></a>00563 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NIKON_CameraModeNotAdjustFNumber 0xA00A</span>
<a name="l00564"></a>00564 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NIKON_NotLiveView                0xA00B</span>
<a name="l00565"></a>00565 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NIKON_MfDriveStepEnd             0xA00C</span>
<a name="l00566"></a>00566 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NIKON_MfDriveStepInsufficiency   0xA00E</span>
<a name="l00567"></a>00567 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_NIKON_AdvancedTransferCancel     0xA022</span>
<a name="l00568"></a>00568 <span class="preprocessor"></span>
<a name="l00569"></a>00569 <span class="comment">/* Canon specific response codes */</span>
<a name="l00570"></a>00570 <span class="preprocessor">#define PTP_RC_CANON_A009               0xA009</span>
<a name="l00571"></a>00571 <span class="preprocessor"></span>
<a name="l00572"></a>00572 <span class="comment">/* Microsoft/MTP specific codes */</span>
<a name="l00573"></a>00573 <span class="preprocessor">#define PTP_RC_MTP_Undefined                    0xA800</span>
<a name="l00574"></a>00574 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_MTP_Invalid_ObjectPropCode       0xA801</span>
<a name="l00575"></a>00575 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_MTP_Invalid_ObjectProp_Format    0xA802</span>
<a name="l00576"></a>00576 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_MTP_Invalid_ObjectProp_Value     0xA803</span>
<a name="l00577"></a>00577 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_MTP_Invalid_ObjectReference      0xA804</span>
<a name="l00578"></a>00578 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_MTP_Invalid_Dataset              0xA806</span>
<a name="l00579"></a>00579 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_MTP_Specification_By_Group_Unsupported           0xA807</span>
<a name="l00580"></a>00580 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_MTP_Specification_By_Depth_Unsupported           0xA808</span>
<a name="l00581"></a>00581 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_MTP_Object_Too_Large             0xA809</span>
<a name="l00582"></a>00582 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_MTP_ObjectProp_Not_Supported     0xA80A</span>
<a name="l00583"></a>00583 <span class="preprocessor"></span>
<a name="l00584"></a>00584 <span class="comment">/* Microsoft Advanced Audio/Video Transfer response codes </span>
<a name="l00585"></a>00585 <span class="comment">(microsoft.com/AAVT 1.0) */</span>
<a name="l00586"></a>00586 <span class="preprocessor">#define PTP_RC_MTP_Invalid_Media_Session_ID     0xA170  </span>
<a name="l00587"></a>00587 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_MTP_Media_Session_Limit_Reached  0xA171</span>
<a name="l00588"></a>00588 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_MTP_No_More_Data                 0xA172</span>
<a name="l00589"></a>00589 <span class="preprocessor"></span>
<a name="l00590"></a>00590 <span class="comment">/* WiFi Provisioning MTP Extension Error Codes (microsoft.com/WPDWCN: 1.0) */</span>
<a name="l00591"></a>00591 <span class="preprocessor">#define PTP_RC_MTP_Invalid_WFC_Syntax           0xA121</span>
<a name="l00592"></a>00592 <span class="preprocessor"></span><span class="preprocessor">#define PTP_RC_MTP_WFC_Version_Not_Supported    0xA122</span>
<a name="l00593"></a>00593 <span class="preprocessor"></span>
<a name="l00594"></a>00594 <span class="comment">/* libptp2 extended ERROR codes */</span>
<a name="l00595"></a>00595 <span class="preprocessor">#define PTP_ERROR_IO                    0x02FF</span>
<a name="l00596"></a>00596 <span class="preprocessor"></span><span class="preprocessor">#define PTP_ERROR_DATA_EXPECTED         0x02FE</span>
<a name="l00597"></a>00597 <span class="preprocessor"></span><span class="preprocessor">#define PTP_ERROR_RESP_EXPECTED         0x02FD</span>
<a name="l00598"></a>00598 <span class="preprocessor"></span><span class="preprocessor">#define PTP_ERROR_BADPARAM              0x02FC</span>
<a name="l00599"></a>00599 <span class="preprocessor"></span><span class="preprocessor">#define PTP_ERROR_CANCEL                0x02FB</span>
<a name="l00600"></a>00600 <span class="preprocessor"></span><span class="preprocessor">#define PTP_ERROR_TIMEOUT               0x02FA</span>
<a name="l00601"></a>00601 <span class="preprocessor"></span>
<a name="l00602"></a>00602 <span class="comment">/* PTP Event Codes */</span>
<a name="l00603"></a>00603 
<a name="l00604"></a>00604 <span class="preprocessor">#define PTP_EC_Undefined                0x4000</span>
<a name="l00605"></a>00605 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CancelTransaction        0x4001</span>
<a name="l00606"></a>00606 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_ObjectAdded              0x4002</span>
<a name="l00607"></a>00607 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_ObjectRemoved            0x4003</span>
<a name="l00608"></a>00608 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_StoreAdded               0x4004</span>
<a name="l00609"></a>00609 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_StoreRemoved             0x4005</span>
<a name="l00610"></a>00610 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_DevicePropChanged        0x4006</span>
<a name="l00611"></a>00611 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_ObjectInfoChanged        0x4007</span>
<a name="l00612"></a>00612 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_DeviceInfoChanged        0x4008</span>
<a name="l00613"></a>00613 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_RequestObjectTransfer    0x4009</span>
<a name="l00614"></a>00614 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_StoreFull                0x400A</span>
<a name="l00615"></a>00615 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_DeviceReset              0x400B</span>
<a name="l00616"></a>00616 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_StorageInfoChanged       0x400C</span>
<a name="l00617"></a>00617 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CaptureComplete          0x400D</span>
<a name="l00618"></a>00618 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_UnreportedStatus         0x400E</span>
<a name="l00619"></a>00619 <span class="preprocessor"></span>
<a name="l00620"></a>00620 <span class="comment">/* Canon extension Event Codes */</span>
<a name="l00621"></a>00621 <span class="preprocessor">#define PTP_EC_CANON_ExtendedErrorcode          0xC005  </span><span class="comment">/* ? */</span>
<a name="l00622"></a>00622 <span class="preprocessor">#define PTP_EC_CANON_ObjectInfoChanged          0xC008</span>
<a name="l00623"></a>00623 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_RequestObjectTransfer      0xC009</span>
<a name="l00624"></a>00624 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_CameraModeChanged          0xC00C</span>
<a name="l00625"></a>00625 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_ShutterButtonPressed       0xC00E</span>
<a name="l00626"></a>00626 <span class="preprocessor"></span>
<a name="l00627"></a>00627 <span class="preprocessor">#define PTP_EC_CANON_StartDirectTransfer        0xC011</span>
<a name="l00628"></a>00628 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_StopDirectTransfer         0xC013</span>
<a name="l00629"></a>00629 <span class="preprocessor"></span>
<a name="l00630"></a>00630 <span class="comment">/* Canon EOS events */</span>
<a name="l00631"></a>00631 <span class="preprocessor">#define PTP_EC_CANON_EOS_RequestGetEvent        0xc101</span>
<a name="l00632"></a>00632 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_ObjectAddedEx          0xc181</span>
<a name="l00633"></a>00633 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_ObjectRemoved          0xc182</span>
<a name="l00634"></a>00634 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_RequestGetObjectInfoEx 0xc183</span>
<a name="l00635"></a>00635 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_StorageStatusChanged   0xc184</span>
<a name="l00636"></a>00636 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_StorageInfoChanged     0xc185</span>
<a name="l00637"></a>00637 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_RequestObjectTransfer  0xc186</span>
<a name="l00638"></a>00638 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_ObjectInfoChangedEx    0xc187</span>
<a name="l00639"></a>00639 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_ObjectContentChanged   0xc188</span>
<a name="l00640"></a>00640 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_PropValueChanged       0xc189</span>
<a name="l00641"></a>00641 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_AvailListChanged       0xc18a</span>
<a name="l00642"></a>00642 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_CameraStatusChanged    0xc18b</span>
<a name="l00643"></a>00643 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_WillSoonShutdown       0xc18d</span>
<a name="l00644"></a>00644 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_ShutdownTimerUpdated   0xc18e</span>
<a name="l00645"></a>00645 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_RequestCancelTransfer  0xc18f</span>
<a name="l00646"></a>00646 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_RequestObjectTransferDT        0xc190</span>
<a name="l00647"></a>00647 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_RequestCancelTransferDT        0xc191</span>
<a name="l00648"></a>00648 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_StoreAdded             0xc192</span>
<a name="l00649"></a>00649 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_StoreRemoved           0xc193</span>
<a name="l00650"></a>00650 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_BulbExposureTime       0xc194</span>
<a name="l00651"></a>00651 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_RecordingTime          0xc195</span>
<a name="l00652"></a>00652 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_RequestObjectTransferTS                0xC1a2</span>
<a name="l00653"></a>00653 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_CANON_EOS_AfResult               0xc1a3</span>
<a name="l00654"></a>00654 <span class="preprocessor"></span>
<a name="l00655"></a>00655 <span class="comment">/* Nikon extension Event Codes */</span>
<a name="l00656"></a>00656 
<a name="l00657"></a>00657 <span class="comment">/* Nikon extension Event Codes */</span>
<a name="l00658"></a>00658 <span class="preprocessor">#define PTP_EC_Nikon_ObjectAddedInSDRAM         0xC101</span>
<a name="l00659"></a>00659 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_Nikon_CaptureCompleteRecInSdram  0xC102</span>
<a name="l00660"></a>00660 <span class="preprocessor"></span><span class="comment">/* Gets 1 parameter, objectid pointing to DPOF object */</span>
<a name="l00661"></a>00661 <span class="preprocessor">#define PTP_EC_Nikon_AdvancedTransfer           0xC103</span>
<a name="l00662"></a>00662 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_Nikon_PreviewImageAdded          0xC104</span>
<a name="l00663"></a>00663 <span class="preprocessor"></span>
<a name="l00664"></a>00664 <span class="comment">/* MTP Event codes */</span>
<a name="l00665"></a>00665 <span class="preprocessor">#define PTP_EC_MTP_ObjectPropChanged            0xC801</span>
<a name="l00666"></a>00666 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_MTP_ObjectPropDescChanged        0xC802</span>
<a name="l00667"></a>00667 <span class="preprocessor"></span><span class="preprocessor">#define PTP_EC_MTP_ObjectReferencesChanged      0xC803</span>
<a name="l00668"></a>00668 <span class="preprocessor"></span>
<a name="l00669"></a>00669 <span class="comment">/* constants for GetObjectHandles */</span>
<a name="l00670"></a>00670 <span class="preprocessor">#define PTP_GOH_ALL_STORAGE 0xffffffff</span>
<a name="l00671"></a>00671 <span class="preprocessor"></span><span class="preprocessor">#define PTP_GOH_ALL_FORMATS 0x00000000</span>
<a name="l00672"></a>00672 <span class="preprocessor"></span><span class="preprocessor">#define PTP_GOH_ALL_ASSOCS  0x00000000</span>
<a name="l00673"></a>00673 <span class="preprocessor"></span><span class="preprocessor">#define PTP_GOH_ROOT_PARENT 0xffffffff</span>
<a name="l00674"></a>00674 <span class="preprocessor"></span>
<a name="l00675"></a>00675 <span class="comment">/* PTP device info structure (returned by GetDevInfo) */</span>
<a name="l00676"></a>00676 
<a name="l00677"></a><a class="code" href="struct__PTPDeviceInfo.html">00677</a> <span class="keyword">struct </span><a class="code" href="struct__PTPDeviceInfo.html">_PTPDeviceInfo</a> {
<a name="l00678"></a>00678         uint16_t StandardVersion;
<a name="l00679"></a>00679         uint32_t VendorExtensionID;
<a name="l00680"></a>00680         uint16_t VendorExtensionVersion;
<a name="l00681"></a>00681         <span class="keywordtype">char</span>    *VendorExtensionDesc;
<a name="l00682"></a>00682         uint16_t FunctionalMode;
<a name="l00683"></a>00683         uint32_t OperationsSupported_len;
<a name="l00684"></a>00684         uint16_t *OperationsSupported;
<a name="l00685"></a>00685         uint32_t EventsSupported_len;
<a name="l00686"></a>00686         uint16_t *EventsSupported;
<a name="l00687"></a>00687         uint32_t DevicePropertiesSupported_len;
<a name="l00688"></a>00688         uint16_t *DevicePropertiesSupported;
<a name="l00689"></a>00689         uint32_t CaptureFormats_len;
<a name="l00690"></a>00690         uint16_t *CaptureFormats;
<a name="l00691"></a>00691         uint32_t ImageFormats_len;
<a name="l00692"></a>00692         uint16_t *ImageFormats;
<a name="l00693"></a>00693         <span class="keywordtype">char</span>    *Manufacturer;
<a name="l00694"></a>00694         <span class="keywordtype">char</span>    *Model;
<a name="l00695"></a>00695         <span class="keywordtype">char</span>    *DeviceVersion;
<a name="l00696"></a>00696         <span class="keywordtype">char</span>    *SerialNumber;
<a name="l00697"></a>00697 };
<a name="l00698"></a>00698 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPDeviceInfo.html">_PTPDeviceInfo</a> <a class="code" href="struct__PTPDeviceInfo.html">PTPDeviceInfo</a>;
<a name="l00699"></a>00699 
<a name="l00700"></a>00700 <span class="comment">/* PTP storageIDs structute (returned by GetStorageIDs) */</span>
<a name="l00701"></a>00701 
<a name="l00702"></a><a class="code" href="struct__PTPStorageIDs.html">00702</a> <span class="keyword">struct </span><a class="code" href="struct__PTPStorageIDs.html">_PTPStorageIDs</a> {
<a name="l00703"></a>00703         uint32_t n;
<a name="l00704"></a>00704         uint32_t *Storage;
<a name="l00705"></a>00705 };
<a name="l00706"></a>00706 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPStorageIDs.html">_PTPStorageIDs</a> <a class="code" href="struct__PTPStorageIDs.html">PTPStorageIDs</a>;
<a name="l00707"></a>00707 
<a name="l00708"></a>00708 <span class="comment">/* PTP StorageInfo structure (returned by GetStorageInfo) */</span>
<a name="l00709"></a><a class="code" href="struct__PTPStorageInfo.html">00709</a> <span class="keyword">struct </span><a class="code" href="struct__PTPStorageInfo.html">_PTPStorageInfo</a> {
<a name="l00710"></a>00710         uint16_t StorageType;
<a name="l00711"></a>00711         uint16_t FilesystemType;
<a name="l00712"></a>00712         uint16_t AccessCapability;
<a name="l00713"></a>00713         uint64_t MaxCapability;
<a name="l00714"></a>00714         uint64_t FreeSpaceInBytes;
<a name="l00715"></a>00715         uint32_t FreeSpaceInImages;
<a name="l00716"></a>00716         <span class="keywordtype">char</span>    *StorageDescription;
<a name="l00717"></a>00717         <span class="keywordtype">char</span>    *VolumeLabel;
<a name="l00718"></a>00718 };
<a name="l00719"></a>00719 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPStorageInfo.html">_PTPStorageInfo</a> <a class="code" href="struct__PTPStorageInfo.html">PTPStorageInfo</a>;
<a name="l00720"></a>00720 
<a name="l00721"></a>00721 <span class="comment">/* PTP objecthandles structure (returned by GetObjectHandles) */</span>
<a name="l00722"></a>00722 
<a name="l00723"></a><a class="code" href="struct__PTPObjectHandles.html">00723</a> <span class="keyword">struct </span><a class="code" href="struct__PTPObjectHandles.html">_PTPObjectHandles</a> {
<a name="l00724"></a>00724         uint32_t n;
<a name="l00725"></a>00725         uint32_t *Handler;
<a name="l00726"></a>00726 };
<a name="l00727"></a>00727 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPObjectHandles.html">_PTPObjectHandles</a> <a class="code" href="struct__PTPObjectHandles.html">PTPObjectHandles</a>;
<a name="l00728"></a>00728 
<a name="l00729"></a>00729 <span class="preprocessor">#define PTP_HANDLER_SPECIAL     0xffffffff</span>
<a name="l00730"></a>00730 <span class="preprocessor"></span><span class="preprocessor">#define PTP_HANDLER_ROOT        0x00000000</span>
<a name="l00731"></a>00731 <span class="preprocessor"></span>
<a name="l00732"></a>00732 
<a name="l00733"></a>00733 <span class="comment">/* PTP objectinfo structure (returned by GetObjectInfo) */</span>
<a name="l00734"></a>00734 
<a name="l00735"></a><a class="code" href="struct__PTPObjectInfo.html">00735</a> <span class="keyword">struct </span><a class="code" href="struct__PTPObjectInfo.html">_PTPObjectInfo</a> {
<a name="l00736"></a>00736         uint32_t StorageID;
<a name="l00737"></a>00737         uint16_t ObjectFormat;
<a name="l00738"></a>00738         uint16_t ProtectionStatus;
<a name="l00739"></a>00739         uint32_t ObjectCompressedSize;
<a name="l00740"></a>00740         uint16_t ThumbFormat;
<a name="l00741"></a>00741         uint32_t ThumbCompressedSize;
<a name="l00742"></a>00742         uint32_t ThumbPixWidth;
<a name="l00743"></a>00743         uint32_t ThumbPixHeight;
<a name="l00744"></a>00744         uint32_t ImagePixWidth;
<a name="l00745"></a>00745         uint32_t ImagePixHeight;
<a name="l00746"></a>00746         uint32_t ImageBitDepth;
<a name="l00747"></a>00747         uint32_t ParentObject;
<a name="l00748"></a>00748         uint16_t AssociationType;
<a name="l00749"></a>00749         uint32_t AssociationDesc;
<a name="l00750"></a>00750         uint32_t SequenceNumber;
<a name="l00751"></a>00751         <span class="keywordtype">char</span>    *Filename;
<a name="l00752"></a>00752         time_t  CaptureDate;
<a name="l00753"></a>00753         time_t  ModificationDate;
<a name="l00754"></a>00754         <span class="keywordtype">char</span>    *Keywords;
<a name="l00755"></a>00755 };
<a name="l00756"></a>00756 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPObjectInfo.html">_PTPObjectInfo</a> <a class="code" href="struct__PTPObjectInfo.html">PTPObjectInfo</a>;
<a name="l00757"></a>00757 
<a name="l00758"></a>00758 <span class="comment">/* max ptp string length INCLUDING terminating null character */</span>
<a name="l00759"></a>00759 
<a name="l00760"></a>00760 <span class="preprocessor">#define PTP_MAXSTRLEN                           255</span>
<a name="l00761"></a>00761 <span class="preprocessor"></span>
<a name="l00762"></a>00762 <span class="comment">/* PTP Object Format Codes */</span>
<a name="l00763"></a>00763 
<a name="l00764"></a>00764 <span class="comment">/* ancillary formats */</span>
<a name="l00765"></a>00765 <span class="preprocessor">#define PTP_OFC_Undefined                       0x3000</span>
<a name="l00766"></a>00766 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_Defined                         0x3800</span>
<a name="l00767"></a>00767 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_Association                     0x3001</span>
<a name="l00768"></a>00768 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_Script                          0x3002</span>
<a name="l00769"></a>00769 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_Executable                      0x3003</span>
<a name="l00770"></a>00770 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_Text                            0x3004</span>
<a name="l00771"></a>00771 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_HTML                            0x3005</span>
<a name="l00772"></a>00772 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_DPOF                            0x3006</span>
<a name="l00773"></a>00773 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_AIFF                            0x3007</span>
<a name="l00774"></a>00774 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_WAV                             0x3008</span>
<a name="l00775"></a>00775 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MP3                             0x3009</span>
<a name="l00776"></a>00776 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_AVI                             0x300A</span>
<a name="l00777"></a>00777 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MPEG                            0x300B</span>
<a name="l00778"></a>00778 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_ASF                             0x300C</span>
<a name="l00779"></a>00779 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_QT                              0x300D </span><span class="comment">/* guessing */</span>
<a name="l00780"></a>00780 <span class="comment">/* image formats */</span>
<a name="l00781"></a>00781 <span class="preprocessor">#define PTP_OFC_EXIF_JPEG                       0x3801</span>
<a name="l00782"></a>00782 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_TIFF_EP                         0x3802</span>
<a name="l00783"></a>00783 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_FlashPix                        0x3803</span>
<a name="l00784"></a>00784 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_BMP                             0x3804</span>
<a name="l00785"></a>00785 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_CIFF                            0x3805</span>
<a name="l00786"></a>00786 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_Undefined_0x3806                0x3806</span>
<a name="l00787"></a>00787 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_GIF                             0x3807</span>
<a name="l00788"></a>00788 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_JFIF                            0x3808</span>
<a name="l00789"></a>00789 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_PCD                             0x3809</span>
<a name="l00790"></a>00790 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_PICT                            0x380A</span>
<a name="l00791"></a>00791 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_PNG                             0x380B</span>
<a name="l00792"></a>00792 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_Undefined_0x380C                0x380C</span>
<a name="l00793"></a>00793 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_TIFF                            0x380D</span>
<a name="l00794"></a>00794 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_TIFF_IT                         0x380E</span>
<a name="l00795"></a>00795 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_JP2                             0x380F</span>
<a name="l00796"></a>00796 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_JPX                             0x3810</span>
<a name="l00797"></a>00797 <span class="preprocessor"></span><span class="comment">/* ptp v1.1 has only DNG new */</span>
<a name="l00798"></a>00798 <span class="preprocessor">#define PTP_OFC_DNG                             0x3811</span>
<a name="l00799"></a>00799 <span class="preprocessor"></span><span class="comment">/* Eastman Kodak extension ancillary format */</span>
<a name="l00800"></a>00800 <span class="preprocessor">#define PTP_OFC_EK_M3U                          0xb002</span>
<a name="l00801"></a>00801 <span class="preprocessor"></span><span class="comment">/* Canon extension */</span>
<a name="l00802"></a>00802 <span class="preprocessor">#define PTP_OFC_CANON_CRW                       0xb101</span>
<a name="l00803"></a>00803 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_CANON_CRW3                      0xb103</span>
<a name="l00804"></a>00804 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_CANON_MOV                       0xb104</span>
<a name="l00805"></a>00805 <span class="preprocessor"></span><span class="comment">/* MTP extensions */</span>
<a name="l00806"></a>00806 <span class="preprocessor">#define PTP_OFC_MTP_MediaCard                   0xb211</span>
<a name="l00807"></a>00807 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_MediaCardGroup              0xb212</span>
<a name="l00808"></a>00808 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_Encounter                   0xb213</span>
<a name="l00809"></a>00809 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_EncounterBox                0xb214</span>
<a name="l00810"></a>00810 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_M4A                         0xb215</span>
<a name="l00811"></a>00811 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_ZUNEUNDEFINED               0xb217 </span><span class="comment">/* Unknown file type */</span>
<a name="l00812"></a>00812 <span class="preprocessor">#define PTP_OFC_MTP_Firmware                    0xb802</span>
<a name="l00813"></a>00813 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_WindowsImageFormat          0xb881</span>
<a name="l00814"></a>00814 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_UndefinedAudio              0xb900</span>
<a name="l00815"></a>00815 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_WMA                         0xb901</span>
<a name="l00816"></a>00816 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_OGG                         0xb902</span>
<a name="l00817"></a>00817 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AAC                         0xb903</span>
<a name="l00818"></a>00818 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AudibleCodec                0xb904</span>
<a name="l00819"></a>00819 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_FLAC                        0xb906</span>
<a name="l00820"></a>00820 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_UndefinedVideo              0xb980</span>
<a name="l00821"></a>00821 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_WMV                         0xb981</span>
<a name="l00822"></a>00822 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_MP4                         0xb982</span>
<a name="l00823"></a>00823 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_MP2                         0xb983</span>
<a name="l00824"></a>00824 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_3GP                         0xb984</span>
<a name="l00825"></a>00825 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_UndefinedCollection         0xba00</span>
<a name="l00826"></a>00826 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AbstractMultimediaAlbum     0xba01</span>
<a name="l00827"></a>00827 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AbstractImageAlbum          0xba02</span>
<a name="l00828"></a>00828 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AbstractAudioAlbum          0xba03</span>
<a name="l00829"></a>00829 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AbstractVideoAlbum          0xba04</span>
<a name="l00830"></a>00830 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AbstractAudioVideoPlaylist  0xba05</span>
<a name="l00831"></a>00831 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AbstractContactGroup        0xba06</span>
<a name="l00832"></a>00832 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AbstractMessageFolder       0xba07</span>
<a name="l00833"></a>00833 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AbstractChapteredProduction 0xba08</span>
<a name="l00834"></a>00834 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AbstractAudioPlaylist       0xba09</span>
<a name="l00835"></a>00835 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AbstractVideoPlaylist       0xba0a</span>
<a name="l00836"></a>00836 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AbstractMediacast           0xba0b</span>
<a name="l00837"></a>00837 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_WPLPlaylist                 0xba10</span>
<a name="l00838"></a>00838 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_M3UPlaylist                 0xba11</span>
<a name="l00839"></a>00839 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_MPLPlaylist                 0xba12</span>
<a name="l00840"></a>00840 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_ASXPlaylist                 0xba13</span>
<a name="l00841"></a>00841 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_PLSPlaylist                 0xba14</span>
<a name="l00842"></a>00842 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_UndefinedDocument           0xba80</span>
<a name="l00843"></a>00843 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AbstractDocument            0xba81</span>
<a name="l00844"></a>00844 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_XMLDocument                 0xba82</span>
<a name="l00845"></a>00845 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_MSWordDocument              0xba83</span>
<a name="l00846"></a>00846 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_MHTCompiledHTMLDocument     0xba84</span>
<a name="l00847"></a>00847 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_MSExcelSpreadsheetXLS       0xba85</span>
<a name="l00848"></a>00848 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_MSPowerpointPresentationPPT 0xba86</span>
<a name="l00849"></a>00849 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_UndefinedMessage            0xbb00</span>
<a name="l00850"></a>00850 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AbstractMessage             0xbb01</span>
<a name="l00851"></a>00851 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_UndefinedContact            0xbb80</span>
<a name="l00852"></a>00852 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AbstractContact             0xbb81</span>
<a name="l00853"></a>00853 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_vCard2                      0xbb82</span>
<a name="l00854"></a>00854 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_vCard3                      0xbb83</span>
<a name="l00855"></a>00855 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_UndefinedCalendarItem       0xbe00</span>
<a name="l00856"></a>00856 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_AbstractCalendarItem        0xbe01</span>
<a name="l00857"></a>00857 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_vCalendar1                  0xbe02</span>
<a name="l00858"></a>00858 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_vCalendar2                  0xbe03</span>
<a name="l00859"></a>00859 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_UndefinedWindowsExecutable  0xbe80</span>
<a name="l00860"></a>00860 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_MediaCast                   0xbe81</span>
<a name="l00861"></a>00861 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OFC_MTP_Section                     0xbe82</span>
<a name="l00862"></a>00862 <span class="preprocessor"></span>
<a name="l00863"></a>00863 <span class="comment">/* PTP Association Types */</span>
<a name="l00864"></a>00864 <span class="preprocessor">#define PTP_AT_Undefined                        0x0000</span>
<a name="l00865"></a>00865 <span class="preprocessor"></span><span class="preprocessor">#define PTP_AT_GenericFolder                    0x0001</span>
<a name="l00866"></a>00866 <span class="preprocessor"></span><span class="preprocessor">#define PTP_AT_Album                            0x0002</span>
<a name="l00867"></a>00867 <span class="preprocessor"></span><span class="preprocessor">#define PTP_AT_TimeSequence                     0x0003</span>
<a name="l00868"></a>00868 <span class="preprocessor"></span><span class="preprocessor">#define PTP_AT_HorizontalPanoramic              0x0004</span>
<a name="l00869"></a>00869 <span class="preprocessor"></span><span class="preprocessor">#define PTP_AT_VerticalPanoramic                0x0005</span>
<a name="l00870"></a>00870 <span class="preprocessor"></span><span class="preprocessor">#define PTP_AT_2DPanoramic                      0x0006</span>
<a name="l00871"></a>00871 <span class="preprocessor"></span><span class="preprocessor">#define PTP_AT_AncillaryData                    0x0007</span>
<a name="l00872"></a>00872 <span class="preprocessor"></span>
<a name="l00873"></a>00873 <span class="comment">/* PTP Protection Status */</span>
<a name="l00874"></a>00874 
<a name="l00875"></a>00875 <span class="preprocessor">#define PTP_PS_NoProtection                     0x0000</span>
<a name="l00876"></a>00876 <span class="preprocessor"></span><span class="preprocessor">#define PTP_PS_ReadOnly                         0x0001</span>
<a name="l00877"></a>00877 <span class="preprocessor"></span><span class="preprocessor">#define PTP_PS_MTP_ReadOnlyData                 0x8002</span>
<a name="l00878"></a>00878 <span class="preprocessor"></span><span class="preprocessor">#define PTP_PS_MTP_NonTransferableData          0x8003</span>
<a name="l00879"></a>00879 <span class="preprocessor"></span>
<a name="l00880"></a>00880 <span class="comment">/* PTP Storage Types */</span>
<a name="l00881"></a>00881 
<a name="l00882"></a>00882 <span class="preprocessor">#define PTP_ST_Undefined                        0x0000</span>
<a name="l00883"></a>00883 <span class="preprocessor"></span><span class="preprocessor">#define PTP_ST_FixedROM                         0x0001</span>
<a name="l00884"></a>00884 <span class="preprocessor"></span><span class="preprocessor">#define PTP_ST_RemovableROM                     0x0002</span>
<a name="l00885"></a>00885 <span class="preprocessor"></span><span class="preprocessor">#define PTP_ST_FixedRAM                         0x0003</span>
<a name="l00886"></a>00886 <span class="preprocessor"></span><span class="preprocessor">#define PTP_ST_RemovableRAM                     0x0004</span>
<a name="l00887"></a>00887 <span class="preprocessor"></span>
<a name="l00888"></a>00888 <span class="comment">/* PTP FilesystemType Values */</span>
<a name="l00889"></a>00889 
<a name="l00890"></a>00890 <span class="preprocessor">#define PTP_FST_Undefined                       0x0000</span>
<a name="l00891"></a>00891 <span class="preprocessor"></span><span class="preprocessor">#define PTP_FST_GenericFlat                     0x0001</span>
<a name="l00892"></a>00892 <span class="preprocessor"></span><span class="preprocessor">#define PTP_FST_GenericHierarchical             0x0002</span>
<a name="l00893"></a>00893 <span class="preprocessor"></span><span class="preprocessor">#define PTP_FST_DCF                             0x0003</span>
<a name="l00894"></a>00894 <span class="preprocessor"></span>
<a name="l00895"></a>00895 <span class="comment">/* PTP StorageInfo AccessCapability Values */</span>
<a name="l00896"></a>00896 
<a name="l00897"></a>00897 <span class="preprocessor">#define PTP_AC_ReadWrite                        0x0000</span>
<a name="l00898"></a>00898 <span class="preprocessor"></span><span class="preprocessor">#define PTP_AC_ReadOnly                         0x0001</span>
<a name="l00899"></a>00899 <span class="preprocessor"></span><span class="preprocessor">#define PTP_AC_ReadOnly_with_Object_Deletion    0x0002</span>
<a name="l00900"></a>00900 <span class="preprocessor"></span>
<a name="l00901"></a>00901 <span class="comment">/* Property Describing Dataset, Range Form */</span>
<a name="l00902"></a>00902 
<a name="l00903"></a><a class="code" href="union__PTPPropertyValue.html">00903</a> <span class="keyword">union </span><a class="code" href="union__PTPPropertyValue.html">_PTPPropertyValue</a> {
<a name="l00904"></a>00904         <span class="keywordtype">char</span>            *str;   <span class="comment">/* common string, malloced */</span>
<a name="l00905"></a>00905         uint8_t         u8;
<a name="l00906"></a>00906         int8_t          i8;
<a name="l00907"></a>00907         uint16_t        u16;
<a name="l00908"></a>00908         int16_t         i16;
<a name="l00909"></a>00909         uint32_t        u32;
<a name="l00910"></a>00910         int32_t         i32;
<a name="l00911"></a>00911         uint64_t        u64;
<a name="l00912"></a>00912         int64_t         i64;
<a name="l00913"></a>00913         <span class="comment">/* XXXX: 128 bit signed and unsigned missing */</span>
<a name="l00914"></a><a class="code" href="struct__PTPPropertyValue_1_1array.html">00914</a>         <span class="keyword">struct </span><a class="code" href="struct__PTPPropertyValue_1_1array.html">array</a> {
<a name="l00915"></a>00915                 uint32_t        count;
<a name="l00916"></a>00916                 <span class="keyword">union </span><a class="code" href="union__PTPPropertyValue.html">_PTPPropertyValue</a> *v;     <span class="comment">/* malloced, count elements */</span>
<a name="l00917"></a>00917         } a;
<a name="l00918"></a>00918 };
<a name="l00919"></a>00919 
<a name="l00920"></a>00920 <span class="keyword">typedef</span> <span class="keyword">union </span><a class="code" href="union__PTPPropertyValue.html">_PTPPropertyValue</a> <a class="code" href="union__PTPPropertyValue.html">PTPPropertyValue</a>;
<a name="l00921"></a>00921 
<a name="l00922"></a>00922 <span class="comment">/* Metadata lists for MTP operations */</span>
<a name="l00923"></a><a class="code" href="struct__MTPProperties.html">00923</a> <span class="keyword">struct </span><a class="code" href="struct__MTPProperties.html">_MTPProperties</a> {
<a name="l00924"></a>00924         uint16_t                property;
<a name="l00925"></a>00925         uint16_t                datatype;
<a name="l00926"></a>00926         uint32_t                ObjectHandle;
<a name="l00927"></a>00927         <a class="code" href="union__PTPPropertyValue.html">PTPPropertyValue</a>        propval;
<a name="l00928"></a>00928 };
<a name="l00929"></a>00929 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__MTPProperties.html">_MTPProperties</a> <a class="code" href="struct__MTPProperties.html">MTPProperties</a>;
<a name="l00930"></a>00930 
<a name="l00931"></a><a class="code" href="struct__PTPPropDescRangeForm.html">00931</a> <span class="keyword">struct </span><a class="code" href="struct__PTPPropDescRangeForm.html">_PTPPropDescRangeForm</a> {
<a name="l00932"></a>00932         <a class="code" href="union__PTPPropertyValue.html">PTPPropertyValue</a>        MinimumValue;
<a name="l00933"></a>00933         <a class="code" href="union__PTPPropertyValue.html">PTPPropertyValue</a>        MaximumValue;
<a name="l00934"></a>00934         <a class="code" href="union__PTPPropertyValue.html">PTPPropertyValue</a>        StepSize;
<a name="l00935"></a>00935 };
<a name="l00936"></a>00936 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPPropDescRangeForm.html">_PTPPropDescRangeForm</a> <a class="code" href="struct__PTPPropDescRangeForm.html">PTPPropDescRangeForm</a>;
<a name="l00937"></a>00937 
<a name="l00938"></a>00938 <span class="comment">/* Property Describing Dataset, Enum Form */</span>
<a name="l00939"></a>00939 
<a name="l00940"></a><a class="code" href="struct__PTPPropDescEnumForm.html">00940</a> <span class="keyword">struct </span><a class="code" href="struct__PTPPropDescEnumForm.html">_PTPPropDescEnumForm</a> {
<a name="l00941"></a>00941         uint16_t                NumberOfValues;
<a name="l00942"></a>00942         <a class="code" href="union__PTPPropertyValue.html">PTPPropertyValue</a>        *SupportedValue;        <span class="comment">/* malloced */</span>
<a name="l00943"></a>00943 };
<a name="l00944"></a>00944 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPPropDescEnumForm.html">_PTPPropDescEnumForm</a> <a class="code" href="struct__PTPPropDescEnumForm.html">PTPPropDescEnumForm</a>;
<a name="l00945"></a>00945 
<a name="l00946"></a>00946 <span class="comment">/* Device Property Describing Dataset (DevicePropDesc) */</span>
<a name="l00947"></a>00947 
<a name="l00948"></a><a class="code" href="struct__PTPDevicePropDesc.html">00948</a> <span class="keyword">struct </span><a class="code" href="struct__PTPDevicePropDesc.html">_PTPDevicePropDesc</a> {
<a name="l00949"></a>00949         uint16_t                DevicePropertyCode;
<a name="l00950"></a>00950         uint16_t                DataType;
<a name="l00951"></a>00951         uint8_t                 GetSet;
<a name="l00952"></a>00952         <a class="code" href="union__PTPPropertyValue.html">PTPPropertyValue</a>        FactoryDefaultValue;
<a name="l00953"></a>00953         <a class="code" href="union__PTPPropertyValue.html">PTPPropertyValue</a>        CurrentValue;
<a name="l00954"></a>00954         uint8_t                 FormFlag;
<a name="l00955"></a>00955         <span class="keyword">union   </span>{
<a name="l00956"></a>00956                 <a class="code" href="struct__PTPPropDescEnumForm.html">PTPPropDescEnumForm</a>     Enum;
<a name="l00957"></a>00957                 <a class="code" href="struct__PTPPropDescRangeForm.html">PTPPropDescRangeForm</a>    Range;
<a name="l00958"></a>00958         } FORM;
<a name="l00959"></a>00959 };
<a name="l00960"></a>00960 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPDevicePropDesc.html">_PTPDevicePropDesc</a> <a class="code" href="struct__PTPDevicePropDesc.html">PTPDevicePropDesc</a>;
<a name="l00961"></a>00961 
<a name="l00962"></a>00962 <span class="comment">/* Object Property Describing Dataset (DevicePropDesc) */</span>
<a name="l00963"></a>00963 
<a name="l00964"></a><a class="code" href="struct__PTPObjectPropDesc.html">00964</a> <span class="keyword">struct </span><a class="code" href="struct__PTPObjectPropDesc.html">_PTPObjectPropDesc</a> {
<a name="l00965"></a>00965         uint16_t                ObjectPropertyCode;
<a name="l00966"></a>00966         uint16_t                DataType;
<a name="l00967"></a>00967         uint8_t                 GetSet;
<a name="l00968"></a>00968         <a class="code" href="union__PTPPropertyValue.html">PTPPropertyValue</a>        FactoryDefaultValue;
<a name="l00969"></a>00969         uint32_t                GroupCode;
<a name="l00970"></a>00970         uint8_t                 FormFlag;
<a name="l00971"></a>00971         <span class="keyword">union   </span>{
<a name="l00972"></a>00972                 <a class="code" href="struct__PTPPropDescEnumForm.html">PTPPropDescEnumForm</a>     Enum;
<a name="l00973"></a>00973                 <a class="code" href="struct__PTPPropDescRangeForm.html">PTPPropDescRangeForm</a>    Range;
<a name="l00974"></a>00974         } FORM;
<a name="l00975"></a>00975 };
<a name="l00976"></a>00976 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPObjectPropDesc.html">_PTPObjectPropDesc</a> <a class="code" href="struct__PTPObjectPropDesc.html">PTPObjectPropDesc</a>;
<a name="l00977"></a>00977 
<a name="l00978"></a>00978 <span class="comment">/* Canon filesystem&#39;s folder entry Dataset */</span>
<a name="l00979"></a>00979 
<a name="l00980"></a>00980 <span class="preprocessor">#define PTP_CANON_FilenameBufferLen     13</span>
<a name="l00981"></a>00981 <span class="preprocessor"></span><span class="preprocessor">#define PTP_CANON_FolderEntryLen        28</span>
<a name="l00982"></a>00982 <span class="preprocessor"></span>
<a name="l00983"></a><a class="code" href="struct__PTPCANONFolderEntry.html">00983</a> <span class="keyword">struct </span><a class="code" href="struct__PTPCANONFolderEntry.html">_PTPCANONFolderEntry</a> {
<a name="l00984"></a>00984         uint32_t        ObjectHandle;
<a name="l00985"></a>00985         uint16_t        ObjectFormatCode;
<a name="l00986"></a>00986         uint8_t         Flags;
<a name="l00987"></a>00987         uint32_t        ObjectSize;
<a name="l00988"></a>00988         time_t          Time;
<a name="l00989"></a>00989         <span class="keywordtype">char</span>            Filename[PTP_CANON_FilenameBufferLen];
<a name="l00990"></a>00990 };
<a name="l00991"></a>00991 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPCANONFolderEntry.html">_PTPCANONFolderEntry</a> <a class="code" href="struct__PTPCANONFolderEntry.html">PTPCANONFolderEntry</a>;
<a name="l00992"></a>00992 
<a name="l00993"></a>00993 <span class="comment">/* Nikon Tone Curve Data */</span>
<a name="l00994"></a>00994 
<a name="l00995"></a>00995 <span class="preprocessor">#define PTP_NIKON_MaxCurvePoints 19</span>
<a name="l00996"></a>00996 <span class="preprocessor"></span>
<a name="l00997"></a><a class="code" href="struct__PTPNIKONCoordinatePair.html">00997</a> <span class="keyword">struct </span><a class="code" href="struct__PTPNIKONCoordinatePair.html">_PTPNIKONCoordinatePair</a> {
<a name="l00998"></a>00998         uint8_t         X;
<a name="l00999"></a>00999         uint8_t         Y;
<a name="l01000"></a>01000 };
<a name="l01001"></a>01001 
<a name="l01002"></a>01002 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPNIKONCoordinatePair.html">_PTPNIKONCoordinatePair</a> <a class="code" href="struct__PTPNIKONCoordinatePair.html">PTPNIKONCoordinatePair</a>;
<a name="l01003"></a>01003 
<a name="l01004"></a><a class="code" href="struct__PTPNTCCoordinatePair.html">01004</a> <span class="keyword">struct </span><a class="code" href="struct__PTPNTCCoordinatePair.html">_PTPNTCCoordinatePair</a> {
<a name="l01005"></a>01005         uint8_t         X;
<a name="l01006"></a>01006         uint8_t         Y;
<a name="l01007"></a>01007 };
<a name="l01008"></a>01008 
<a name="l01009"></a>01009 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPNTCCoordinatePair.html">_PTPNTCCoordinatePair</a> <a class="code" href="struct__PTPNTCCoordinatePair.html">PTPNTCCoordinatePair</a>;
<a name="l01010"></a>01010 
<a name="l01011"></a><a class="code" href="struct__PTPNIKONCurveData.html">01011</a> <span class="keyword">struct </span><a class="code" href="struct__PTPNIKONCurveData.html">_PTPNIKONCurveData</a> {
<a name="l01012"></a>01012         <span class="keywordtype">char</span>                    static_preamble[6];
<a name="l01013"></a>01013         uint8_t                 XAxisStartPoint;
<a name="l01014"></a>01014         uint8_t                 XAxisEndPoint;
<a name="l01015"></a>01015         uint8_t                 YAxisStartPoint;
<a name="l01016"></a>01016         uint8_t                 YAxisEndPoint;
<a name="l01017"></a>01017         uint8_t                 MidPointIntegerPart;
<a name="l01018"></a>01018         uint8_t                 MidPointDecimalPart;
<a name="l01019"></a>01019         uint8_t                 NCoordinates;
<a name="l01020"></a>01020         <a class="code" href="struct__PTPNIKONCoordinatePair.html">PTPNIKONCoordinatePair</a>  CurveCoordinates[PTP_NIKON_MaxCurvePoints];
<a name="l01021"></a>01021 };
<a name="l01022"></a>01022 
<a name="l01023"></a>01023 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPNIKONCurveData.html">_PTPNIKONCurveData</a> <a class="code" href="struct__PTPNIKONCurveData.html">PTPNIKONCurveData</a>;
<a name="l01024"></a>01024 
<a name="l01025"></a><a class="code" href="struct__PTPEKTextParams.html">01025</a> <span class="keyword">struct </span><a class="code" href="struct__PTPEKTextParams.html">_PTPEKTextParams</a> {
<a name="l01026"></a>01026         <span class="keywordtype">char</span>    *title;
<a name="l01027"></a>01027         <span class="keywordtype">char</span>    *line[5];
<a name="l01028"></a>01028 };
<a name="l01029"></a>01029 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPEKTextParams.html">_PTPEKTextParams</a> <a class="code" href="struct__PTPEKTextParams.html">PTPEKTextParams</a>;
<a name="l01030"></a>01030 
<a name="l01031"></a>01031 <span class="comment">/* Nikon Wifi profiles */</span>
<a name="l01032"></a>01032 
<a name="l01033"></a><a class="code" href="struct__PTPNIKONWifiProfile.html">01033</a> <span class="keyword">struct </span><a class="code" href="struct__PTPNIKONWifiProfile.html">_PTPNIKONWifiProfile</a> {
<a name="l01034"></a>01034         <span class="comment">/* Values valid both when reading and writing profiles */</span>
<a name="l01035"></a>01035         <span class="keywordtype">char</span>      profile_name[17];
<a name="l01036"></a>01036         uint8_t   device_type;
<a name="l01037"></a>01037         uint8_t   icon_type;
<a name="l01038"></a>01038         <span class="keywordtype">char</span>      essid[33];
<a name="l01039"></a>01039 
<a name="l01040"></a>01040         <span class="comment">/* Values only valid when reading. Some of these are in the write packet,</span>
<a name="l01041"></a>01041 <span class="comment">         * but are set automatically, like id, display_order and creation_date. */</span>
<a name="l01042"></a>01042         uint8_t   id;
<a name="l01043"></a>01043         uint8_t   valid;
<a name="l01044"></a>01044         uint8_t   display_order;
<a name="l01045"></a>01045         <span class="keywordtype">char</span>      creation_date[16];
<a name="l01046"></a>01046         <span class="keywordtype">char</span>      lastusage_date[16];
<a name="l01047"></a>01047         
<a name="l01048"></a>01048         <span class="comment">/* Values only valid when writing */</span>
<a name="l01049"></a>01049         uint32_t  ip_address;
<a name="l01050"></a>01050         uint8_t   subnet_mask; <span class="comment">/* first zero bit position, e.g. 24 for 255.255.255.0 */</span>
<a name="l01051"></a>01051         uint32_t  gateway_address;
<a name="l01052"></a>01052         uint8_t   address_mode; <span class="comment">/* 0 - Manual, 2-3 -  DHCP ad-hoc/managed*/</span>
<a name="l01053"></a>01053         uint8_t   access_mode; <span class="comment">/* 0 - Managed, 1 - Adhoc */</span>
<a name="l01054"></a>01054         uint8_t   wifi_channel; <span class="comment">/* 1-11 */</span>
<a name="l01055"></a>01055         uint8_t   authentification; <span class="comment">/* 0 - Open, 1 - Shared, 2 - WPA-PSK */</span>
<a name="l01056"></a>01056         uint8_t   encryption; <span class="comment">/* 0 - None, 1 - WEP 64bit, 2 - WEP 128bit (not supported: 3 - TKIP) */</span>
<a name="l01057"></a>01057         uint8_t   key[64];
<a name="l01058"></a>01058         uint8_t   key_nr;
<a name="l01059"></a>01059 <span class="comment">//      char      guid[16];</span>
<a name="l01060"></a>01060 };
<a name="l01061"></a>01061 
<a name="l01062"></a>01062 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPNIKONWifiProfile.html">_PTPNIKONWifiProfile</a> <a class="code" href="struct__PTPNIKONWifiProfile.html">PTPNIKONWifiProfile</a>;
<a name="l01063"></a>01063 
<a name="l01064"></a>01064 <span class="preprocessor">#define PTP_CANON_EOS_CHANGES_TYPE_UNKNOWN              0</span>
<a name="l01065"></a>01065 <span class="preprocessor"></span><span class="preprocessor">#define PTP_CANON_EOS_CHANGES_TYPE_OBJECTINFO           1</span>
<a name="l01066"></a>01066 <span class="preprocessor"></span><span class="preprocessor">#define PTP_CANON_EOS_CHANGES_TYPE_OBJECTTRANSFER       2</span>
<a name="l01067"></a>01067 <span class="preprocessor"></span>
<a name="l01068"></a><a class="code" href="struct__PTPCanon__New__Object.html">01068</a> <span class="keyword">struct </span><a class="code" href="struct__PTPCanon__New__Object.html">_PTPCanon_New_Object</a> {
<a name="l01069"></a>01069         uint32_t                oid;
<a name="l01070"></a>01070         <a class="code" href="struct__PTPObjectInfo.html">PTPObjectInfo</a>   oi;
<a name="l01071"></a>01071 };
<a name="l01072"></a>01072 
<a name="l01073"></a><a class="code" href="struct__PTPCanon__changes__entry.html">01073</a> <span class="keyword">struct </span><a class="code" href="struct__PTPCanon__changes__entry.html">_PTPCanon_changes_entry</a> {
<a name="l01074"></a>01074         <span class="keywordtype">int</span>     type;
<a name="l01075"></a>01075         <span class="keyword">union </span>{
<a name="l01076"></a>01076                 <span class="keyword">struct </span><a class="code" href="struct__PTPCanon__New__Object.html">_PTPCanon_New_Object</a>     object; <span class="comment">/* TYPE_OBJECTINFO */</span>
<a name="l01077"></a>01077         } u;
<a name="l01078"></a>01078 };
<a name="l01079"></a>01079 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPCanon__changes__entry.html">_PTPCanon_changes_entry</a> <a class="code" href="struct__PTPCanon__changes__entry.html">PTPCanon_changes_entry</a>;
<a name="l01080"></a>01080 
<a name="l01081"></a><a class="code" href="struct__PTPCanon__Property.html">01081</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPCanon__Property.html">_PTPCanon_Property</a> {
<a name="l01082"></a>01082         uint32_t                size;
<a name="l01083"></a>01083         uint32_t                type;
<a name="l01084"></a>01084         uint32_t                proptype;
<a name="l01085"></a>01085         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>           *data;
<a name="l01086"></a>01086 
<a name="l01087"></a>01087         <span class="comment">/* fill out for queries */</span>
<a name="l01088"></a>01088         <a class="code" href="struct__PTPDevicePropDesc.html">PTPDevicePropDesc</a>       dpd;
<a name="l01089"></a>01089 } <a class="code" href="struct__PTPCanon__Property.html">PTPCanon_Property</a>;
<a name="l01090"></a>01090 
<a name="l01091"></a><a class="code" href="struct__PTPCanonEOSDeviceInfo.html">01091</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPCanonEOSDeviceInfo.html">_PTPCanonEOSDeviceInfo</a> {
<a name="l01092"></a>01092         <span class="comment">/* length */</span>
<a name="l01093"></a>01093         uint32_t EventsSupported_len;
<a name="l01094"></a>01094         uint32_t *EventsSupported;
<a name="l01095"></a>01095 
<a name="l01096"></a>01096         uint32_t DevicePropertiesSupported_len;
<a name="l01097"></a>01097         uint32_t *DevicePropertiesSupported;
<a name="l01098"></a>01098 
<a name="l01099"></a>01099         uint32_t unk_len;
<a name="l01100"></a>01100         uint32_t *unk;
<a name="l01101"></a>01101 } <a class="code" href="struct__PTPCanonEOSDeviceInfo.html">PTPCanonEOSDeviceInfo</a>;
<a name="l01102"></a>01102 
<a name="l01103"></a>01103 <span class="comment">/* DataType Codes */</span>
<a name="l01104"></a>01104 
<a name="l01105"></a>01105 <span class="preprocessor">#define PTP_DTC_UNDEF           0x0000</span>
<a name="l01106"></a>01106 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_INT8            0x0001</span>
<a name="l01107"></a>01107 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_UINT8           0x0002</span>
<a name="l01108"></a>01108 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_INT16           0x0003</span>
<a name="l01109"></a>01109 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_UINT16          0x0004</span>
<a name="l01110"></a>01110 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_INT32           0x0005</span>
<a name="l01111"></a>01111 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_UINT32          0x0006</span>
<a name="l01112"></a>01112 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_INT64           0x0007</span>
<a name="l01113"></a>01113 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_UINT64          0x0008</span>
<a name="l01114"></a>01114 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_INT128          0x0009</span>
<a name="l01115"></a>01115 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_UINT128         0x000A</span>
<a name="l01116"></a>01116 <span class="preprocessor"></span>
<a name="l01117"></a>01117 <span class="preprocessor">#define PTP_DTC_ARRAY_MASK      0x4000</span>
<a name="l01118"></a>01118 <span class="preprocessor"></span>
<a name="l01119"></a>01119 <span class="preprocessor">#define PTP_DTC_AINT8           (PTP_DTC_ARRAY_MASK | PTP_DTC_INT8)</span>
<a name="l01120"></a>01120 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_AUINT8          (PTP_DTC_ARRAY_MASK | PTP_DTC_UINT8)</span>
<a name="l01121"></a>01121 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_AINT16          (PTP_DTC_ARRAY_MASK | PTP_DTC_INT16)</span>
<a name="l01122"></a>01122 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_AUINT16         (PTP_DTC_ARRAY_MASK | PTP_DTC_UINT16)</span>
<a name="l01123"></a>01123 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_AINT32          (PTP_DTC_ARRAY_MASK | PTP_DTC_INT32)</span>
<a name="l01124"></a>01124 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_AUINT32         (PTP_DTC_ARRAY_MASK | PTP_DTC_UINT32)</span>
<a name="l01125"></a>01125 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_AINT64          (PTP_DTC_ARRAY_MASK | PTP_DTC_INT64)</span>
<a name="l01126"></a>01126 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_AUINT64         (PTP_DTC_ARRAY_MASK | PTP_DTC_UINT64)</span>
<a name="l01127"></a>01127 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_AINT128         (PTP_DTC_ARRAY_MASK | PTP_DTC_INT128)</span>
<a name="l01128"></a>01128 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DTC_AUINT128        (PTP_DTC_ARRAY_MASK | PTP_DTC_UINT128)</span>
<a name="l01129"></a>01129 <span class="preprocessor"></span>
<a name="l01130"></a>01130 <span class="preprocessor">#define PTP_DTC_STR             0xFFFF</span>
<a name="l01131"></a>01131 <span class="preprocessor"></span>
<a name="l01132"></a>01132 <span class="comment">/* Device Properties Codes */</span>
<a name="l01133"></a>01133 
<a name="l01134"></a>01134 <span class="comment">/* PTP v1.0 property codes */</span>
<a name="l01135"></a>01135 <span class="preprocessor">#define PTP_DPC_Undefined               0x5000</span>
<a name="l01136"></a>01136 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_BatteryLevel            0x5001</span>
<a name="l01137"></a>01137 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_FunctionalMode          0x5002</span>
<a name="l01138"></a>01138 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_ImageSize               0x5003</span>
<a name="l01139"></a>01139 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CompressionSetting      0x5004</span>
<a name="l01140"></a>01140 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_WhiteBalance            0x5005</span>
<a name="l01141"></a>01141 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_RGBGain                 0x5006</span>
<a name="l01142"></a>01142 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_FNumber                 0x5007</span>
<a name="l01143"></a>01143 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_FocalLength             0x5008</span>
<a name="l01144"></a>01144 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_FocusDistance           0x5009</span>
<a name="l01145"></a>01145 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_FocusMode               0x500A</span>
<a name="l01146"></a>01146 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_ExposureMeteringMode    0x500B</span>
<a name="l01147"></a>01147 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_FlashMode               0x500C</span>
<a name="l01148"></a>01148 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_ExposureTime            0x500D</span>
<a name="l01149"></a>01149 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_ExposureProgramMode     0x500E</span>
<a name="l01150"></a>01150 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_ExposureIndex           0x500F</span>
<a name="l01151"></a>01151 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_ExposureBiasCompensation        0x5010</span>
<a name="l01152"></a>01152 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_DateTime                0x5011</span>
<a name="l01153"></a>01153 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CaptureDelay            0x5012</span>
<a name="l01154"></a>01154 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_StillCaptureMode        0x5013</span>
<a name="l01155"></a>01155 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_Contrast                0x5014</span>
<a name="l01156"></a>01156 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_Sharpness               0x5015</span>
<a name="l01157"></a>01157 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_DigitalZoom             0x5016</span>
<a name="l01158"></a>01158 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_EffectMode              0x5017</span>
<a name="l01159"></a>01159 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_BurstNumber             0x5018</span>
<a name="l01160"></a>01160 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_BurstInterval           0x5019</span>
<a name="l01161"></a>01161 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_TimelapseNumber         0x501A</span>
<a name="l01162"></a>01162 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_TimelapseInterval       0x501B</span>
<a name="l01163"></a>01163 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_FocusMeteringMode       0x501C</span>
<a name="l01164"></a>01164 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_UploadURL               0x501D</span>
<a name="l01165"></a>01165 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_Artist                  0x501E</span>
<a name="l01166"></a>01166 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CopyrightInfo           0x501F</span>
<a name="l01167"></a>01167 <span class="preprocessor"></span><span class="comment">/* PTP v1.1 property codes */</span>
<a name="l01168"></a>01168 <span class="preprocessor">#define PTP_DPC_SupportedStreams        0x5020</span>
<a name="l01169"></a>01169 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_EnabledStreams          0x5021</span>
<a name="l01170"></a>01170 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_VideoFormat             0x5022</span>
<a name="l01171"></a>01171 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_VideoResolution         0x5023</span>
<a name="l01172"></a>01172 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_VideoQuality            0x5024</span>
<a name="l01173"></a>01173 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_VideoFrameRate          0x5025</span>
<a name="l01174"></a>01174 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_VideoContrast           0x5026</span>
<a name="l01175"></a>01175 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_VideoBrightness         0x5027</span>
<a name="l01176"></a>01176 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_AudioFormat             0x5028</span>
<a name="l01177"></a>01177 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_AudioBitrate            0x5029</span>
<a name="l01178"></a>01178 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_AudioSamplingRate       0x502A</span>
<a name="l01179"></a>01179 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_AudioBitPerSample       0x502B</span>
<a name="l01180"></a>01180 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_AudioVolume             0x502C</span>
<a name="l01181"></a>01181 <span class="preprocessor"></span>
<a name="l01182"></a>01182 <span class="comment">/* Proprietary vendor extension device property mask */</span>
<a name="l01183"></a>01183 <span class="preprocessor">#define PTP_DPC_EXTENSION_MASK          0xF000</span>
<a name="l01184"></a>01184 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_EXTENSION               0xD000</span>
<a name="l01185"></a>01185 <span class="preprocessor"></span>
<a name="l01186"></a>01186 <span class="comment">/* Zune extension device property codes */</span>
<a name="l01187"></a>01187 <span class="preprocessor">#define PTP_DPC_MTP_ZUNE_UNKNOWN1       0xD181</span>
<a name="l01188"></a>01188 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_ZUNE_UNKNOWN2       0xD132</span>
<a name="l01189"></a>01189 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_ZUNE_UNKNOWN3       0xD215</span>
<a name="l01190"></a>01190 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_ZUNE_UNKNOWN4       0xD216</span>
<a name="l01191"></a>01191 <span class="preprocessor"></span>
<a name="l01192"></a>01192 <span class="comment">/* Eastman Kodak extension device property codes */</span>
<a name="l01193"></a>01193 <span class="preprocessor">#define PTP_DPC_EK_ColorTemperature     0xD001</span>
<a name="l01194"></a>01194 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_EK_DateTimeStampFormat  0xD002</span>
<a name="l01195"></a>01195 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_EK_BeepMode             0xD003</span>
<a name="l01196"></a>01196 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_EK_VideoOut             0xD004</span>
<a name="l01197"></a>01197 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_EK_PowerSaving          0xD005</span>
<a name="l01198"></a>01198 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_EK_UI_Language          0xD006</span>
<a name="l01199"></a>01199 <span class="preprocessor"></span>
<a name="l01200"></a>01200 <span class="comment">/* Canon extension device property codes */</span>
<a name="l01201"></a>01201 <span class="preprocessor">#define PTP_DPC_CANON_BeepMode          0xD001</span>
<a name="l01202"></a>01202 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_BatteryKind       0xD002</span>
<a name="l01203"></a>01203 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_BatteryStatus     0xD003</span>
<a name="l01204"></a>01204 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_UILockType        0xD004</span>
<a name="l01205"></a>01205 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_CameraMode        0xD005</span>
<a name="l01206"></a>01206 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_ImageQuality      0xD006</span>
<a name="l01207"></a>01207 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_FullViewFileFormat 0xD007</span>
<a name="l01208"></a>01208 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_ImageSize         0xD008</span>
<a name="l01209"></a>01209 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_SelfTime          0xD009</span>
<a name="l01210"></a>01210 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_FlashMode         0xD00A</span>
<a name="l01211"></a>01211 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_Beep              0xD00B</span>
<a name="l01212"></a>01212 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_ShootingMode      0xD00C</span>
<a name="l01213"></a>01213 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_ImageMode         0xD00D</span>
<a name="l01214"></a>01214 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_DriveMode         0xD00E</span>
<a name="l01215"></a>01215 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EZoom             0xD00F</span>
<a name="l01216"></a>01216 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_MeteringMode      0xD010</span>
<a name="l01217"></a>01217 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_AFDistance        0xD011</span>
<a name="l01218"></a>01218 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_FocusingPoint     0xD012</span>
<a name="l01219"></a>01219 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_WhiteBalance      0xD013</span>
<a name="l01220"></a>01220 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_SlowShutterSetting        0xD014</span>
<a name="l01221"></a>01221 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_AFMode            0xD015</span>
<a name="l01222"></a>01222 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_ImageStabilization        0xD016</span>
<a name="l01223"></a>01223 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_Contrast          0xD017</span>
<a name="l01224"></a>01224 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_ColorGain         0xD018</span>
<a name="l01225"></a>01225 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_Sharpness         0xD019</span>
<a name="l01226"></a>01226 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_Sensitivity       0xD01A</span>
<a name="l01227"></a>01227 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_ParameterSet      0xD01B</span>
<a name="l01228"></a>01228 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_ISOSpeed          0xD01C</span>
<a name="l01229"></a>01229 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_Aperture          0xD01D</span>
<a name="l01230"></a>01230 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_ShutterSpeed      0xD01E</span>
<a name="l01231"></a>01231 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_ExpCompensation   0xD01F</span>
<a name="l01232"></a>01232 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_FlashCompensation 0xD020</span>
<a name="l01233"></a>01233 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_AEBExposureCompensation   0xD021</span>
<a name="l01234"></a>01234 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_AvOpen            0xD023</span>
<a name="l01235"></a>01235 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_AvMax             0xD024</span>
<a name="l01236"></a>01236 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_FocalLength       0xD025</span>
<a name="l01237"></a>01237 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_FocalLengthTele   0xD026</span>
<a name="l01238"></a>01238 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_FocalLengthWide   0xD027</span>
<a name="l01239"></a>01239 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_FocalLengthDenominator    0xD028</span>
<a name="l01240"></a>01240 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_CaptureTransferMode       0xD029</span>
<a name="l01241"></a>01241 <span class="preprocessor"></span><span class="preprocessor">#define CANON_TRANSFER_ENTIRE_IMAGE_TO_PC       0x0002</span>
<a name="l01242"></a>01242 <span class="preprocessor"></span><span class="preprocessor">#define CANON_TRANSFER_SAVE_THUMBNAIL_TO_DEVICE 0x0004</span>
<a name="l01243"></a>01243 <span class="preprocessor"></span><span class="preprocessor">#define CANON_TRANSFER_SAVE_IMAGE_TO_DEVICE     0x0008</span>
<a name="l01244"></a>01244 <span class="preprocessor"></span><span class="comment">/* we use those values: */</span>
<a name="l01245"></a>01245 <span class="preprocessor">#define CANON_TRANSFER_MEMORY           (2|1)</span>
<a name="l01246"></a>01246 <span class="preprocessor"></span><span class="preprocessor">#define CANON_TRANSFER_CARD             (8|4|1)</span>
<a name="l01247"></a>01247 <span class="preprocessor"></span>
<a name="l01248"></a>01248 <span class="preprocessor">#define PTP_DPC_CANON_Zoom              0xD02A</span>
<a name="l01249"></a>01249 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_NamePrefix        0xD02B</span>
<a name="l01250"></a>01250 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_SizeQualityMode   0xD02C</span>
<a name="l01251"></a>01251 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_SupportedThumbSize        0xD02D</span>
<a name="l01252"></a>01252 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_SizeOfOutputDataFromCamera        0xD02E</span>
<a name="l01253"></a>01253 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_SizeOfInputDataToCamera           0xD02F</span>
<a name="l01254"></a>01254 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_RemoteAPIVersion  0xD030</span>
<a name="l01255"></a>01255 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_FirmwareVersion   0xD031</span>
<a name="l01256"></a>01256 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_CameraModel       0xD032</span>
<a name="l01257"></a>01257 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_CameraOwner       0xD033</span>
<a name="l01258"></a>01258 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_UnixTime          0xD034</span>
<a name="l01259"></a>01259 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_CameraBodyID      0xD035</span>
<a name="l01260"></a>01260 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_CameraOutput      0xD036</span>
<a name="l01261"></a>01261 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_DispAv            0xD037</span>
<a name="l01262"></a>01262 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_AvOpenApex        0xD038</span>
<a name="l01263"></a>01263 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_DZoomMagnification        0xD039</span>
<a name="l01264"></a>01264 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_MlSpotPos         0xD03A</span>
<a name="l01265"></a>01265 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_DispAvMax         0xD03B</span>
<a name="l01266"></a>01266 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_AvMaxApex         0xD03C</span>
<a name="l01267"></a>01267 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EZoomStartPosition                0xD03D</span>
<a name="l01268"></a>01268 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_FocalLengthOfTele 0xD03E</span>
<a name="l01269"></a>01269 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EZoomSizeOfTele   0xD03F</span>
<a name="l01270"></a>01270 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_PhotoEffect       0xD040</span>
<a name="l01271"></a>01271 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_AssistLight       0xD041</span>
<a name="l01272"></a>01272 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_FlashQuantityCount        0xD042</span>
<a name="l01273"></a>01273 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_RotationAngle     0xD043</span>
<a name="l01274"></a>01274 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_RotationScene     0xD044</span>
<a name="l01275"></a>01275 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EventEmulateMode  0xD045</span>
<a name="l01276"></a>01276 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_DPOFVersion       0xD046</span>
<a name="l01277"></a>01277 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_TypeOfSupportedSlideShow  0xD047</span>
<a name="l01278"></a>01278 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_AverageFilesizes  0xD048</span>
<a name="l01279"></a>01279 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_ModelID           0xD049</span>
<a name="l01280"></a>01280 <span class="preprocessor"></span>
<a name="l01281"></a>01281 <span class="comment">/* From EOS 400D trace. */</span>
<a name="l01282"></a>01282 <span class="preprocessor">#define PTP_DPC_CANON_EOS_Aperture              0xD101</span>
<a name="l01283"></a>01283 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_ShutterSpeed          0xD102</span>
<a name="l01284"></a>01284 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_ISOSpeed              0xD103</span>
<a name="l01285"></a>01285 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_ExpCompensation       0xD104</span>
<a name="l01286"></a>01286 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_AutoExposureMode      0xD105</span>
<a name="l01287"></a>01287 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_DriveMode             0xD106</span>
<a name="l01288"></a>01288 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_MeteringMode          0xD107 </span>
<a name="l01289"></a>01289 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_FocusMode             0xD108</span>
<a name="l01290"></a>01290 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_WhiteBalance          0xD109</span>
<a name="l01291"></a>01291 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_ColorTemperature      0xD10A</span>
<a name="l01292"></a>01292 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_WhiteBalanceAdjustA   0xD10B</span>
<a name="l01293"></a>01293 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_WhiteBalanceAdjustB   0xD10C</span>
<a name="l01294"></a>01294 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_WhiteBalanceXA        0xD10D</span>
<a name="l01295"></a>01295 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_WhiteBalanceXB        0xD10E</span>
<a name="l01296"></a>01296 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_ColorSpace            0xD10F</span>
<a name="l01297"></a>01297 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PictureStyle          0xD110</span>
<a name="l01298"></a>01298 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_BatteryPower          0xD111</span>
<a name="l01299"></a>01299 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_BatterySelect         0xD112</span>
<a name="l01300"></a>01300 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CameraTime            0xD113</span>
<a name="l01301"></a>01301 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_Owner                 0xD115</span>
<a name="l01302"></a>01302 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_ModelID               0xD116</span>
<a name="l01303"></a>01303 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PTPExtensionVersion   0xD119</span>
<a name="l01304"></a>01304 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_DPOFVersion           0xD11A</span>
<a name="l01305"></a>01305 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_AvailableShots        0xD11B</span>
<a name="l01306"></a>01306 <span class="preprocessor"></span><span class="preprocessor">#define PTP_CANON_EOS_CAPTUREDEST_HD            4</span>
<a name="l01307"></a>01307 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CaptureDestination    0xD11C</span>
<a name="l01308"></a>01308 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_BracketMode           0xD11D</span>
<a name="l01309"></a>01309 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CurrentStorage        0xD11E</span>
<a name="l01310"></a>01310 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CurrentFolder         0xD11F</span>
<a name="l01311"></a>01311 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_ImageFormat           0xD120  </span><span class="comment">/* file setting */</span>
<a name="l01312"></a>01312 <span class="preprocessor">#define PTP_DPC_CANON_EOS_ImageFormatCF         0xD121  </span><span class="comment">/* file setting CF */</span>
<a name="l01313"></a>01313 <span class="preprocessor">#define PTP_DPC_CANON_EOS_ImageFormatSD         0xD122  </span><span class="comment">/* file setting SD */</span>
<a name="l01314"></a>01314 <span class="preprocessor">#define PTP_DPC_CANON_EOS_ImageFormatExtHD      0xD123  </span><span class="comment">/* file setting exthd */</span>
<a name="l01315"></a>01315 <span class="preprocessor">#define PTP_DPC_CANON_EOS_CompressionS          0xD130</span>
<a name="l01316"></a>01316 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CompressionM1         0xD131</span>
<a name="l01317"></a>01317 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CompressionM2         0xD132</span>
<a name="l01318"></a>01318 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CompressionL          0xD133</span>
<a name="l01319"></a>01319 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PCWhiteBalance1       0xD140</span>
<a name="l01320"></a>01320 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PCWhiteBalance2       0xD141</span>
<a name="l01321"></a>01321 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PCWhiteBalance3       0xD142</span>
<a name="l01322"></a>01322 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PCWhiteBalance4       0xD143</span>
<a name="l01323"></a>01323 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PCWhiteBalance5       0xD144</span>
<a name="l01324"></a>01324 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_MWhiteBalance         0xD145</span>
<a name="l01325"></a>01325 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PictureStyleStandard  0xD150</span>
<a name="l01326"></a>01326 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PictureStylePortrait  0xD151</span>
<a name="l01327"></a>01327 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PictureStyleLandscape 0xD152</span>
<a name="l01328"></a>01328 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PictureStyleNeutral   0xD153</span>
<a name="l01329"></a>01329 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PictureStyleFaithful  0xD154</span>
<a name="l01330"></a>01330 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PictureStyleBlackWhite        0xD155</span>
<a name="l01331"></a>01331 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PictureStyleUserSet1  0xD160</span>
<a name="l01332"></a>01332 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PictureStyleUserSet2  0xD161</span>
<a name="l01333"></a>01333 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PictureStyleUserSet3  0xD162</span>
<a name="l01334"></a>01334 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PictureStyleParam1    0xD170</span>
<a name="l01335"></a>01335 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PictureStyleParam2    0xD171</span>
<a name="l01336"></a>01336 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PictureStyleParam3    0xD172</span>
<a name="l01337"></a>01337 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_FlavorLUTParams       0xD17f</span>
<a name="l01338"></a>01338 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc1           0xD180</span>
<a name="l01339"></a>01339 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc2           0xD181</span>
<a name="l01340"></a>01340 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc3           0xD182</span>
<a name="l01341"></a>01341 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc4           0xD183</span>
<a name="l01342"></a>01342 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc5           0xD184</span>
<a name="l01343"></a>01343 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc6           0xD185</span>
<a name="l01344"></a>01344 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc7           0xD186</span>
<a name="l01345"></a>01345 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc8           0xD187</span>
<a name="l01346"></a>01346 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc9           0xD188</span>
<a name="l01347"></a>01347 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc10          0xD189</span>
<a name="l01348"></a>01348 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc11          0xD18a</span>
<a name="l01349"></a>01349 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc12          0xD18b</span>
<a name="l01350"></a>01350 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc13          0xD18c</span>
<a name="l01351"></a>01351 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc14          0xD18d</span>
<a name="l01352"></a>01352 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc15          0xD18e</span>
<a name="l01353"></a>01353 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc16          0xD18f</span>
<a name="l01354"></a>01354 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc17          0xD190</span>
<a name="l01355"></a>01355 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc18          0xD191</span>
<a name="l01356"></a>01356 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc19          0xD192</span>
<a name="l01357"></a>01357 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFunc19          0xD192</span>
<a name="l01358"></a>01358 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CustomFuncEx          0xD1a0</span>
<a name="l01359"></a>01359 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_MyMenu                0xD1a1</span>
<a name="l01360"></a>01360 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_MyMenuList            0xD1a2</span>
<a name="l01361"></a>01361 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_WftStatus             0xD1a3</span>
<a name="l01362"></a>01362 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_WftInputTransmission  0xD1a4</span>
<a name="l01363"></a>01363 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_HDDirectoryStructure  0xD1a5</span>
<a name="l01364"></a>01364 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_BatteryInfo           0xD1a6</span>
<a name="l01365"></a>01365 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_AdapterInfo           0xD1a7</span>
<a name="l01366"></a>01366 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_LensStatus            0xD1a8</span>
<a name="l01367"></a>01367 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_QuickReviewTime       0xD1a9</span>
<a name="l01368"></a>01368 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_CardExtension         0xD1aa</span>
<a name="l01369"></a>01369 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_TempStatus            0xD1ab</span>
<a name="l01370"></a>01370 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_ShutterCounter        0xD1ac</span>
<a name="l01371"></a>01371 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_SpecialOption         0xD1ad</span>
<a name="l01372"></a>01372 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_PhotoStudioMode       0xD1ae</span>
<a name="l01373"></a>01373 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_SerialNumber          0xD1af</span>
<a name="l01374"></a>01374 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_EVFOutputDevice       0xD1b0</span>
<a name="l01375"></a>01375 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_EVFMode               0xD1b1</span>
<a name="l01376"></a>01376 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_DepthOfFieldPreview   0xD1b2</span>
<a name="l01377"></a>01377 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_EVFSharpness          0xD1b3</span>
<a name="l01378"></a>01378 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_EVFWBMode             0xD1b4</span>
<a name="l01379"></a>01379 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_EVFClickWBCoeffs      0xD1b5</span>
<a name="l01380"></a>01380 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_EVFColorTemp          0xD1b6</span>
<a name="l01381"></a>01381 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_ExposureSimMode       0xD1b7</span>
<a name="l01382"></a>01382 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_EVFRecordStatus       0xD1b8</span>
<a name="l01383"></a>01383 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_LvAfSystem            0xD1ba</span>
<a name="l01384"></a>01384 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_MovSize               0xD1bb</span>
<a name="l01385"></a>01385 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_LvViewTypeSelect      0xD1bc</span>
<a name="l01386"></a>01386 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_Artist                0xD1d0</span>
<a name="l01387"></a>01387 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_Copyright             0xD1d1</span>
<a name="l01388"></a>01388 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_BracketValue          0xD1d2</span>
<a name="l01389"></a>01389 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_FocusInfoEx           0xD1d3</span>
<a name="l01390"></a>01390 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_DepthOfField          0xD1d4</span>
<a name="l01391"></a>01391 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_Brightness            0xD1d5</span>
<a name="l01392"></a>01392 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_LensAdjustParams      0xD1d6</span>
<a name="l01393"></a>01393 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_EFComp                0xD1d7</span>
<a name="l01394"></a>01394 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_LensName              0xD1d8</span>
<a name="l01395"></a>01395 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_AEB                   0xD1d9</span>
<a name="l01396"></a>01396 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_StroboSetting         0xD1da</span>
<a name="l01397"></a>01397 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_StroboWirelessSetting 0xD1db</span>
<a name="l01398"></a>01398 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_StroboFiring          0xD1dc</span>
<a name="l01399"></a>01399 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_CANON_EOS_LensID                0xD1dd</span>
<a name="l01400"></a>01400 <span class="preprocessor"></span>
<a name="l01401"></a>01401 <span class="comment">/* Nikon extension device property codes */</span>
<a name="l01402"></a>01402 <span class="preprocessor">#define PTP_DPC_NIKON_ShootingBank                      0xD010</span>
<a name="l01403"></a>01403 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ShootingBankNameA                 0xD011</span>
<a name="l01404"></a>01404 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ShootingBankNameB                 0xD012</span>
<a name="l01405"></a>01405 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ShootingBankNameC                 0xD013</span>
<a name="l01406"></a>01406 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ShootingBankNameD                 0xD014</span>
<a name="l01407"></a>01407 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ResetBank0                        0xD015</span>
<a name="l01408"></a>01408 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_RawCompression                    0xD016</span>
<a name="l01409"></a>01409 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalanceAutoBias              0xD017</span>
<a name="l01410"></a>01410 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalanceTungstenBias          0xD018</span>
<a name="l01411"></a>01411 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalanceFluorescentBias       0xD019</span>
<a name="l01412"></a>01412 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalanceDaylightBias          0xD01A</span>
<a name="l01413"></a>01413 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalanceFlashBias             0xD01B</span>
<a name="l01414"></a>01414 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalanceCloudyBias            0xD01C</span>
<a name="l01415"></a>01415 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalanceShadeBias             0xD01D</span>
<a name="l01416"></a>01416 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalanceColorTemperature      0xD01E</span>
<a name="l01417"></a>01417 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalancePresetNo              0xD01F</span>
<a name="l01418"></a>01418 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalancePresetName0           0xD020</span>
<a name="l01419"></a>01419 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalancePresetName1           0xD021</span>
<a name="l01420"></a>01420 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalancePresetName2           0xD022</span>
<a name="l01421"></a>01421 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalancePresetName3           0xD023</span>
<a name="l01422"></a>01422 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalancePresetName4           0xD024</span>
<a name="l01423"></a>01423 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalancePresetVal0            0xD025</span>
<a name="l01424"></a>01424 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalancePresetVal1            0xD026</span>
<a name="l01425"></a>01425 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalancePresetVal2            0xD027</span>
<a name="l01426"></a>01426 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalancePresetVal3            0xD028</span>
<a name="l01427"></a>01427 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalancePresetVal4            0xD029</span>
<a name="l01428"></a>01428 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ImageSharpening                   0xD02A</span>
<a name="l01429"></a>01429 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ToneCompensation                  0xD02B</span>
<a name="l01430"></a>01430 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ColorModel                        0xD02C</span>
<a name="l01431"></a>01431 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_HueAdjustment                     0xD02D</span>
<a name="l01432"></a>01432 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_NonCPULensDataFocalLength         0xD02E  </span><span class="comment">/* Set FMM Manual */</span>
<a name="l01433"></a>01433 <span class="preprocessor">#define PTP_DPC_NIKON_NonCPULensDataMaximumAperture     0xD02F  </span><span class="comment">/* Set F0 Manual */</span>
<a name="l01434"></a>01434 <span class="preprocessor">#define PTP_DPC_NIKON_ShootingMode                      0xD030</span>
<a name="l01435"></a>01435 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_JPEG_Compression_Policy           0xD031</span>
<a name="l01436"></a>01436 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ColorSpace                        0xD032</span>
<a name="l01437"></a>01437 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AutoDXCrop                        0xD033</span>
<a name="l01438"></a>01438 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_CSMMenuBankSelect                 0xD040</span>
<a name="l01439"></a>01439 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_MenuBankNameA                     0xD041</span>
<a name="l01440"></a>01440 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_MenuBankNameB                     0xD042</span>
<a name="l01441"></a>01441 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_MenuBankNameC                     0xD043</span>
<a name="l01442"></a>01442 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_MenuBankNameD                     0xD044</span>
<a name="l01443"></a>01443 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ResetBank                         0xD045</span>
<a name="l01444"></a>01444 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_A1AFCModePriority                 0xD048</span>
<a name="l01445"></a>01445 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_A2AFSModePriority                 0xD049</span>
<a name="l01446"></a>01446 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_A3GroupDynamicAF                  0xD04A</span>
<a name="l01447"></a>01447 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_A4AFActivation                    0xD04B</span>
<a name="l01448"></a>01448 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FocusAreaIllumManualFocus         0xD04C</span>
<a name="l01449"></a>01449 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FocusAreaIllumContinuous          0xD04D</span>
<a name="l01450"></a>01450 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FocusAreaIllumWhenSelected        0xD04E</span>
<a name="l01451"></a>01451 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FocusAreaWrap                     0xD04F </span><span class="comment">/* area sel */</span>
<a name="l01452"></a>01452 <span class="preprocessor">#define PTP_DPC_NIKON_VerticalAFON                      0xD050</span>
<a name="l01453"></a>01453 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AFLockOn                          0xD051</span>
<a name="l01454"></a>01454 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FocusAreaZone                     0xD052</span>
<a name="l01455"></a>01455 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_EnableCopyright                   0xD053</span>
<a name="l01456"></a>01456 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ISOAuto                           0xD054</span>
<a name="l01457"></a>01457 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_EVISOStep                         0xD055</span>
<a name="l01458"></a>01458 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_EVStep                            0xD056 </span><span class="comment">/* EV Step SS FN */</span>
<a name="l01459"></a>01459 <span class="preprocessor">#define PTP_DPC_NIKON_EVStepExposureComp                0xD057</span>
<a name="l01460"></a>01460 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ExposureCompensation              0xD058</span>
<a name="l01461"></a>01461 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_CenterWeightArea                  0xD059</span>
<a name="l01462"></a>01462 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ExposureBaseMatrix                0xD05A</span>
<a name="l01463"></a>01463 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ExposureBaseCenter                0xD05B</span>
<a name="l01464"></a>01464 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ExposureBaseSpot                  0xD05C</span>
<a name="l01465"></a>01465 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_LiveViewAF                        0xD05D</span>
<a name="l01466"></a>01466 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AELockMode                        0xD05E</span>
<a name="l01467"></a>01467 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AELAFLMode                        0xD05F</span>
<a name="l01468"></a>01468 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_MeterOff                          0xD062</span>
<a name="l01469"></a>01469 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_SelfTimer                         0xD063</span>
<a name="l01470"></a>01470 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_MonitorOff                        0xD064</span>
<a name="l01471"></a>01471 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ImgConfTime                       0xD065</span>
<a name="l01472"></a>01472 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AngleLevel                        0xD067</span>
<a name="l01473"></a>01473 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_D1ShootingSpeed                   0xD068 </span><span class="comment">/* continous speed low */</span>
<a name="l01474"></a>01474 <span class="preprocessor">#define PTP_DPC_NIKON_D2MaximumShots                    0xD069</span>
<a name="l01475"></a>01475 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_D3ExpDelayMode                    0xD06A</span>
<a name="l01476"></a>01476 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_LongExposureNoiseReduction        0xD06B</span>
<a name="l01477"></a>01477 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FileNumberSequence                0xD06C</span>
<a name="l01478"></a>01478 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ControlPanelFinderRearControl     0xD06D</span>
<a name="l01479"></a>01479 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ControlPanelFinderViewfinder      0xD06E</span>
<a name="l01480"></a>01480 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_D7Illumination                    0xD06F</span>
<a name="l01481"></a>01481 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_NrHighISO                         0xD070</span>
<a name="l01482"></a>01482 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_SHSET_CH_GUID_DISP                0xD071</span>
<a name="l01483"></a>01483 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ArtistName                        0xD072</span>
<a name="l01484"></a>01484 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_CopyrightInfo                     0xD073</span>
<a name="l01485"></a>01485 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashSyncSpeed                    0xD074</span>
<a name="l01486"></a>01486 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashShutterSpeed                 0xD075  </span><span class="comment">/* SB Low Limit */</span>
<a name="l01487"></a>01487 <span class="preprocessor">#define PTP_DPC_NIKON_E3AAFlashMode                     0xD076</span>
<a name="l01488"></a>01488 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_E4ModelingFlash                   0xD077</span>
<a name="l01489"></a>01489 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_BracketSet                        0xD078  </span><span class="comment">/* Bracket Type? */</span>
<a name="l01490"></a>01490 <span class="preprocessor">#define PTP_DPC_NIKON_E6ManualModeBracketing            0xD079  </span><span class="comment">/* Bracket Factor? */</span>
<a name="l01491"></a>01491 <span class="preprocessor">#define PTP_DPC_NIKON_BracketOrder                      0xD07A</span>
<a name="l01492"></a>01492 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_E8AutoBracketSelection            0xD07B  </span><span class="comment">/* Bracket Method? */</span>
<a name="l01493"></a>01493 <span class="preprocessor">#define PTP_DPC_NIKON_BracketingSet                     0xD07C</span>
<a name="l01494"></a>01494 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_F1CenterButtonShootingMode        0xD080</span>
<a name="l01495"></a>01495 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_CenterButtonPlaybackMode          0xD081</span>
<a name="l01496"></a>01496 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_F2Multiselector                   0xD082</span>
<a name="l01497"></a>01497 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_F3PhotoInfoPlayback               0xD083  </span><span class="comment">/* MultiSelector Dir */</span>
<a name="l01498"></a>01498 <span class="preprocessor">#define PTP_DPC_NIKON_F4AssignFuncButton                0xD084  </span><span class="comment">/* CMD Dial Rotate */</span>
<a name="l01499"></a>01499 <span class="preprocessor">#define PTP_DPC_NIKON_F5CustomizeCommDials              0xD085  </span><span class="comment">/* CMD Dial Change */</span>
<a name="l01500"></a>01500 <span class="preprocessor">#define PTP_DPC_NIKON_ReverseCommandDial                0xD086  </span><span class="comment">/* CMD Dial FN Set */</span>
<a name="l01501"></a>01501 <span class="preprocessor">#define PTP_DPC_NIKON_ApertureSetting                   0xD087  </span><span class="comment">/* CMD Dial Active */</span>
<a name="l01502"></a>01502 <span class="preprocessor">#define PTP_DPC_NIKON_MenusAndPlayback                  0xD088  </span><span class="comment">/* CMD Dial Active */</span>
<a name="l01503"></a>01503 <span class="preprocessor">#define PTP_DPC_NIKON_F6ButtonsAndDials                 0xD089  </span><span class="comment">/* Universal Mode? */</span>
<a name="l01504"></a>01504 <span class="preprocessor">#define PTP_DPC_NIKON_NoCFCard                          0xD08A  </span><span class="comment">/* Enable Shutter? */</span>
<a name="l01505"></a>01505 <span class="preprocessor">#define PTP_DPC_NIKON_CenterButtonZoomRatio             0xD08B</span>
<a name="l01506"></a>01506 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FunctionButton2                   0xD08C</span>
<a name="l01507"></a>01507 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AFAreaPoint                       0xD08D</span>
<a name="l01508"></a>01508 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_NormalAFOn                        0xD08E</span>
<a name="l01509"></a>01509 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ImageCommentString                0xD090</span>
<a name="l01510"></a>01510 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ImageCommentEnable                0xD091</span>
<a name="l01511"></a>01511 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ImageRotation                     0xD092</span>
<a name="l01512"></a>01512 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ManualSetLensNo                   0xD093</span>
<a name="l01513"></a>01513 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_MovScreenSize                     0xD0A0</span>
<a name="l01514"></a>01514 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_MovVoice                          0xD0A1</span>
<a name="l01515"></a>01515 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_Bracketing                        0xD0C0</span>
<a name="l01516"></a>01516 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AutoExposureBracketStep           0xD0C1</span>
<a name="l01517"></a>01517 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AutoExposureBracketProgram        0xD0C2</span>
<a name="l01518"></a>01518 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AutoExposureBracketCount          0xD0C3</span>
<a name="l01519"></a>01519 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalanceBracketStep           0xD0C4</span>
<a name="l01520"></a>01520 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WhiteBalanceBracketProgram        0xD0C5</span>
<a name="l01521"></a>01521 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_LensID                            0xD0E0</span>
<a name="l01522"></a>01522 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_LensSort                          0xD0E1</span>
<a name="l01523"></a>01523 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_LensType                          0xD0E2</span>
<a name="l01524"></a>01524 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FocalLengthMin                    0xD0E3</span>
<a name="l01525"></a>01525 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FocalLengthMax                    0xD0E4</span>
<a name="l01526"></a>01526 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_MaxApAtMinFocalLength             0xD0E5</span>
<a name="l01527"></a>01527 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_MaxApAtMaxFocalLength             0xD0E6</span>
<a name="l01528"></a>01528 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FinderISODisp                     0xD0F0</span>
<a name="l01529"></a>01529 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AutoOffPhoto                      0xD0F2</span>
<a name="l01530"></a>01530 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AutoOffMenu                       0xD0F3</span>
<a name="l01531"></a>01531 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AutoOffInfo                       0xD0F4</span>
<a name="l01532"></a>01532 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_SelfTimerShootNum                 0xD0F5</span>
<a name="l01533"></a>01533 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_VignetteCtrl                      0xD0F7</span>
<a name="l01534"></a>01534 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ExposureTime                      0xD100  </span><span class="comment">/* Shutter Speed */</span>
<a name="l01535"></a>01535 <span class="preprocessor">#define PTP_DPC_NIKON_ACPower                           0xD101</span>
<a name="l01536"></a>01536 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WarningStatus                     0xD102</span>
<a name="l01537"></a>01537 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_MaximumShots                      0xD103 </span><span class="comment">/* remain shots (in RAM buffer?) */</span>
<a name="l01538"></a>01538 <span class="preprocessor">#define PTP_DPC_NIKON_AFLockStatus                      0xD104</span>
<a name="l01539"></a>01539 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AELockStatus                      0xD105</span>
<a name="l01540"></a>01540 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FVLockStatus                      0xD106</span>
<a name="l01541"></a>01541 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AutofocusLCDTopMode2              0xD107</span>
<a name="l01542"></a>01542 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AutofocusArea                     0xD108</span>
<a name="l01543"></a>01543 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlexibleProgram                   0xD109</span>
<a name="l01544"></a>01544 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_LightMeter                        0xD10A  </span><span class="comment">/* Exposure Status */</span>
<a name="l01545"></a>01545 <span class="preprocessor">#define PTP_DPC_NIKON_RecordingMedia                    0xD10B  </span><span class="comment">/* Card or SDRAM */</span>
<a name="l01546"></a>01546 <span class="preprocessor">#define PTP_DPC_NIKON_USBSpeed                          0xD10C</span>
<a name="l01547"></a>01547 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_CCDNumber                         0xD10D</span>
<a name="l01548"></a>01548 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_CameraOrientation                 0xD10E</span>
<a name="l01549"></a>01549 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_GroupPtnType                      0xD10F</span>
<a name="l01550"></a>01550 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FNumberLock                       0xD110</span>
<a name="l01551"></a>01551 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ExposureApertureLock              0xD111  </span><span class="comment">/* shutterspeed lock*/</span>
<a name="l01552"></a>01552 <span class="preprocessor">#define PTP_DPC_NIKON_TVLockSetting                     0xD112</span>
<a name="l01553"></a>01553 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AVLockSetting                     0xD113</span>
<a name="l01554"></a>01554 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_IllumSetting                      0xD114</span>
<a name="l01555"></a>01555 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FocusPointBright                  0xD115</span>
<a name="l01556"></a>01556 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ExternalFlashAttached             0xD120</span>
<a name="l01557"></a>01557 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ExternalFlashStatus               0xD121</span>
<a name="l01558"></a>01558 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ExternalFlashSort                 0xD122</span>
<a name="l01559"></a>01559 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ExternalFlashMode                 0xD123</span>
<a name="l01560"></a>01560 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ExternalFlashCompensation         0xD124</span>
<a name="l01561"></a>01561 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_NewExternalFlashMode              0xD125</span>
<a name="l01562"></a>01562 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashExposureCompensation         0xD126</span>
<a name="l01563"></a>01563 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_OptimizeImage                     0xD140</span>
<a name="l01564"></a>01564 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_Saturation                        0xD142</span>
<a name="l01565"></a>01565 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_BW_FillerEffect                   0xD143</span>
<a name="l01566"></a>01566 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_BW_Sharpness                      0xD144</span>
<a name="l01567"></a>01567 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_BW_Contrast                       0xD145</span>
<a name="l01568"></a>01568 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_BW_Setting_Type                   0xD146</span>
<a name="l01569"></a>01569 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_Slot2SaveMode                     0xD148</span>
<a name="l01570"></a>01570 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_RawBitMode                        0xD149</span>
<a name="l01571"></a>01571 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ISOAutoTime                       0xD14E</span>
<a name="l01572"></a>01572 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlourescentType                   0xD14F</span>
<a name="l01573"></a>01573 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_TuneColourTemperature             0xD150</span>
<a name="l01574"></a>01574 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_TunePreset0                       0xD151</span>
<a name="l01575"></a>01575 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_TunePreset1                       0xD152</span>
<a name="l01576"></a>01576 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_TunePreset2                       0xD153</span>
<a name="l01577"></a>01577 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_TunePreset3                       0xD154</span>
<a name="l01578"></a>01578 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_TunePreset4                       0xD155</span>
<a name="l01579"></a>01579 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_BeepOff                           0xD160</span>
<a name="l01580"></a>01580 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AutofocusMode                     0xD161</span>
<a name="l01581"></a>01581 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AFAssist                          0xD163</span>
<a name="l01582"></a>01582 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_PADVPMode                         0xD164  </span><span class="comment">/* iso auto time */</span>
<a name="l01583"></a>01583 <span class="preprocessor">#define PTP_DPC_NIKON_ImageReview                       0xD165</span>
<a name="l01584"></a>01584 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AFAreaIllumination                0xD166</span>
<a name="l01585"></a>01585 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashMode                         0xD167</span>
<a name="l01586"></a>01586 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashCommanderMode                0xD168</span>
<a name="l01587"></a>01587 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashSign                         0xD169</span>
<a name="l01588"></a>01588 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ISO_Auto                          0xD16A</span>
<a name="l01589"></a>01589 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_RemoteTimeout                     0xD16B</span>
<a name="l01590"></a>01590 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_GridDisplay                       0xD16C</span>
<a name="l01591"></a>01591 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashModeManualPower              0xD16D</span>
<a name="l01592"></a>01592 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashModeCommanderPower           0xD16E</span>
<a name="l01593"></a>01593 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AutoFP                            0xD16F</span>
<a name="l01594"></a>01594 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_CSMMenu                           0xD180</span>
<a name="l01595"></a>01595 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_WarningDisplay                    0xD181</span>
<a name="l01596"></a>01596 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_BatteryCellKind                   0xD182</span>
<a name="l01597"></a>01597 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ISOAutoHiLimit                    0xD183</span>
<a name="l01598"></a>01598 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_DynamicAFArea                     0xD184</span>
<a name="l01599"></a>01599 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ContinuousSpeedHigh               0xD186</span>
<a name="l01600"></a>01600 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_InfoDispSetting                   0xD187</span>
<a name="l01601"></a>01601 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_PreviewButton                     0xD189</span>
<a name="l01602"></a>01602 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_PreviewButton2                    0xD18A</span>
<a name="l01603"></a>01603 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_AEAFLockButton2                   0xD18B</span>
<a name="l01604"></a>01604 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_IndicatorDisp                     0xD18D</span>
<a name="l01605"></a>01605 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_CellKindPriority                  0xD18E</span>
<a name="l01606"></a>01606 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_BracketingFramesAndSteps          0xD190</span>
<a name="l01607"></a>01607 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_LiveViewMode                      0xD1A0</span>
<a name="l01608"></a>01608 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_LiveViewDriveMode                 0xD1A1</span>
<a name="l01609"></a>01609 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_LiveViewStatus                    0xD1A2</span>
<a name="l01610"></a>01610 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_LiveViewImageZoomRatio            0xD1A3</span>
<a name="l01611"></a>01611 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_LiveViewProhibitCondition         0xD1A4</span>
<a name="l01612"></a>01612 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ExposureDisplayStatus             0xD1B0</span>
<a name="l01613"></a>01613 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ExposureIndicateStatus            0xD1B1</span>
<a name="l01614"></a>01614 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_InfoDispErrStatus                 0xD1B2</span>
<a name="l01615"></a>01615 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ExposureIndicateLightup           0xD1B3</span>
<a name="l01616"></a>01616 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashOpen                         0xD1C0</span>
<a name="l01617"></a>01617 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashCharged                      0xD1C1</span>
<a name="l01618"></a>01618 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashMRepeatValue                 0xD1D0</span>
<a name="l01619"></a>01619 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashMRepeatCount                 0xD1D1</span>
<a name="l01620"></a>01620 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashMRepeatInterval              0xD1D2</span>
<a name="l01621"></a>01621 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashCommandChannel               0xD1D3</span>
<a name="l01622"></a>01622 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashCommandSelfMode              0xD1D4</span>
<a name="l01623"></a>01623 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashCommandSelfCompensation      0xD1D5</span>
<a name="l01624"></a>01624 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashCommandSelfValue             0xD1D6</span>
<a name="l01625"></a>01625 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashCommandAMode                 0xD1D7</span>
<a name="l01626"></a>01626 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashCommandACompensation         0xD1D8</span>
<a name="l01627"></a>01627 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashCommandAValue                0xD1D9</span>
<a name="l01628"></a>01628 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashCommandBMode                 0xD1DA</span>
<a name="l01629"></a>01629 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashCommandBCompensation         0xD1DB</span>
<a name="l01630"></a>01630 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_FlashCommandBValue                0xD1DC</span>
<a name="l01631"></a>01631 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ActivePicCtrlItem                 0xD200</span>
<a name="l01632"></a>01632 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_NIKON_ChangePicCtrlItem                 0xD201</span>
<a name="l01633"></a>01633 <span class="preprocessor"></span>
<a name="l01634"></a>01634 <span class="comment">/* Fuji specific */</span>
<a name="l01635"></a>01635 <span class="preprocessor">#define PTP_DPC_FUJI_ColorTemperature                   0xD017</span>
<a name="l01636"></a>01636 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_FUJI_Quality                            0xD018</span>
<a name="l01637"></a>01637 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_FUJI_ReleaseMode                        0xD201</span>
<a name="l01638"></a>01638 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_FUJI_FocusAreas                         0xD206</span>
<a name="l01639"></a>01639 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_FUJI_AELock                             0xD213</span>
<a name="l01640"></a>01640 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_FUJI_Aperture                           0xD218</span>
<a name="l01641"></a>01641 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_FUJI_ShutterSpeed                       0xD219</span>
<a name="l01642"></a>01642 <span class="preprocessor"></span>
<a name="l01643"></a>01643 <span class="comment">/* Microsoft/MTP specific */</span>
<a name="l01644"></a>01644 <span class="preprocessor">#define PTP_DPC_MTP_SecureTime                          0xD101</span>
<a name="l01645"></a>01645 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_DeviceCertificate                   0xD102</span>
<a name="l01646"></a>01646 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_RevocationInfo                      0xD103</span>
<a name="l01647"></a>01647 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_SynchronizationPartner              0xD401</span>
<a name="l01648"></a>01648 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_DeviceFriendlyName                  0xD402</span>
<a name="l01649"></a>01649 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_VolumeLevel                         0xD403</span>
<a name="l01650"></a>01650 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_DeviceIcon                          0xD405</span>
<a name="l01651"></a>01651 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_SessionInitiatorInfo                0xD406</span>
<a name="l01652"></a>01652 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_PerceivedDeviceType                 0xD407</span>
<a name="l01653"></a>01653 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_PlaybackRate                        0xD410</span>
<a name="l01654"></a>01654 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_PlaybackObject                      0xD411</span>
<a name="l01655"></a>01655 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_PlaybackContainerIndex              0xD412</span>
<a name="l01656"></a>01656 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_PlaybackPosition                    0xD413</span>
<a name="l01657"></a>01657 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPC_MTP_PlaysForSureID                      0xD131</span>
<a name="l01658"></a>01658 <span class="preprocessor"></span>
<a name="l01659"></a>01659 <span class="comment">/* Zune specific property codes */</span>
<a name="l01660"></a>01660 <span class="preprocessor">#define PTP_DPC_MTP_Zune_UnknownVersion                 0xD181</span>
<a name="l01661"></a>01661 <span class="preprocessor"></span>
<a name="l01662"></a>01662 <span class="comment">/* MTP specific Object Properties */</span>
<a name="l01663"></a>01663 <span class="preprocessor">#define PTP_OPC_StorageID                               0xDC01</span>
<a name="l01664"></a>01664 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ObjectFormat                            0xDC02</span>
<a name="l01665"></a>01665 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ProtectionStatus                        0xDC03</span>
<a name="l01666"></a>01666 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ObjectSize                              0xDC04</span>
<a name="l01667"></a>01667 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_AssociationType                         0xDC05</span>
<a name="l01668"></a>01668 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_AssociationDesc                         0xDC06</span>
<a name="l01669"></a>01669 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ObjectFileName                          0xDC07</span>
<a name="l01670"></a>01670 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_DateCreated                             0xDC08</span>
<a name="l01671"></a>01671 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_DateModified                            0xDC09</span>
<a name="l01672"></a>01672 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Keywords                                0xDC0A</span>
<a name="l01673"></a>01673 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ParentObject                            0xDC0B</span>
<a name="l01674"></a>01674 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_AllowedFolderContents                   0xDC0C</span>
<a name="l01675"></a>01675 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Hidden                                  0xDC0D</span>
<a name="l01676"></a>01676 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_SystemObject                            0xDC0E</span>
<a name="l01677"></a>01677 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PersistantUniqueObjectIdentifier        0xDC41</span>
<a name="l01678"></a>01678 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_SyncID                                  0xDC42</span>
<a name="l01679"></a>01679 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PropertyBag                             0xDC43</span>
<a name="l01680"></a>01680 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Name                                    0xDC44</span>
<a name="l01681"></a>01681 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_CreatedBy                               0xDC45</span>
<a name="l01682"></a>01682 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Artist                                  0xDC46</span>
<a name="l01683"></a>01683 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_DateAuthored                            0xDC47</span>
<a name="l01684"></a>01684 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Description                             0xDC48</span>
<a name="l01685"></a>01685 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_URLReference                            0xDC49</span>
<a name="l01686"></a>01686 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_LanguageLocale                          0xDC4A</span>
<a name="l01687"></a>01687 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_CopyrightInformation                    0xDC4B</span>
<a name="l01688"></a>01688 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Source                                  0xDC4C</span>
<a name="l01689"></a>01689 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_OriginLocation                          0xDC4D</span>
<a name="l01690"></a>01690 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_DateAdded                               0xDC4E</span>
<a name="l01691"></a>01691 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_NonConsumable                           0xDC4F</span>
<a name="l01692"></a>01692 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_CorruptOrUnplayable                     0xDC50</span>
<a name="l01693"></a>01693 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ProducerSerialNumber                    0xDC51</span>
<a name="l01694"></a>01694 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_RepresentativeSampleFormat              0xDC81</span>
<a name="l01695"></a>01695 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_RepresentativeSampleSize                0xDC82</span>
<a name="l01696"></a>01696 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_RepresentativeSampleHeight              0xDC83</span>
<a name="l01697"></a>01697 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_RepresentativeSampleWidth               0xDC84</span>
<a name="l01698"></a>01698 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_RepresentativeSampleDuration            0xDC85</span>
<a name="l01699"></a>01699 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_RepresentativeSampleData                0xDC86</span>
<a name="l01700"></a>01700 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Width                                   0xDC87</span>
<a name="l01701"></a>01701 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Height                                  0xDC88</span>
<a name="l01702"></a>01702 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Duration                                0xDC89</span>
<a name="l01703"></a>01703 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Rating                                  0xDC8A</span>
<a name="l01704"></a>01704 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Track                                   0xDC8B</span>
<a name="l01705"></a>01705 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Genre                                   0xDC8C</span>
<a name="l01706"></a>01706 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Credits                                 0xDC8D</span>
<a name="l01707"></a>01707 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Lyrics                                  0xDC8E</span>
<a name="l01708"></a>01708 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_SubscriptionContentID                   0xDC8F</span>
<a name="l01709"></a>01709 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ProducedBy                              0xDC90</span>
<a name="l01710"></a>01710 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_UseCount                                0xDC91</span>
<a name="l01711"></a>01711 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_SkipCount                               0xDC92</span>
<a name="l01712"></a>01712 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_LastAccessed                            0xDC93</span>
<a name="l01713"></a>01713 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ParentalRating                          0xDC94</span>
<a name="l01714"></a>01714 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_MetaGenre                               0xDC95</span>
<a name="l01715"></a>01715 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Composer                                0xDC96</span>
<a name="l01716"></a>01716 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_EffectiveRating                         0xDC97</span>
<a name="l01717"></a>01717 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Subtitle                                0xDC98</span>
<a name="l01718"></a>01718 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_OriginalReleaseDate                     0xDC99</span>
<a name="l01719"></a>01719 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_AlbumName                               0xDC9A</span>
<a name="l01720"></a>01720 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_AlbumArtist                             0xDC9B</span>
<a name="l01721"></a>01721 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Mood                                    0xDC9C</span>
<a name="l01722"></a>01722 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_DRMStatus                               0xDC9D</span>
<a name="l01723"></a>01723 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_SubDescription                          0xDC9E</span>
<a name="l01724"></a>01724 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_IsCropped                               0xDCD1</span>
<a name="l01725"></a>01725 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_IsColorCorrected                        0xDCD2</span>
<a name="l01726"></a>01726 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ImageBitDepth                           0xDCD3</span>
<a name="l01727"></a>01727 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Fnumber                                 0xDCD4</span>
<a name="l01728"></a>01728 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ExposureTime                            0xDCD5</span>
<a name="l01729"></a>01729 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ExposureIndex                           0xDCD6</span>
<a name="l01730"></a>01730 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_DisplayName                             0xDCE0</span>
<a name="l01731"></a>01731 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_BodyText                                0xDCE1</span>
<a name="l01732"></a>01732 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Subject                                 0xDCE2</span>
<a name="l01733"></a>01733 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Priority                                0xDCE3</span>
<a name="l01734"></a>01734 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_GivenName                               0xDD00</span>
<a name="l01735"></a>01735 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_MiddleNames                             0xDD01</span>
<a name="l01736"></a>01736 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_FamilyName                              0xDD02</span>
<a name="l01737"></a>01737 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Prefix                                  0xDD03</span>
<a name="l01738"></a>01738 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Suffix                                  0xDD04</span>
<a name="l01739"></a>01739 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PhoneticGivenName                       0xDD05</span>
<a name="l01740"></a>01740 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PhoneticFamilyName                      0xDD06</span>
<a name="l01741"></a>01741 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_EmailPrimary                            0xDD07</span>
<a name="l01742"></a>01742 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_EmailPersonal1                          0xDD08</span>
<a name="l01743"></a>01743 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_EmailPersonal2                          0xDD09</span>
<a name="l01744"></a>01744 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_EmailBusiness1                          0xDD0A</span>
<a name="l01745"></a>01745 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_EmailBusiness2                          0xDD0B</span>
<a name="l01746"></a>01746 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_EmailOthers                             0xDD0C</span>
<a name="l01747"></a>01747 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PhoneNumberPrimary                      0xDD0D</span>
<a name="l01748"></a>01748 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PhoneNumberPersonal                     0xDD0E</span>
<a name="l01749"></a>01749 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PhoneNumberPersonal2                    0xDD0F</span>
<a name="l01750"></a>01750 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PhoneNumberBusiness                     0xDD10</span>
<a name="l01751"></a>01751 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PhoneNumberBusiness2                    0xDD11</span>
<a name="l01752"></a>01752 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PhoneNumberMobile                       0xDD12</span>
<a name="l01753"></a>01753 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PhoneNumberMobile2                      0xDD13</span>
<a name="l01754"></a>01754 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_FaxNumberPrimary                        0xDD14</span>
<a name="l01755"></a>01755 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_FaxNumberPersonal                       0xDD15</span>
<a name="l01756"></a>01756 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_FaxNumberBusiness                       0xDD16</span>
<a name="l01757"></a>01757 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PagerNumber                             0xDD17</span>
<a name="l01758"></a>01758 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PhoneNumberOthers                       0xDD18</span>
<a name="l01759"></a>01759 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PrimaryWebAddress                       0xDD19</span>
<a name="l01760"></a>01760 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PersonalWebAddress                      0xDD1A</span>
<a name="l01761"></a>01761 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_BusinessWebAddress                      0xDD1B</span>
<a name="l01762"></a>01762 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_InstantMessengerAddress                 0xDD1C</span>
<a name="l01763"></a>01763 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_InstantMessengerAddress2                0xDD1D</span>
<a name="l01764"></a>01764 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_InstantMessengerAddress3                0xDD1E</span>
<a name="l01765"></a>01765 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressPersonalFull               0xDD1F</span>
<a name="l01766"></a>01766 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressPersonalFullLine1          0xDD20</span>
<a name="l01767"></a>01767 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressPersonalFullLine2          0xDD21</span>
<a name="l01768"></a>01768 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressPersonalFullCity           0xDD22</span>
<a name="l01769"></a>01769 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressPersonalFullRegion         0xDD23</span>
<a name="l01770"></a>01770 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressPersonalFullPostalCode     0xDD24</span>
<a name="l01771"></a>01771 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressPersonalFullCountry        0xDD25</span>
<a name="l01772"></a>01772 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressBusinessFull               0xDD26</span>
<a name="l01773"></a>01773 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressBusinessLine1              0xDD27</span>
<a name="l01774"></a>01774 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressBusinessLine2              0xDD28</span>
<a name="l01775"></a>01775 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressBusinessCity               0xDD29</span>
<a name="l01776"></a>01776 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressBusinessRegion             0xDD2A</span>
<a name="l01777"></a>01777 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressBusinessPostalCode         0xDD2B</span>
<a name="l01778"></a>01778 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressBusinessCountry            0xDD2C</span>
<a name="l01779"></a>01779 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressOtherFull                  0xDD2D</span>
<a name="l01780"></a>01780 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressOtherLine1                 0xDD2E</span>
<a name="l01781"></a>01781 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressOtherLine2                 0xDD2F</span>
<a name="l01782"></a>01782 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressOtherCity                  0xDD30</span>
<a name="l01783"></a>01783 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressOtherRegion                0xDD31</span>
<a name="l01784"></a>01784 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressOtherPostalCode            0xDD32</span>
<a name="l01785"></a>01785 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PostalAddressOtherCountry               0xDD33</span>
<a name="l01786"></a>01786 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_OrganizationName                        0xDD34</span>
<a name="l01787"></a>01787 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_PhoneticOrganizationName                0xDD35</span>
<a name="l01788"></a>01788 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Role                                    0xDD36</span>
<a name="l01789"></a>01789 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Birthdate                               0xDD37</span>
<a name="l01790"></a>01790 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_MessageTo                               0xDD40</span>
<a name="l01791"></a>01791 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_MessageCC                               0xDD41</span>
<a name="l01792"></a>01792 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_MessageBCC                              0xDD42</span>
<a name="l01793"></a>01793 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_MessageRead                             0xDD43</span>
<a name="l01794"></a>01794 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_MessageReceivedTime                     0xDD44</span>
<a name="l01795"></a>01795 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_MessageSender                           0xDD45</span>
<a name="l01796"></a>01796 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ActivityBeginTime                       0xDD50</span>
<a name="l01797"></a>01797 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ActivityEndTime                         0xDD51</span>
<a name="l01798"></a>01798 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ActivityLocation                        0xDD52</span>
<a name="l01799"></a>01799 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ActivityRequiredAttendees               0xDD54</span>
<a name="l01800"></a>01800 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ActivityOptionalAttendees               0xDD55</span>
<a name="l01801"></a>01801 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ActivityResources                       0xDD56</span>
<a name="l01802"></a>01802 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ActivityAccepted                        0xDD57</span>
<a name="l01803"></a>01803 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Owner                                   0xDD5D</span>
<a name="l01804"></a>01804 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Editor                                  0xDD5E</span>
<a name="l01805"></a>01805 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_Webmaster                               0xDD5F</span>
<a name="l01806"></a>01806 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_URLSource                               0xDD60</span>
<a name="l01807"></a>01807 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_URLDestination                          0xDD61</span>
<a name="l01808"></a>01808 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_TimeBookmark                            0xDD62</span>
<a name="l01809"></a>01809 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ObjectBookmark                          0xDD63</span>
<a name="l01810"></a>01810 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ByteBookmark                            0xDD64</span>
<a name="l01811"></a>01811 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_LastBuildDate                           0xDD70</span>
<a name="l01812"></a>01812 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_TimetoLive                              0xDD71</span>
<a name="l01813"></a>01813 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_MediaGUID                               0xDD72</span>
<a name="l01814"></a>01814 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_TotalBitRate                            0xDE91</span>
<a name="l01815"></a>01815 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_BitRateType                             0xDE92</span>
<a name="l01816"></a>01816 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_SampleRate                              0xDE93</span>
<a name="l01817"></a>01817 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_NumberOfChannels                        0xDE94</span>
<a name="l01818"></a>01818 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_AudioBitDepth                           0xDE95</span>
<a name="l01819"></a>01819 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_ScanDepth                               0xDE97</span>
<a name="l01820"></a>01820 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_AudioWAVECodec                          0xDE99</span>
<a name="l01821"></a>01821 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_AudioBitRate                            0xDE9A</span>
<a name="l01822"></a>01822 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_VideoFourCCCodec                        0xDE9B</span>
<a name="l01823"></a>01823 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_VideoBitRate                            0xDE9C</span>
<a name="l01824"></a>01824 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_FramesPerThousandSeconds                0xDE9D</span>
<a name="l01825"></a>01825 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_KeyFrameDistance                        0xDE9E</span>
<a name="l01826"></a>01826 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_BufferSize                              0xDE9F</span>
<a name="l01827"></a>01827 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_EncodingQuality                         0xDEA0</span>
<a name="l01828"></a>01828 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_EncodingProfile                         0xDEA1</span>
<a name="l01829"></a>01829 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPC_BuyFlag                                 0xD901</span>
<a name="l01830"></a>01830 <span class="preprocessor"></span>
<a name="l01831"></a>01831 <span class="comment">/* WiFi Provisioning MTP Extension property codes */</span>
<a name="l01832"></a>01832 <span class="preprocessor">#define PTP_OPC_WirelessConfigurationFile               0xB104</span>
<a name="l01833"></a>01833 <span class="preprocessor"></span>
<a name="l01834"></a>01834 <span class="comment">/* Device Property Form Flag */</span>
<a name="l01835"></a>01835 
<a name="l01836"></a>01836 <span class="preprocessor">#define PTP_DPFF_None                   0x00</span>
<a name="l01837"></a>01837 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPFF_Range                  0x01</span>
<a name="l01838"></a>01838 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPFF_Enumeration            0x02</span>
<a name="l01839"></a>01839 <span class="preprocessor"></span>
<a name="l01840"></a>01840 <span class="comment">/* Object Property Codes used by MTP (first 3 are same as DPFF codes) */</span>
<a name="l01841"></a>01841 <span class="preprocessor">#define PTP_OPFF_None                   0x00</span>
<a name="l01842"></a>01842 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPFF_Range                  0x01</span>
<a name="l01843"></a>01843 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPFF_Enumeration            0x02</span>
<a name="l01844"></a>01844 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPFF_DateTime               0x03</span>
<a name="l01845"></a>01845 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPFF_FixedLengthArray       0x04</span>
<a name="l01846"></a>01846 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPFF_RegularExpression      0x05</span>
<a name="l01847"></a>01847 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPFF_ByteArray              0x06</span>
<a name="l01848"></a>01848 <span class="preprocessor"></span><span class="preprocessor">#define PTP_OPFF_LongString             0xFF</span>
<a name="l01849"></a>01849 <span class="preprocessor"></span>
<a name="l01850"></a>01850 <span class="comment">/* Device Property GetSet type */</span>
<a name="l01851"></a>01851 <span class="preprocessor">#define PTP_DPGS_Get                    0x00</span>
<a name="l01852"></a>01852 <span class="preprocessor"></span><span class="preprocessor">#define PTP_DPGS_GetSet                 0x01</span>
<a name="l01853"></a>01853 <span class="preprocessor"></span>
<a name="l01854"></a>01854 <span class="comment">/* Glue stuff starts here */</span>
<a name="l01855"></a>01855 
<a name="l01856"></a>01856 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPParams.html">_PTPParams</a> <a class="code" href="struct__PTPParams.html">PTPParams</a>;
<a name="l01857"></a>01857 
<a name="l01858"></a>01858 
<a name="l01859"></a>01859 <span class="keyword">typedef</span> uint16_t (* PTPDataGetFunc)     (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">void</span>*priv,
<a name="l01860"></a>01860                                         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> wantlen,
<a name="l01861"></a>01861                                         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *data, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *gotlen);
<a name="l01862"></a>01862 
<a name="l01863"></a>01863 <span class="keyword">typedef</span> uint16_t (* PTPDataPutFunc)     (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">void</span>*priv,
<a name="l01864"></a>01864                                         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> sendlen,
<a name="l01865"></a>01865                                         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *data, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *putlen);
<a name="l01866"></a><a class="code" href="struct__PTPDataHandler.html">01866</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPDataHandler.html">_PTPDataHandler</a> {
<a name="l01867"></a>01867         PTPDataGetFunc          getfunc;
<a name="l01868"></a>01868         PTPDataPutFunc          putfunc;
<a name="l01869"></a>01869         <span class="keywordtype">void</span>                    *priv;
<a name="l01870"></a>01870 } <a class="code" href="struct__PTPDataHandler.html">PTPDataHandler</a>;
<a name="l01871"></a>01871 
<a name="l01872"></a>01872 <span class="comment">/*</span>
<a name="l01873"></a>01873 <span class="comment"> * This functions take PTP oriented arguments and send them over an</span>
<a name="l01874"></a>01874 <span class="comment"> * appropriate data layer doing byteorder conversion accordingly.</span>
<a name="l01875"></a>01875 <span class="comment"> */</span>
<a name="l01876"></a>01876 <span class="keyword">typedef</span> uint16_t (* PTPIOSendReq)       (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* req);
<a name="l01877"></a>01877 <span class="keyword">typedef</span> uint16_t (* PTPIOSendData)      (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* ptp,
<a name="l01878"></a>01878                                          <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> size, <a class="code" href="struct__PTPDataHandler.html">PTPDataHandler</a>*getter);
<a name="l01879"></a>01879 
<a name="l01880"></a>01880 <span class="keyword">typedef</span> uint16_t (* PTPIOGetResp)       (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* resp);
<a name="l01881"></a>01881 <span class="keyword">typedef</span> uint16_t (* PTPIOGetData)       (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* ptp,
<a name="l01882"></a>01882                                          <a class="code" href="struct__PTPDataHandler.html">PTPDataHandler</a> *putter);
<a name="l01883"></a>01883 <span class="keyword">typedef</span> uint16_t (* PTPIOCancelReq)     (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t transaction_id);
<a name="l01884"></a>01884 
<a name="l01885"></a>01885 <span class="comment">/* debug functions */</span>
<a name="l01886"></a>01886 <span class="keyword">typedef</span> void (* PTPErrorFunc) (<span class="keywordtype">void</span> *data, <span class="keyword">const</span> <span class="keywordtype">char</span> *format, va_list args)
<a name="l01887"></a>01887 #<span class="keywordflow">if</span> (__GNUC__ &gt;= 3)
<a name="l01888"></a>01888         __attribute__((__format__(printf,2,0)))
<a name="l01889"></a>01889 <span class="preprocessor">#endif</span>
<a name="l01890"></a>01890 <span class="preprocessor"></span>;
<a name="l01891"></a>01891 <span class="keyword">typedef</span> void (* PTPDebugFunc) (<span class="keywordtype">void</span> *data, <span class="keyword">const</span> <span class="keywordtype">char</span> *format, va_list args)
<a name="l01892"></a>01892 #<span class="keywordflow">if</span> (__GNUC__ &gt;= 3)
<a name="l01893"></a>01893         __attribute__((__format__(printf,2,0)))
<a name="l01894"></a>01894 <span class="preprocessor">#endif</span>
<a name="l01895"></a>01895 <span class="preprocessor"></span>;
<a name="l01896"></a>01896 
<a name="l01897"></a><a class="code" href="struct__PTPObject.html">01897</a> <span class="keyword">struct </span><a class="code" href="struct__PTPObject.html">_PTPObject</a> {
<a name="l01898"></a>01898         uint32_t        oid;
<a name="l01899"></a>01899         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    flags;
<a name="l01900"></a>01900 <span class="preprocessor">#define PTPOBJECT_OBJECTINFO_LOADED     (1&lt;&lt;0)</span>
<a name="l01901"></a>01901 <span class="preprocessor"></span><span class="preprocessor">#define PTPOBJECT_CANONFLAGS_LOADED     (1&lt;&lt;1)</span>
<a name="l01902"></a>01902 <span class="preprocessor"></span><span class="preprocessor">#define PTPOBJECT_MTPPROPLIST_LOADED    (1&lt;&lt;2)</span>
<a name="l01903"></a>01903 <span class="preprocessor"></span><span class="preprocessor">#define PTPOBJECT_DIRECTORY_LOADED      (1&lt;&lt;3)</span>
<a name="l01904"></a>01904 <span class="preprocessor"></span><span class="preprocessor">#define PTPOBJECT_PARENTOBJECT_LOADED   (1&lt;&lt;4)</span>
<a name="l01905"></a>01905 <span class="preprocessor"></span><span class="preprocessor">#define PTPOBJECT_STORAGEID_LOADED      (1&lt;&lt;5)</span>
<a name="l01906"></a>01906 <span class="preprocessor"></span>
<a name="l01907"></a>01907         <a class="code" href="struct__PTPObjectInfo.html">PTPObjectInfo</a>   oi;
<a name="l01908"></a>01908         uint32_t        canon_flags;
<a name="l01909"></a>01909         <a class="code" href="struct__MTPProperties.html">MTPProperties</a>   *mtpprops;
<a name="l01910"></a>01910         <span class="keywordtype">int</span>             nrofmtpprops;
<a name="l01911"></a>01911 };
<a name="l01912"></a>01912 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PTPObject.html">_PTPObject</a> <a class="code" href="struct__PTPObject.html">PTPObject</a>;
<a name="l01913"></a>01913 
<a name="l01914"></a><a class="code" href="struct__PTPParams.html">01914</a> <span class="keyword">struct </span><a class="code" href="struct__PTPParams.html">_PTPParams</a> {
<a name="l01915"></a>01915         <span class="comment">/* device flags */</span>
<a name="l01916"></a>01916         uint32_t        device_flags;
<a name="l01917"></a>01917 
<a name="l01918"></a>01918         <span class="comment">/* data layer byteorder */</span>
<a name="l01919"></a>01919         uint8_t         byteorder;
<a name="l01920"></a>01920         uint16_t        maxpacketsize;
<a name="l01921"></a>01921 
<a name="l01922"></a>01922         <span class="comment">/* PTP IO: Custom IO functions */</span>
<a name="l01923"></a>01923         PTPIOSendReq    sendreq_func;
<a name="l01924"></a>01924         PTPIOSendData   senddata_func;
<a name="l01925"></a>01925         PTPIOGetResp    getresp_func;
<a name="l01926"></a>01926         PTPIOGetData    getdata_func;
<a name="l01927"></a>01927         PTPIOGetResp    event_check;
<a name="l01928"></a>01928         PTPIOGetResp    event_wait;
<a name="l01929"></a>01929         PTPIOCancelReq  cancelreq_func;
<a name="l01930"></a>01930 
<a name="l01931"></a>01931         <span class="comment">/* Custom error and debug function */</span>
<a name="l01932"></a>01932         PTPErrorFunc    error_func;
<a name="l01933"></a>01933         PTPDebugFunc    debug_func;
<a name="l01934"></a>01934 
<a name="l01935"></a>01935         <span class="comment">/* Data passed to above functions */</span>
<a name="l01936"></a>01936         <span class="keywordtype">void</span>            *data;
<a name="l01937"></a>01937 
<a name="l01938"></a>01938         <span class="comment">/* ptp transaction ID */</span>
<a name="l01939"></a>01939         uint32_t        transaction_id;
<a name="l01940"></a>01940         <span class="comment">/* ptp session ID */</span>
<a name="l01941"></a>01941         uint32_t        session_id;
<a name="l01942"></a>01942 
<a name="l01943"></a>01943         <span class="comment">/* PTP IO: if we have MTP style split header/data transfers */</span>
<a name="l01944"></a>01944         <span class="keywordtype">int</span>             split_header_data;
<a name="l01945"></a>01945 
<a name="l01946"></a>01946         <span class="comment">/* PTP: internal structures used by ptp driver */</span>
<a name="l01947"></a>01947         <a class="code" href="struct__PTPObject.html">PTPObject</a>       *objects;
<a name="l01948"></a>01948         <span class="keywordtype">int</span>             nrofobjects;
<a name="l01949"></a>01949 
<a name="l01950"></a>01950         <a class="code" href="struct__PTPDeviceInfo.html">PTPDeviceInfo</a>   deviceinfo;
<a name="l01951"></a>01951 
<a name="l01952"></a>01952         <span class="comment">/* PTP: the current event queue */</span>
<a name="l01953"></a>01953         <a class="code" href="struct__PTPContainer.html">PTPContainer</a>    *events;
<a name="l01954"></a>01954         <span class="keywordtype">int</span>             nrofevents;
<a name="l01955"></a>01955 
<a name="l01956"></a>01956         <span class="comment">/* PTP: Canon specific flags list */</span>
<a name="l01957"></a>01957         <a class="code" href="struct__PTPCanon__Property.html">PTPCanon_Property</a>       *canon_props;
<a name="l01958"></a>01958         <span class="keywordtype">int</span>                     nrofcanon_props;
<a name="l01959"></a>01959         <span class="keywordtype">int</span>                     canon_viewfinder_on;
<a name="l01960"></a>01960 
<a name="l01961"></a>01961         <span class="comment">/* PTP: Canon EOS event queue */</span>
<a name="l01962"></a>01962         <a class="code" href="struct__PTPCanon__changes__entry.html">PTPCanon_changes_entry</a>  *backlogentries;
<a name="l01963"></a>01963         <span class="keywordtype">int</span>                     nrofbacklogentries;
<a name="l01964"></a>01964         <span class="keywordtype">int</span>                     eos_captureenabled;
<a name="l01965"></a>01965 
<a name="l01966"></a>01966         <span class="comment">/* PTP: Wifi profiles */</span>
<a name="l01967"></a>01967         uint8_t         wifi_profiles_version;
<a name="l01968"></a>01968         uint8_t         wifi_profiles_number;
<a name="l01969"></a>01969         <a class="code" href="struct__PTPNIKONWifiProfile.html">PTPNIKONWifiProfile</a> *wifi_profiles;
<a name="l01970"></a>01970 
<a name="l01971"></a>01971         <span class="comment">/* IO: PTP/IP related data */</span>
<a name="l01972"></a>01972         <span class="keywordtype">int</span>             cmdfd, evtfd;
<a name="l01973"></a>01973         uint8_t         cameraguid[16];
<a name="l01974"></a>01974         uint32_t        eventpipeid;
<a name="l01975"></a>01975         <span class="keywordtype">char</span>            *cameraname;
<a name="l01976"></a>01976 
<a name="l01977"></a>01977 <span class="preprocessor">#ifdef HAVE_ICONV</span>
<a name="l01978"></a>01978 <span class="preprocessor"></span>        <span class="comment">/* PTP: iconv converters */</span>
<a name="l01979"></a>01979         iconv_t cd_locale_to_ucs2;
<a name="l01980"></a>01980         iconv_t cd_ucs2_to_locale;
<a name="l01981"></a>01981 <span class="preprocessor">#endif</span>
<a name="l01982"></a>01982 <span class="preprocessor"></span>
<a name="l01983"></a>01983         <span class="comment">/* IO: Sometimes the response packet get send in the dataphase</span>
<a name="l01984"></a>01984 <span class="comment">         * too. This only happens for a Samsung player now.</span>
<a name="l01985"></a>01985 <span class="comment">         */</span>
<a name="l01986"></a>01986         uint8_t         *response_packet;
<a name="l01987"></a>01987         uint16_t        response_packet_size;
<a name="l01988"></a>01988 };
<a name="l01989"></a>01989 
<a name="l01990"></a>01990 <span class="comment">/* last, but not least - ptp functions */</span>
<a name="l01991"></a>01991 uint16_t ptp_usb_sendreq        (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* req);
<a name="l01992"></a>01992 uint16_t ptp_usb_senddata       (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* ptp,
<a name="l01993"></a>01993                                  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> size, <a class="code" href="struct__PTPDataHandler.html">PTPDataHandler</a> *handler);
<a name="l01994"></a>01994 uint16_t ptp_usb_getresp        (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* resp);
<a name="l01995"></a>01995 uint16_t ptp_usb_getdata        (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* ptp, 
<a name="l01996"></a>01996                                  <a class="code" href="struct__PTPDataHandler.html">PTPDataHandler</a> *handler);
<a name="l01997"></a>01997 uint16_t ptp_usb_event_check    (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* event);
<a name="l01998"></a>01998 uint16_t ptp_usb_event_wait     (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* event);
<a name="l01999"></a>01999 
<a name="l02000"></a>02000 uint16_t ptp_usb_control_get_extended_event_data (<a class="code" href="struct__PTPParams.html">PTPParams</a> *params, <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> *size);
<a name="l02001"></a>02001 uint16_t ptp_usb_control_device_reset_request (<a class="code" href="struct__PTPParams.html">PTPParams</a> *params);
<a name="l02002"></a>02002 uint16_t ptp_usb_control_get_device_status (<a class="code" href="struct__PTPParams.html">PTPParams</a> *params, <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> *size);
<a name="l02003"></a>02003 uint16_t ptp_usb_control_cancel_request (<a class="code" href="struct__PTPParams.html">PTPParams</a> *params, uint32_t transid);
<a name="l02004"></a>02004 
<a name="l02005"></a>02005 
<a name="l02006"></a>02006 <span class="keywordtype">int</span>      ptp_ptpip_connect      (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keyword">const</span> <span class="keywordtype">char</span> *port);
<a name="l02007"></a>02007 uint16_t ptp_ptpip_sendreq      (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* req);
<a name="l02008"></a>02008 uint16_t ptp_ptpip_senddata     (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* ptp,
<a name="l02009"></a>02009                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> size, <a class="code" href="struct__PTPDataHandler.html">PTPDataHandler</a> *handler);
<a name="l02010"></a>02010 uint16_t ptp_ptpip_getresp      (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* resp);
<a name="l02011"></a>02011 uint16_t ptp_ptpip_getdata      (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* ptp, 
<a name="l02012"></a>02012                                  <a class="code" href="struct__PTPDataHandler.html">PTPDataHandler</a> *handler);
<a name="l02013"></a>02013 uint16_t ptp_ptpip_event_wait   (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* event);
<a name="l02014"></a>02014 uint16_t ptp_ptpip_event_check  (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* event);
<a name="l02015"></a>02015 
<a name="l02016"></a>02016 uint16_t ptp_getdeviceinfo      (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPDeviceInfo.html">PTPDeviceInfo</a>* deviceinfo);
<a name="l02017"></a>02017 
<a name="l02018"></a>02018 uint16_t ptp_generic_no_data    (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t opcode, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cnt, ...);
<a name="l02019"></a>02019 
<a name="l02020"></a>02020 uint16_t ptp_opensession        (<a class="code" href="struct__PTPParams.html">PTPParams</a> *params, uint32_t session);
<a name="l02021"></a>02021 
<a name="l02030"></a>02030 <span class="preprocessor">#define ptp_closesession(params) ptp_generic_no_data(params,PTP_OC_CloseSession,0)</span>
<a name="l02031"></a>02031 <span class="preprocessor"></span>
<a name="l02040"></a>02040 <span class="preprocessor">#define ptp_resetdevice(params) ptp_generic_no_data(params,PTP_OC_ResetDevice,0)</span>
<a name="l02041"></a>02041 <span class="preprocessor"></span>
<a name="l02042"></a>02042 uint16_t ptp_getstorageids      (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPStorageIDs.html">PTPStorageIDs</a>* storageids);
<a name="l02043"></a>02043 uint16_t ptp_getstorageinfo     (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t storageid,
<a name="l02044"></a>02044                                 <a class="code" href="struct__PTPStorageInfo.html">PTPStorageInfo</a>* storageinfo);
<a name="l02054"></a>02054 <span class="preprocessor">#define ptp_formatstore(params,storageid) ptp_generic_no_data(params,PTP_OC_FormatStore,1,storageid)</span>
<a name="l02055"></a>02055 <span class="preprocessor"></span>
<a name="l02056"></a>02056 uint16_t ptp_getobjecthandles   (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t storage,
<a name="l02057"></a>02057                                 uint32_t objectformatcode,
<a name="l02058"></a>02058                                 uint32_t associationOH,
<a name="l02059"></a>02059                                 <a class="code" href="struct__PTPObjectHandles.html">PTPObjectHandles</a>* objecthandles);
<a name="l02060"></a>02060 
<a name="l02061"></a>02061 uint16_t ptp_getnumobjects      (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t storage,
<a name="l02062"></a>02062                                 uint32_t objectformatcode,
<a name="l02063"></a>02063                                 uint32_t associationOH,
<a name="l02064"></a>02064                                 uint32_t* numobs);
<a name="l02065"></a>02065 
<a name="l02066"></a>02066 uint16_t ptp_getobjectinfo      (<a class="code" href="struct__PTPParams.html">PTPParams</a> *params, uint32_t handle,
<a name="l02067"></a>02067                                 <a class="code" href="struct__PTPObjectInfo.html">PTPObjectInfo</a>* objectinfo);
<a name="l02068"></a>02068 
<a name="l02069"></a>02069 uint16_t ptp_getobject          (<a class="code" href="struct__PTPParams.html">PTPParams</a> *params, uint32_t handle,
<a name="l02070"></a>02070                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>** <span class="keywordtype">object</span>);
<a name="l02071"></a>02071 uint16_t ptp_getobject_tofd     (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t handle, <span class="keywordtype">int</span> fd);
<a name="l02072"></a>02072 uint16_t ptp_getobject_to_handler (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t handle, <a class="code" href="struct__PTPDataHandler.html">PTPDataHandler</a>*);
<a name="l02073"></a>02073 uint16_t ptp_getpartialobject   (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t handle, uint32_t offset,
<a name="l02074"></a>02074                                 uint32_t maxbytes, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>** <span class="keywordtype">object</span>);
<a name="l02075"></a>02075 uint16_t ptp_getthumb           (<a class="code" href="struct__PTPParams.html">PTPParams</a> *params, uint32_t handle,
<a name="l02076"></a>02076                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>** <span class="keywordtype">object</span>);
<a name="l02077"></a>02077 
<a name="l02078"></a>02078 uint16_t ptp_deleteobject       (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t handle,
<a name="l02079"></a>02079                                 uint32_t ofc);
<a name="l02080"></a>02080 
<a name="l02081"></a>02081 uint16_t ptp_sendobjectinfo     (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t* store,
<a name="l02082"></a>02082                                 uint32_t* parenthandle, uint32_t* handle,
<a name="l02083"></a>02083                                 <a class="code" href="struct__PTPObjectInfo.html">PTPObjectInfo</a>* objectinfo);
<a name="l02094"></a>02094 <span class="preprocessor">#define ptp_setobjectprotection(params,oid,newprot) ptp_generic_no_data(params,PTP_OC_SetObjectProtection,2,oid,newprot)</span>
<a name="l02095"></a>02095 <span class="preprocessor"></span>uint16_t ptp_sendobject         (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* <span class="keywordtype">object</span>,
<a name="l02096"></a>02096                                  uint32_t size);
<a name="l02097"></a>02097 uint16_t ptp_sendobject_fromfd  (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">int</span> fd, uint32_t size);
<a name="l02098"></a>02098 uint16_t ptp_sendobject_from_handler  (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPDataHandler.html">PTPDataHandler</a>*, uint32_t size);
<a name="l02113"></a>02113 <span class="preprocessor">#define ptp_initiatecapture(params,storageid,ofc) ptp_generic_no_data(params,PTP_OC_InitiateCapture,2,storageid,ofc)</span>
<a name="l02114"></a>02114 <span class="preprocessor"></span>
<a name="l02115"></a>02115 uint16_t ptp_getdevicepropdesc  (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t propcode,
<a name="l02116"></a>02116                                 <a class="code" href="struct__PTPDevicePropDesc.html">PTPDevicePropDesc</a> *devicepropertydesc);
<a name="l02117"></a>02117 uint16_t ptp_getdevicepropvalue (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t propcode,
<a name="l02118"></a>02118                                 <a class="code" href="union__PTPPropertyValue.html">PTPPropertyValue</a>* value, uint16_t datatype);
<a name="l02119"></a>02119 uint16_t ptp_setdevicepropvalue (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t propcode,
<a name="l02120"></a>02120                                 <a class="code" href="union__PTPPropertyValue.html">PTPPropertyValue</a>* value, uint16_t datatype);
<a name="l02121"></a>02121 
<a name="l02122"></a>02122 
<a name="l02123"></a>02123 uint16_t ptp_check_event (<a class="code" href="struct__PTPParams.html">PTPParams</a> *params);
<a name="l02124"></a>02124 <span class="keywordtype">int</span> ptp_get_one_event (<a class="code" href="struct__PTPParams.html">PTPParams</a> *params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a> *evt);
<a name="l02125"></a>02125 
<a name="l02126"></a>02126 <span class="comment">/* Microsoft MTP extensions */</span>
<a name="l02127"></a>02127 uint16_t ptp_mtp_getobjectpropdesc (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t opc, uint16_t ofc,
<a name="l02128"></a>02128                                 <a class="code" href="struct__PTPObjectPropDesc.html">PTPObjectPropDesc</a> *objectpropertydesc);
<a name="l02129"></a>02129 uint16_t ptp_mtp_getobjectpropvalue (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t oid, uint16_t opc, 
<a name="l02130"></a>02130                                 <a class="code" href="union__PTPPropertyValue.html">PTPPropertyValue</a> *value, uint16_t datatype);
<a name="l02131"></a>02131 uint16_t ptp_mtp_setobjectpropvalue (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t oid, uint16_t opc,
<a name="l02132"></a>02132                                 <a class="code" href="union__PTPPropertyValue.html">PTPPropertyValue</a> *value, uint16_t datatype);
<a name="l02133"></a>02133 uint16_t ptp_mtp_getobjectreferences (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t handle, uint32_t** ohArray, uint32_t* arraylen);
<a name="l02134"></a>02134 uint16_t ptp_mtp_setobjectreferences (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t handle, uint32_t* ohArray, uint32_t arraylen);
<a name="l02135"></a>02135 uint16_t ptp_mtp_getobjectproplist (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t handle, <a class="code" href="struct__MTPProperties.html">MTPProperties</a> **props, <span class="keywordtype">int</span> *nrofprops);
<a name="l02136"></a>02136 uint16_t ptp_mtp_sendobjectproplist (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t* store, uint32_t* parenthandle, uint32_t* handle,
<a name="l02137"></a>02137                                      uint16_t objecttype, uint64_t objectsize, <a class="code" href="struct__MTPProperties.html">MTPProperties</a> *props, <span class="keywordtype">int</span> nrofprops);
<a name="l02138"></a>02138 uint16_t ptp_mtp_setobjectproplist (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__MTPProperties.html">MTPProperties</a> *props, <span class="keywordtype">int</span> nrofprops);
<a name="l02139"></a>02139 
<a name="l02140"></a>02140 <span class="comment">/* Eastman Kodak extensions */</span>
<a name="l02141"></a>02141 uint16_t ptp_ek_9007 (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **serial, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *size);
<a name="l02142"></a>02142 uint16_t ptp_ek_9009 (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t*, uint32_t*);
<a name="l02143"></a>02143 uint16_t ptp_ek_900c (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **serial, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *size);
<a name="l02144"></a>02144 uint16_t ptp_ek_getserial (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **serial, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *size);
<a name="l02145"></a>02145 uint16_t ptp_ek_setserial (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *serial, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size);
<a name="l02146"></a>02146 uint16_t ptp_ek_settext (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPEKTextParams.html">PTPEKTextParams</a> *text);
<a name="l02147"></a>02147 uint16_t ptp_ek_sendfileobjectinfo (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t* store,
<a name="l02148"></a>02148                                 uint32_t* parenthandle, uint32_t* handle,
<a name="l02149"></a>02149                                 <a class="code" href="struct__PTPObjectInfo.html">PTPObjectInfo</a>* objectinfo);
<a name="l02150"></a>02150 uint16_t ptp_ek_sendfileobject  (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* <span class="keywordtype">object</span>,
<a name="l02151"></a>02151                                 uint32_t size);
<a name="l02152"></a>02152 uint16_t ptp_ek_sendfileobject_from_handler     (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPDataHandler.html">PTPDataHandler</a>*,
<a name="l02153"></a>02153                                 uint32_t size);
<a name="l02154"></a>02154 
<a name="l02155"></a>02155 <span class="comment">/* Canon PTP extensions */</span>
<a name="l02156"></a>02156 <span class="preprocessor">#define ptp_canon_9012(params) ptp_generic_no_data(params,0x9012,0)</span>
<a name="l02157"></a>02157 <span class="preprocessor"></span>uint16_t ptp_canon_gettreeinfo (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t* out);
<a name="l02158"></a>02158 uint16_t ptp_canon_gettreesize (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPCanon__directtransfer__entry.html">PTPCanon_directtransfer_entry</a>**, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*cnt);
<a name="l02159"></a>02159 uint16_t ptp_canon_getpartialobjectinfo (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t handle,
<a name="l02160"></a>02160                                 uint32_t p2, uint32_t* size, uint32_t* rp2);
<a name="l02161"></a>02161 
<a name="l02162"></a>02162 uint16_t ptp_canon_get_mac_address (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **mac);
<a name="l02175"></a>02175 <span class="preprocessor">#define ptp_canon_startshootingmode(params) ptp_generic_no_data(params,PTP_OC_CANON_InitiateReleaseControl,0)</span>
<a name="l02176"></a>02176 <span class="preprocessor"></span>
<a name="l02189"></a>02189 <span class="preprocessor">#define ptp_canon_endshootingmode(params) ptp_generic_no_data(params,PTP_OC_CANON_TerminateReleaseControl,0)</span>
<a name="l02190"></a>02190 <span class="preprocessor"></span>
<a name="l02201"></a>02201 <span class="preprocessor">#define ptp_canon_viewfinderon(params) ptp_generic_no_data(params,PTP_OC_CANON_ViewfinderOn,0)</span>
<a name="l02202"></a>02202 <span class="preprocessor"></span>
<a name="l02214"></a>02214 <span class="preprocessor">#define ptp_canon_viewfinderoff(params) ptp_generic_no_data(params,PTP_OC_CANON_ViewfinderOff,0)</span>
<a name="l02215"></a>02215 <span class="preprocessor"></span>
<a name="l02227"></a>02227 <span class="preprocessor">#define PTP_CANON_RESET_AE      0x1</span>
<a name="l02228"></a>02228 <span class="preprocessor"></span><span class="preprocessor">#define PTP_CANON_RESET_AF      0x2</span>
<a name="l02229"></a>02229 <span class="preprocessor"></span><span class="preprocessor">#define PTP_CANON_RESET_AWB     0x4</span>
<a name="l02230"></a>02230 <span class="preprocessor"></span><span class="preprocessor">#define ptp_canon_reset_aeafawb(params,flags) ptp_generic_no_data(params,PTP_OC_CANON_DoAeAfAwb,1,flags)</span>
<a name="l02231"></a>02231 <span class="preprocessor"></span>uint16_t ptp_canon_checkevent (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, 
<a name="l02232"></a>02232                                 <a class="code" href="struct__PTPContainer.html">PTPContainer</a>* event, <span class="keywordtype">int</span>* isevent);
<a name="l02245"></a>02245 <span class="preprocessor">#define ptp_canon_focuslock(params) ptp_generic_no_data(params,PTP_OC_CANON_FocusLock,0)</span>
<a name="l02246"></a>02246 <span class="preprocessor"></span>
<a name="l02258"></a>02258 <span class="preprocessor">#define ptp_canon_focusunlock(params) ptp_generic_no_data(params,PTP_OC_CANON_FocusUnlock,0)</span>
<a name="l02259"></a>02259 <span class="preprocessor"></span>
<a name="l02269"></a>02269 <span class="preprocessor">#define ptp_canon_keepdeviceon(params) ptp_generic_no_data(params,PTP_OC_CANON_KeepDeviceOn,0)</span>
<a name="l02270"></a>02270 <span class="preprocessor"></span>
<a name="l02280"></a>02280 <span class="preprocessor">#define ptp_canon_eos_keepdeviceon(params) ptp_generic_no_data(params,PTP_OC_CANON_EOS_KeepDeviceOn,0)</span>
<a name="l02281"></a>02281 <span class="preprocessor"></span>
<a name="l02298"></a>02298 <span class="preprocessor">#define ptp_canon_initiatecaptureinmemory(params) ptp_generic_no_data(params,PTP_OC_CANON_InitiateCaptureInMemory,0)</span>
<a name="l02299"></a>02299 <span class="preprocessor"></span>
<a name="l02309"></a>02309 <span class="preprocessor">#define ptp_canon_eos_requestdevicepropvalue(params,prop) ptp_generic_no_data(params,PTP_OC_CANON_EOS_RequestDevicePropValue,1,prop)</span>
<a name="l02310"></a>02310 <span class="preprocessor"></span>
<a name="l02322"></a>02322 <span class="preprocessor">#define ptp_canon_eos_capture(params) ptp_generic_no_data(params,PTP_OC_CANON_EOS_RemoteRelease,0)</span>
<a name="l02323"></a>02323 <span class="preprocessor"></span>uint16_t ptp_canon_eos_getevent (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPCanon__changes__entry.html">PTPCanon_changes_entry</a> **entries, <span class="keywordtype">int</span> *nrofentries);
<a name="l02324"></a>02324 uint16_t ptp_canon_getpartialobject (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t handle, 
<a name="l02325"></a>02325                                 uint32_t offset, uint32_t size,
<a name="l02326"></a>02326                                 uint32_t pos, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>** block, 
<a name="l02327"></a>02327                                 uint32_t* readnum);
<a name="l02328"></a>02328 uint16_t ptp_canon_getviewfinderimage (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>** image,
<a name="l02329"></a>02329                                 uint32_t* size);
<a name="l02330"></a>02330 uint16_t ptp_canon_getchanges (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t** props,
<a name="l02331"></a>02331                                 uint32_t* propnum); 
<a name="l02332"></a>02332 uint16_t ptp_canon_getobjectinfo (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t store,
<a name="l02333"></a>02333                                 uint32_t p2, uint32_t parenthandle,
<a name="l02334"></a>02334                                 uint32_t handle, 
<a name="l02335"></a>02335                                 <a class="code" href="struct__PTPCANONFolderEntry.html">PTPCANONFolderEntry</a>** entries,
<a name="l02336"></a>02336                                 uint32_t* entnum);
<a name="l02337"></a>02337 uint16_t ptp_canon_eos_getdeviceinfo (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPCanonEOSDeviceInfo.html">PTPCanonEOSDeviceInfo</a>*di);
<a name="l02348"></a>02348 <span class="preprocessor">#define ptp_canon_eos_setuilock(params) ptp_generic_no_data(params,PTP_OC_CANON_EOS_SetUILock,0)</span>
<a name="l02349"></a>02349 <span class="preprocessor"></span>
<a name="l02359"></a>02359 <span class="preprocessor">#define ptp_canon_eos_resetuilock(params) ptp_generic_no_data(params,PTP_OC_CANON_EOS_ResetUILock,0)</span>
<a name="l02360"></a>02360 <span class="preprocessor"></span>
<a name="l02370"></a>02370 <span class="preprocessor">#define ptp_canon_eos_start_viewfinder(params) ptp_generic_no_data(params,PTP_OC_CANON_EOS_InitiateViewfinder,0)</span>
<a name="l02371"></a>02371 <span class="preprocessor"></span>
<a name="l02381"></a>02381 <span class="preprocessor">#define ptp_canon_eos_end_viewfinder(params) ptp_generic_no_data(params,PTP_OC_CANON_EOS_TerminateViewfinder,0)</span>
<a name="l02382"></a>02382 <span class="preprocessor"></span>uint16_t ptp_canon_eos_get_viewfinder_image (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **data, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *size);
<a name="l02383"></a>02383 uint16_t ptp_canon_get_objecthandle_by_name (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">char</span>* name, uint32_t* objectid);
<a name="l02384"></a>02384 uint16_t ptp_canon_get_directory (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPObjectHandles.html">PTPObjectHandles</a> *handles, <a class="code" href="struct__PTPObjectInfo.html">PTPObjectInfo</a> **oinfos, uint32_t **flags);
<a name="l02395"></a>02395 <span class="preprocessor">#define ptp_canon_setobjectarchive(params,oid,flags) ptp_generic_no_data(params,PTP_OC_CANON_SetObjectArchive,2,oid,flags)</span>
<a name="l02396"></a>02396 <span class="preprocessor"></span>uint16_t ptp_canon_get_customize_data (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t themenr,
<a name="l02397"></a>02397                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **data, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *size);
<a name="l02398"></a>02398 uint16_t ptp_canon_getpairinginfo (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t nr, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>**, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*);
<a name="l02399"></a>02399 
<a name="l02400"></a>02400 uint16_t ptp_canon_eos_getstorageids (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPStorageIDs.html">PTPStorageIDs</a>* storageids);
<a name="l02401"></a>02401 uint16_t ptp_canon_eos_getstorageinfo (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t p1);
<a name="l02402"></a>02402 uint16_t ptp_canon_eos_getpartialobject (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t oid, uint32_t off, uint32_t xsize, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>**data);
<a name="l02403"></a>02403 uint16_t ptp_canon_eos_setdevicepropvalueex (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size);
<a name="l02404"></a>02404 <span class="preprocessor">#define ptp_canon_eos_setremotemode(params,p1) ptp_generic_no_data(params,PTP_OC_CANON_EOS_SetRemoteMode,1,p1)</span>
<a name="l02405"></a>02405 <span class="preprocessor"></span><span class="preprocessor">#define ptp_canon_eos_seteventmode(params,p1) ptp_generic_no_data(params,PTP_OC_CANON_EOS_SetEventMode,1,p1)</span>
<a name="l02406"></a>02406 <span class="preprocessor"></span>
<a name="l02417"></a>02417 <span class="preprocessor">#define ptp_canon_eos_transfercomplete(params,oid) ptp_generic_no_data(params,PTP_OC_CANON_EOS_TransferComplete,1,oid)</span>
<a name="l02418"></a>02418 <span class="preprocessor"></span><span class="comment">/* inHDD = %d, inLength =%d, inReset = %d */</span>
<a name="l02419"></a>02419 <span class="preprocessor">#define ptp_canon_eos_pchddcapacity(params,p1,p2,p3) ptp_generic_no_data(params,PTP_OC_CANON_EOS_PCHDDCapacity,3,p1,p2,p3)</span>
<a name="l02420"></a>02420 <span class="preprocessor"></span><span class="preprocessor">#define ptp_canon_eos_bulbstart(params) ptp_generic_no_data(params,PTP_OC_CANON_EOS_BulbStart,1)</span>
<a name="l02421"></a>02421 <span class="preprocessor"></span><span class="preprocessor">#define ptp_canon_eos_bulbend(params) ptp_generic_no_data(params,PTP_OC_CANON_EOS_BulbEnd,1)</span>
<a name="l02422"></a>02422 <span class="preprocessor"></span>uint16_t ptp_canon_eos_getdevicepropdesc (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t propcode,
<a name="l02423"></a>02423                                 <a class="code" href="struct__PTPDevicePropDesc.html">PTPDevicePropDesc</a> *devicepropertydesc);
<a name="l02424"></a>02424 uint16_t ptp_canon_eos_setdevicepropvalue (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t propcode,
<a name="l02425"></a>02425                                 <a class="code" href="union__PTPPropertyValue.html">PTPPropertyValue</a>* value, uint16_t datatype);
<a name="l02426"></a>02426 uint16_t ptp_nikon_get_vendorpropcodes (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t **props, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *size);
<a name="l02427"></a>02427 uint16_t ptp_nikon_curve_download (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, 
<a name="l02428"></a>02428                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **data, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *size);
<a name="l02429"></a>02429 uint16_t ptp_nikon_getptpipinfo (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **data, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *size);
<a name="l02430"></a>02430 uint16_t ptp_nikon_getwifiprofilelist (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params);
<a name="l02431"></a>02431 uint16_t ptp_nikon_writewifiprofile (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPNIKONWifiProfile.html">PTPNIKONWifiProfile</a>* profile);
<a name="l02443"></a>02443 <span class="preprocessor">#define ptp_nikon_deletewifiprofile(params,profilenr) ptp_generic_no_data(params,PTP_OC_NIKON_DeleteProfile,1,profilenr)</span>
<a name="l02444"></a>02444 <span class="preprocessor"></span>
<a name="l02455"></a>02455 <span class="preprocessor">#define ptp_nikon_setcontrolmode(params,mode) ptp_generic_no_data(params,PTP_OC_NIKON_SetControlMode,1,mode)</span>
<a name="l02456"></a>02456 <span class="preprocessor"></span>
<a name="l02466"></a>02466 <span class="preprocessor">#define ptp_nikon_afdrive(params) ptp_generic_no_data(params,PTP_OC_NIKON_AfDrive,0)</span>
<a name="l02467"></a>02467 <span class="preprocessor"></span>
<a name="l02477"></a>02477 <span class="preprocessor">#define ptp_canon_eos_afdrive(params) ptp_generic_no_data(params,PTP_OC_CANON_EOS_DoAf,0)</span>
<a name="l02478"></a>02478 <span class="preprocessor"></span>
<a name="l02490"></a>02490 <span class="preprocessor">#define ptp_nikon_mfdrive(params,flag,amount) ptp_generic_no_data(params,PTP_OC_NIKON_MfDrive,2,flag,amount)</span>
<a name="l02491"></a>02491 <span class="preprocessor"></span>
<a name="l02503"></a>02503 <span class="preprocessor">#define ptp_canon_eos_drivelens(params,amount) ptp_generic_no_data(params,PTP_OC_CANON_EOS_DriveLens,1,amount)</span>
<a name="l02504"></a>02504 <span class="preprocessor"></span>
<a name="l02515"></a>02515 <span class="preprocessor">#define ptp_nikon_capture(params,x) ptp_generic_no_data(params,PTP_OC_NIKON_Capture,1,x)</span>
<a name="l02516"></a>02516 <span class="preprocessor"></span>
<a name="l02526"></a>02526 <span class="preprocessor">#define ptp_nikon_capture_sdram(params) ptp_generic_no_data(params,PTP_OC_NIKON_AfCaptureSDRAM,0)</span>
<a name="l02527"></a>02527 <span class="preprocessor"></span>
<a name="l02537"></a>02537 <span class="preprocessor">#define ptp_nikon_start_liveview(params) ptp_generic_no_data(params,PTP_OC_NIKON_StartLiveView,0)</span>
<a name="l02538"></a>02538 <span class="preprocessor"></span>uint16_t ptp_nikon_get_liveview_image (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>**,<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*);
<a name="l02539"></a>02539 uint16_t ptp_nikon_get_preview_image (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>**, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*, uint32_t*);
<a name="l02550"></a>02550 <span class="preprocessor">#define ptp_nikon_end_liveview(params) ptp_generic_no_data(params,PTP_OC_NIKON_EndLiveView,0)</span>
<a name="l02551"></a>02551 <span class="preprocessor"></span>uint16_t ptp_nikon_check_event (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, <a class="code" href="struct__PTPContainer.html">PTPContainer</a> **evt, <span class="keywordtype">int</span> *evtcnt);
<a name="l02552"></a>02552 uint16_t ptp_nikon_getfileinfoinblock (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint32_t p1, uint32_t p2, uint32_t p3,
<a name="l02553"></a>02553                                         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **data, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *size);
<a name="l02565"></a>02565 <span class="preprocessor">#define ptp_nikon_device_ready(params) ptp_generic_no_data (params, PTP_OC_NIKON_DeviceReady, 0)</span>
<a name="l02566"></a>02566 <span class="preprocessor"></span>uint16_t ptp_mtp_getobjectpropssupported (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t ofc, uint32_t *propnum, uint16_t **props);
<a name="l02567"></a>02567 
<a name="l02568"></a>02568 <span class="comment">/* Non PTP protocol functions */</span>
<a name="l02569"></a>02569 <span class="keywordtype">int</span> ptp_operation_issupported   (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t operation);
<a name="l02570"></a>02570 <span class="keywordtype">int</span> ptp_event_issupported       (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t event);
<a name="l02571"></a>02571 <span class="keywordtype">int</span> ptp_property_issupported    (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t property);
<a name="l02572"></a>02572 
<a name="l02573"></a>02573 <span class="keywordtype">void</span> ptp_free_devicepropdesc    (<a class="code" href="struct__PTPDevicePropDesc.html">PTPDevicePropDesc</a>* dpd);
<a name="l02574"></a>02574 <span class="keywordtype">void</span> ptp_free_devicepropvalue   (uint16_t dt, <a class="code" href="union__PTPPropertyValue.html">PTPPropertyValue</a>* dpd);
<a name="l02575"></a>02575 <span class="keywordtype">void</span> ptp_free_objectpropdesc    (<a class="code" href="struct__PTPObjectPropDesc.html">PTPObjectPropDesc</a>* dpd);
<a name="l02576"></a>02576 <span class="keywordtype">void</span> ptp_free_params            (<a class="code" href="struct__PTPParams.html">PTPParams</a> *params);
<a name="l02577"></a>02577 <span class="keywordtype">void</span> ptp_free_objectinfo        (<a class="code" href="struct__PTPObjectInfo.html">PTPObjectInfo</a> *oi);
<a name="l02578"></a>02578 <span class="keywordtype">void</span> ptp_free_object            (<a class="code" href="struct__PTPObject.html">PTPObject</a> *oi);
<a name="l02579"></a>02579 
<a name="l02580"></a>02580 <span class="keywordtype">void</span> ptp_perror                 (<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t error);
<a name="l02581"></a>02581 
<a name="l02582"></a>02582 <span class="keyword">const</span> <span class="keywordtype">char</span>*
<a name="l02583"></a>02583 ptp_get_property_description(<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t dpc);
<a name="l02584"></a>02584 
<a name="l02585"></a>02585 <span class="keywordtype">int</span>
<a name="l02586"></a>02586 ptp_render_property_value(<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t dpc,
<a name="l02587"></a>02587                           <a class="code" href="struct__PTPDevicePropDesc.html">PTPDevicePropDesc</a> *dpd, <span class="keywordtype">int</span> length, <span class="keywordtype">char</span> *out);
<a name="l02588"></a>02588 <span class="keywordtype">int</span> ptp_render_ofc(<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t ofc, <span class="keywordtype">int</span> spaceleft, <span class="keywordtype">char</span> *txt);
<a name="l02589"></a>02589 <span class="keywordtype">int</span> ptp_render_opcode(<a class="code" href="struct__PTPParams.html">PTPParams</a>* params, uint16_t opcode, <span class="keywordtype">int</span> spaceleft, <span class="keywordtype">char</span> *txt);
<a name="l02590"></a>02590 <span class="keywordtype">int</span> ptp_render_mtp_propname(uint16_t propid, <span class="keywordtype">int</span> spaceleft, <span class="keywordtype">char</span> *txt);
<a name="l02591"></a>02591 <a class="code" href="struct__MTPProperties.html">MTPProperties</a> *ptp_get_new_object_prop_entry(<a class="code" href="struct__MTPProperties.html">MTPProperties</a> **props, <span class="keywordtype">int</span> *nrofprops);
<a name="l02592"></a>02592 <span class="keywordtype">void</span> ptp_destroy_object_prop(<a class="code" href="struct__MTPProperties.html">MTPProperties</a> *prop);
<a name="l02593"></a>02593 <span class="keywordtype">void</span> ptp_destroy_object_prop_list(<a class="code" href="struct__MTPProperties.html">MTPProperties</a> *props, <span class="keywordtype">int</span> nrofprops);
<a name="l02594"></a>02594 <a class="code" href="struct__MTPProperties.html">MTPProperties</a> *ptp_find_object_prop_in_cache(<a class="code" href="struct__PTPParams.html">PTPParams</a> *params, uint32_t <span class="keyword">const</span> handle, uint32_t <span class="keyword">const</span> attribute_id);
<a name="l02595"></a>02595 <span class="keywordtype">void</span> ptp_remove_object_from_cache(<a class="code" href="struct__PTPParams.html">PTPParams</a> *params, uint32_t handle);
<a name="l02596"></a>02596 uint16_t ptp_add_object_to_cache(<a class="code" href="struct__PTPParams.html">PTPParams</a> *params, uint32_t handle);
<a name="l02597"></a>02597 uint16_t ptp_object_want (<a class="code" href="struct__PTPParams.html">PTPParams</a> *, uint32_t handle, <span class="keywordtype">int</span> want, <a class="code" href="struct__PTPObject.html">PTPObject</a>**retob);
<a name="l02598"></a>02598 <span class="keywordtype">void</span> ptp_objects_sort (<a class="code" href="struct__PTPParams.html">PTPParams</a> *);
<a name="l02599"></a>02599 uint16_t ptp_object_find (<a class="code" href="struct__PTPParams.html">PTPParams</a> *params, uint32_t handle, <a class="code" href="struct__PTPObject.html">PTPObject</a> **retob);
<a name="l02600"></a>02600 uint16_t ptp_object_find_or_insert (<a class="code" href="struct__PTPParams.html">PTPParams</a> *params, uint32_t handle, <a class="code" href="struct__PTPObject.html">PTPObject</a> **retob);
<a name="l02601"></a>02601 <span class="comment">/* ptpip.c */</span>
<a name="l02602"></a>02602 <span class="keywordtype">void</span> <a class="code" href="libmtp_8c.html#a547f2b896a201d46fbea3f921c651f59">ptp_nikon_getptpipguid</a> (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* guid);
<a name="l02603"></a>02603 
<a name="l02604"></a>02604 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l02605"></a>02605 <span class="preprocessor"></span>}
<a name="l02606"></a>02606 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
<a name="l02607"></a>02607 
<a name="l02608"></a>02608 <span class="preprocessor">#endif </span><span class="comment">/* __PTP_H__ */</span>
</pre></div></div>
<hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
</body>
</html>