Home | History | Annotate | Download | only in libmtp
      1 2009-09-12  Linus Walleij <triad (a] df.lth.se>
      2 
      3 	* configure.ac: bump version to libmtp 1.0.1 and release!
      4 	* src/Makefile.am: bump soversion to libmtp.so.8.3.1
      5 
      6 2009-09-11  Linus Walleij <triad (a] df.lth.se>
      7 
      8 	* src/music-players.h: tag all SONY NWZ walkmen with
      9 	  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST.
     10 
     11 2009-08-27  Linus Walleij <triad (a] df.lth.se>
     12 
     13 	* src/libmtp.c: modernize the album retrieveal functions
     14 	  so they work just as nicely as the track/playlist etc
     15 	  functions. Triggered by Nyalls excellent bug report that
     16 	  showed how libmtp tried to get "composer" info for an
     17 	  album eventhough the device didn't support it.
     18 
     19 2009-08-27  Linus Walleij <triad (a] df.lth.se>
     20 
     21 	* src/libmtp.c: bugfixes again...
     22 
     23 2009-08-25  Linus Walleij <triad (a] df.lth.se>
     24 
     25 	* src/libmtp.c: fix a bug where the metadata was cached
     26 	  twice, thx to Marcus for the patch!
     27 
     28 2009-08-23  Linus Walleij <triad (a] df.lth.se>
     29 
     30 	* src/ptp.c: sync to upstream
     31 	* src/ptp.h: dito.
     32 	* src/libmtp.c: patch from Thomas Schweitzer to not use
     33 	  C++ reserved words like "private" and "new", this was
     34 	  changed to "priv" and "newlist" making C++ happy.
     35 	* src/libusb-glue.h: inclusion guard, export functions to
     36 	  C++ (whoever wants to do that...)
     37 	* src/libusb-glue.c: define USB_CLASS_PTP unless defined,
     38 	  out-commented code to detect all PTP devices as MTP
     39 	  devices as well.
     40 
     41 2009-08-12  Linus Walleij <triad (a] df.lth.se>
     42 
     43 	* src/libusb-glue.c: patch from Simon Berg to detect PTP
     44 	  interface descriptors.
     45 	* src/ptp.c: sync to upstream with correct MTP interface
     46 	  detection in accordance with MTP spec.
     47 	* src/ptp.h: dito.
     48 
     49 2009-08-02  Linus Walleij <triad (a] df.lth.se>
     50 
     51 	* configure.ac: tag for libmtp 1.0.0!
     52 	* src/Makefile.am: bump to compatible API/ABI
     53 	  result = libmtp.so.8.3.0
     54 	* src/libmtp.c: missing flag fix from Marcus.
     55 
     56 2009-07-24  Linus Walleij <triad (a] df.lth.se>
     57 
     58 	* src/device-flags.h: add a flag for unknown FLAC type.
     59 	* src/music-players.h: tag the Cowon iAudio S9 with this.
     60 	* src/libmtp.c: implement unknown FLAC type.
     61 
     62 2009-07-24  Linus Walleij <triad (a] df.lth.se>
     63 
     64 	* src/music-players.h: a number of new devices.
     65 	* src/ptp.c: sync to upstream.
     66 	* src/ptp.h: sync to upstream.
     67 	* src/ptp-pack.c: sync to upstream.
     68 
     69 2009-06-24  Linus Walleij <triad (a] df.lth.se>
     70 
     71 	* src/music-players.h: tag most all Samsung devices with
     72 	  the UNLOAD_DRIVER flag. Broken GET_ALL info in all
     73 	  Creative devices.
     74 
     75 2009-06-20  Linus Walleij <triad (a] df.lth.se>
     76 
     77 	* examples/pathutils.c: detect VCF files too.
     78 
     79 2009-06-15  Marcus Meissner <meissner (a] suse.de>
     80 
     81 	* configure.ac: use the AC_SYS_LARGEFILE macro instead
     82 	  of the ugly largefile hacks.
     83 	* src/libmtp.c: fix use of largefile back to the simple
     84 	  functions instead.
     85 	* examples/albumart.c: dito.
     86 	* examples/sendfile.c: dito.
     87 	* examples/sendtr.c: dito.
     88 	* examples/thumb.c: dito.
     89 
     90 2009-06-15  Linus Walleij <triad (a] df.lth.se>
     91 
     92 	* configure.ac: some buildsystem updates.
     93 	* INSTALL: some doc updates.
     94 
     95 2009-06-15  Marcus Meissner <meissner (a] suse.de>
     96 
     97 	* src/libmtp.c: synced to new libgphoto2 code.
     98 	* src/device-flags.h: dito.
     99 	* src/ptp.h: sync to upstream.
    100 	* src/ptp.c: dito.
    101 	* src/ptp-pack.c: dito.
    102 
    103 	The handles, the PTPObjectInfo and the MTP proplists
    104 	are now consolidated into "PTPObject"s.
    105 
    106 	This and abstraction and the resulting helper functions
    107 	allow implementation of easier dynamic operations like
    108 	I need for libgphoto2.
    109 
    110 	Some corner stones:
    111 
    112 	- PTPParams now contains the device flags itself.
    113 	  (from device-flags.h) This is needed due to
    114 	  ptp_object_want() needing to decide whether it can call
    115 	  GetObjPropList, and it makes it cleaner.
    116 
    117 	  So the ptp-bugs and device-flags handling are unified.
    118 
    119 	- PTPObjects are sorted by object handle. This allows binary
    120 	  search by handle.
    121 
    122 	- New generic helper functions.
    123 
    124 	  * uint16_t ptp_object_find (PTPParams *params,
    125 	    uint32_t handle, PTPObject **retob)
    126 	    binary searches the handle in the object list and returns
    127 	    a pointer to the object.
    128 
    129 	  * uint16_t ptp_object_find_or_insert (PTPParams *params,
    130 	    uint32_t handle, PTPObject **retob)
    131 	    binary searches the handle in the object list, inserts it
    132 	    if not there yet, and returns a pointer to the object.
    133 
    134 	  * uint16_t ptp_object_want (PTPParams *params, uint32_t handle,
    135 	    int want, PTPObject **retob)
    136 	    The most magic function, which does the "on demand" loading
    137 	    of objectinfos, mtp proplists (and more).
    138 	    want is a flag mask of PTPOBJECT_*_LOADED
    139 	    PTPOBJECT_OBJECTINFO_LOADED   clear
    140 	    PTPOBJECT_CANONFLAGS_LOADED   (special canon flags)
    141 	    PTPOBJECT_MTPPROPLIST_LOADED  mtp properties for this object
    142 	                                  loaded
    143 	    PTPOBJECT_DIRECTORY_LOADED    (only used by libgphoto2 currently)
    144 	    PTPOBJECT_PARENTOBJECT_LOADED this and storageid are
    145 	                                  interesting for directory based
    146 	                                  lookups
    147 	    PTPOBJECT_STORAGEID_LOADED    and can be filled out by directory
    148 	                                  loading
    149 
    150 	  * void ptp_objects_sort (PTPParams *params);
    151 	    Sort the objects list if you did any modification of your own
    152 	    on it and the order of object handles might not be linear
    153 	    anymore.
    154 
    155 	- Multiple object information loading strategies are possible.
    156 	  libmtp uses getobjecthandles() /getobjectinfo() and
    157 	  getobjectproplist() loading strategies for initial setup. This
    158 	  stays of course, it will just fill out the PTPObject array.
    159 
    160 	  libgphoto2 now uses a per-directory getobjecthandles() /
    161 	  getobjectinfo() loading approach, and I will readd the
    162 	  getobjectproplist() approach.
    163 
    164 	  It is open what you chose to use here. For libmtp the "load all
    165 	  handles at startup" is good, dynamic loading is better for
    166 	  libgphoto2.
    167 
    168 	  Only rule is: The objectlist must be in order of objecthandles!
    169 	  (ptp_object_sort()).
    170 
    171 2009-06-02  Linus Walleij <triad (a] df.lth.se>
    172 
    173 	* examples/hotplug.c: change the udev match rule from
    174 	  ATTR{dev}!="?*" to ENV{MAJOR}!="?*" at the suggestion of
    175 	  Alan Jenkins, this should be faster.
    176 	* src/libusb-glue.c: include config.h (Marcus Meissner found
    177 	  this is needed when you're not using iconv().)
    178 
    179 2009-05-09  Linus Walleij <triad (a] df.lth.se>
    180 
    181 	* src/libmtp.c: include <config.h> for iconv() compatibility.
    182 	* src/unicode.c: dito. NOTE: this file needs fixing to work
    183 	  without iconv!
    184 	* src/ptp.h: sync to upstream and get all the embedded support
    185 	  for FREE!
    186 	* src/ptp.c: dito.
    187 	* src/ptp-pack.c: dito.
    188 
    189 2009-05-06  Linus Walleij <triad (a] df.lth.se>
    190 
    191 	* src/ptp.h: sync to upstream.
    192 	* src/ptp.c: dito.
    193 	* src/ptp-pack.c: dito.
    194 
    195 2009-05-06  Linus Walleij <triad (a] df.lth.se>
    196 
    197 	A host of Windows fixes from
    198 	Carlo Bramini <carlo_bramini (a] users.sourcefore.net>
    199 	With this patch everything works fine with cygwin and
    200 	Debian 5.0. Unfortunately, with MSys the "make install"
    201 	still fails at the very last actions. It happens that
    202 	everything is re-linked (strange, but not a big problem)
    203 	and for some unknown reason it loops forever when executing
    204 	"examples/hotplug > libmtp.usermap". But hopefully the
    205 	simple "make" completes without errors.
    206 
    207 	* configure.ac:
    208 	  * iconv is now detected with autotools, this makes libmtp
    209 	    linkable on cygwin too (previously it was not).
    210 	  * the presence of Microsoft LIB.EXE is checked; if it is
    211 	    absent then the MSVC libraries won't be generated.
    212 	  * Added checking for some include files not available on
    213 	    Windows: arpa/inet.h, byteswap.h, sys/uio.h.
    214 	  * Check for presence of mkstemp: a replacement has been
    215 	    written for Windows.
    216 	* examples/Makefile.am: the creation of the links failed:
    217 	  I added source path and $(EXEEXT) extension for executables.
    218 	  This is tested and working with Mingw+MSys, Cygwin, Debian 5.0.
    219 	* examples/albumart.c: include sys/uio.h only if it's available.
    220 	* examples/trexist.c: u_int32_t does not exists, into almost all
    221 	  other parts libmtp is using uint32_t so I fixed it in that
    222 	  manner. (Same for u_int64_t/uint64_t).
    223 	* examples/getfile.c: dito.
    224 	* examples/pathutils.c: dito, plus rindex() does not exist under
    225 	  Windows, we must user strrchr() instead.
    226 	* examples/pathutils.h: fixes for prototypes changes made into
    227 	  examples/pathutils.c
    228 	* examples/thumb.c: include sys/uio.h only if it's available.
    229 	* src/Makefile.am:
    230 	  * Several fixes because the check on the presence of LIB.EXE
    231 	    libmtp.sym is now prefixed by $(srcdir), this allows to
    232 	    configure libmtp outside the source tree in Windows too.
    233 	  * Libraries are put into LIBADD instead of LDFLAGS, this is the
    234 	    right place.
    235 	  * Previously the linker crashed because there was -ws2_32
    236 	    instead of -lws2_32.
    237 	* src/playlist-spl.c:
    238 	  * include sys/uio.h only if it's available.
    239 	  * include replacement for mkstemp() function.
    240 
    241 2009-05-03  Richard Low <richard (a] wentnet.com>
    242 
    243 	* src/libmtp.c: add external property types just like file
    244 	  types so any property can be retrieved/set. Add function
    245 	  LIBMTP_Is_Property_Supported to determine if a property is
    246 	  supported for a given object type. Add function
    247 	  LIBMTP_Get_Allowed_Property_Values to get alowed range/enum
    248 	  of a property value. Make
    249 	  LIBMTP_Get_Representative_Sample_Format get the size parameter
    250 	  to allow us to determine the maximum size for a representative
    251 	  sample.
    252 	* src/libmtp.h.in: ditto
    253 	* src/libusb-glue.c: update to check the handler function return
    254 	  value so the handler can return PTP_ERROR_CANCEL to cancel the
    255 	  transfer.
    256 
    257 2009-05-02 Richard Low <richard (a] wentnet.com>
    258 
    259 	* src/ptp-pack.c: add a NULL check
    260 
    261 2009-04-18  Richard Low <richard (a] wentnet.com>
    262 
    263 	* src/ptp-pack.c: add terminating NULL character
    264 
    265 2009-04-11  Richard Low <richard (a] wentnet.com>
    266 
    267 	* src/libusb-glue.c: Make get_playlist_extension return type
    268 	  const char *
    269 	* src/libusb-glue.h: ditto
    270 	* src/libusb-glue.c: In probe_device_descriptor, check to see if
    271 	  dev->config is NULL before going round the first loop
    272 	* src/libmtp.c: Add LIBMTP_Get_File_To_Handler,
    273 	  LIBMTP_Send_File_From_Handler, LIBMTP_Get_Track_To_Handler,
    274 	  LIBMTP_Send_Track_From_Handler functions to get/send files/tracks
    275 	  from/to handler functions. Add modificationdate to file and track
    276 	  structs. Add LIBMTP_FILETYPE_ALBUM and LIBMTP_FILETYPE_PLAYLIST
    277 	  filetypes.
    278 
    279 2009-03-17  Linus Walleij <triad (a] df.lth.se>
    280 
    281 	* src/device-flags.h: discovered a new device that cannot even
    282 	  read out battery level but still claims to be able to. Sigh.
    283 	* src/libusb-glue.h: flag macro.
    284 	* src/music-players.h: flag the Slacker.
    285 	* src/libmtp.c: avoid battery level getting on these devices.
    286 	* configure.ac: preparing for 0.3.7.
    287 	* src/Makefile.am: preparing for 0.3.7 (libmtp.so.8.2.2)
    288 	* Release libmtp 0.3.7.
    289 
    290 2009-03-08  Linus Walleij <triad (a] df.lth.se>
    291 
    292 	* src/libmtp.c: refactored OGG extenstion check again, same
    293 	  code in three places, broke it out and made it foolproof
    294 	  (hopefully) in one single spot.
    295 
    296 2009-03-04  Linus Walleij <triad (a] df.lth.se>
    297 
    298 	* src/libusb-glue.c: patch from Marcus to fix an issue
    299 	  with retransmit originally reported by Florent Pillet.
    300 
    301 2009-02-21  Linus Walleij <triad (a] df.lth.se>
    302 
    303 	* src/libmtp.c: some additional NULL checks from
    304 	  Florent Pillet.
    305 
    306 2009-02-18  Linus Walleij <triad (a] df.lth.se>
    307 
    308 	* src/libmtp.c: error report from RedHat BZ
    309 	  http://bugzilla.redhat.com/show_bug.cgi?id=485627
    310 	  led to strange code for detecting anonymous OGG files
    311 	  being rewritten to handle NULL filenames and filenames
    312 	  that do not exceed 4 chars.
    313 
    314 2009-01-30  Linus Walleij <triad (a] df.lth.se>
    315 
    316 	* src/libmtp.c: store albums and playlists in the default
    317 	  music folder if no default folder for albums resp.
    318 	  playlists has been detected.
    319 
    320 2009-01-22  Linus Walleij <triad (a] df.lth.se>
    321 
    322 	* configure.ac: bump to 0.3.6 and release.
    323 	* src/Makefile.am: interface bump to libmtp.so.8.2.1
    324 	
    325 2009-01-16  Linus Walleij <triad (a] df.lth.se>
    326 
    327 	* src/ptp.c: sync to upstream.
    328 	* src/ptp.h: dito.
    329 
    330 2009-01-15  Linus Walleij <triad (a] df.lth.se>
    331 
    332 	* src/libmtp.c: include fixes from Yuri Pankov for *BSD.
    333 	* src/playlist-spl.c: dito.
    334 	* examples/*.c: (more or less) dito.
    335 
    336 2009-01-14  Linus Walleij <triad (a] df.lth.se>
    337 
    338 	* src/device-flags.h: new device flag for broken
    339 	  SendObjectPropList, as found broken in MEU202
    340 	* src/music-players.h: use the new flag.
    341 	* src/libmtp.c: implement this device flag.
    342 	* src/libusb-glue.h: dito.
    343 
    344 2009-01-10  Linus Walleij <triad (a] df.lth.se>
    345 
    346 	* src/libmtp.h.in: mingw32 fixes from James Ravenscroft.
    347 	* src/libmtp.c: dito. Replaced "rindex" with "strrchr"
    348 	* src/Makefile.am: dito.
    349 	* examples/albumart.c: dito.
    350 
    351 2009-01-06  Linus Walleij <triad (a] df.lth.se>
    352 
    353 	* src/Makefile.am: patch from Rafael Laboissiere removing a
    354 	  build artifact in distclean.
    355 
    356 2009-01-02  Linus Walleij <triad (a] df.lth.se>
    357 
    358 	* examples/connect.c: usage patch from Riley Patterson.
    359 	* examples/sendtr.c: dito. Plus only try to add track to an
    360 	  album if and only if an album name was given.
    361 	* examples/newfolder.c: real bad bug fixed, didn't even work
    362 	  due to bad args check.
    363 	* examples/sendfile.c: another bad bug...
    364 	* examples/common.h: include <config.h> not "config.h"
    365 	* src/unicode.h: no reason for this to include config.h!
    366 
    367 2008-12-21  Linus Walleij <triad (a] df.lth.se>
    368 
    369 	* Release libmtp 0.3.5.
    370 
    371 2008-12-15  Nathan Bullock <nathanbullock (a] gmail.com>
    372 
    373 	* src/libmtp.c: get folders to a flat list and we get O(n) searching
    374 	  instead of the previous O(n^2) algorithm!
    375 
    376 2008-12-13  Linus Walleij <triad (a] df.lth.se>
    377 
    378 	* examples/detect.c: make mtp-detect dump out default-capabilities.xml
    379 	  if such a file exists on the device.
    380 	* m4/stdint.m4: update to newer macro from libgphoto2.
    381 	* m4/byteorder.m4: update to newer macro from libgphoto2.
    382 	  We find these here:
    383 	  http://gphoto.svn.sourceforge.net/viewvc/gphoto/trunk/m4/
    384 	* configure.ac: fix the renamed _stdint.h too.
    385 	* Doxyfile.in: some config option got obsolete.
    386 	* libmtp.c: start to use PTP error redirection to the libmtp error
    387 	  stack. This also makes it possible to stop the annoying debug prints.
    388 	* libusb-glue.c: dito.
    389 	* ptp.c: sync to upstream.
    390 	* ptp.h: sync to upstream.
    391 
    392 2008-12-02  Linus Walleij <triad (a] df.lth.se>
    393 
    394 	* examples/util.c: another NULL check.
    395 
    396 2008-11-25  Linus Walleij <triad (a] df.lth.se>
    397 
    398 	* src/libmtp.c: fix a bug on handling folder children with an illegal
    399 	  ID of 0. Occured in the ZEN Xi-Fi in the "Recordings" folder, when
    400 	  that is created on the device.
    401 
    402 2008-11-17  Alistair Boyle <alistair.js.boyle (a] gmail.com>
    403 
    404 	* configure.ac: change release to 0.3.5.
    405 	* libmtp.c: change metadata const*const to *const to allow playlist_id
    406 	  to be modified by LIBMTP_Update_Playlist. (Samsung playlists)
    407 	* libmtp.h.in: match libmtp.c
    408 
    409 2008-11-11  Linus Walleij <triad (a] df.lth.se>
    410 
    411 	* src/libmtp.c: allow for playlists with zero tracks on them,
    412 	  also in update.
    413 
    414 2008-11-09  Linus Walleij <triad (a] df.lth.se>
    415 
    416 	* src/ptp.h: sync from upstream.
    417 	* src/ptp.c: sync from upstream.
    418 	* src/ptp-pack.c: sync from upstream.
    419 
    420 2008-11-07  Linus Walleij <triad (a] df.lth.se>
    421 
    422 	* Release libmtp 0.3.4.
    423 	* configure.ac: let's release 0.3.4.
    424 	* src/Makefile.am: compatible API and ABI.
    425 	
    426 2008-11-05  Linus Walleij <triad (a] df.lth.se>
    427 
    428 	* src/libmtp.c: fix the association type problem on
    429 	  LIBMTP_Create_Folder(). This causes folders not to
    430 	  work properly on some devices!!
    431 
    432 2008-11-01  Linus Walleij <triad (a] df.lth.se>
    433 
    434 	* src/ptp.h: sync to upstream.
    435 	* src/ptp.c: sync to upstream.
    436 	* src/ptp-pack.c: introduce Richards bugfix on top of
    437 	  upstream and take advantage of the ptp_debug() function.
    438 	* src/libusb-glue.c: make ptp_debug() non-static since
    439 	  ptp-pack.c needs it.
    440 
    441 2008-10-21  Linus Walleij <triad (a] df.lth.se>
    442 
    443 	* src/device-flags.h: actually the SanDisks cannot handle
    444 	  PTP_OPC_DateModified at ALL, not even as part of the
    445 	  initial update so rename the flag to something sensible.
    446 	* src/music-players.h: consequental changes.
    447 	* src/libmtp.c: disable all use of PTP_OPC_DateModified if
    448 	  flag is set, not just updates.
    449 
    450 2008-10-16  Linus Walleij <triad (a] df.lth.se>
    451 
    452 	* src/device-flags.h: new flag for broken updates of
    453 	  PTP_OPC_DateModified.
    454 	* src/music-players.h: tag all SanDisk devices with this
    455 	  flag. Bug appeared in them.
    456 	* libmtp.c: avoid updating PTP_OPC_DateModified on broken
    457 	  devices.
    458 
    459 2008-09-28  Alvin <alvinbeach (a] gmail.com>
    460 
    461 	* src/libmtp.c: fix several bugs in Ogg filetype support.
    462 
    463 2008-09-26  Richard Low <richard (a] wentnet.com>
    464 
    465 	* src/libmtp.c: check propdesc before setting props in
    466 	  create_new_abstract_list()
    467 
    468 2008-09-25  Linus Walleij <triad (a] df.lth.se>
    469 
    470 	* configure.ac: bump to 0.3.3.
    471 	* src/Makefile.am: interface to .so.8.1.0
    472 	* Release as 0.3.3.
    473 	
    474 2008-09-24  Linus Walleij <triad (a] df.lth.se>
    475 
    476 	* src/libmtp.h.in: add new filename setting functions, patch
    477 	  from Florent Mertens <flomertens (a] gmail.com>.
    478 	* src/libmtp.c: implementation.
    479 	* src/playlist-spl.c: consequental changes.
    480 	* src/libmtp.sym: consequental changes.
    481 	* Fixup patch from Alvin later this day.
    482 	* Note to self: remember to bump soname to .so.8.1.0.
    483 
    484 2008-09-23  Richard Low <richard (a] wentnet.com>
    485 
    486 	* src/libmtp.c: check for NULL storage
    487 	* src/libusb-glue.c: return PTP_RC_OK on zero read
    488 	* src/music-players.h: give Samsung YP-10 DEVICE_FLAG_NO_ZERO_READS
    489 
    490 2008-09-22  Linus Walleij <triad (a] df.lth.se>
    491 
    492 	* src/libmtp.c: make sure we don't try to fit a new file onto
    493 	  a ROM storage. Add some pretty-print to FourCC codecs so
    494 	  you can actually understand the enumerations.
    495 
    496 2008-09-20  Joe Nahmias <joe (a] nahmias.net>
    497 
    498 	* examples/sendtr.c: added option to specify which 
    499 	  storage_id the track should be copied.
    500 
    501 2008-09-20  Linus Walleij <triad (a] df.lth.se>
    502 
    503 	* configure.ac: bump to 0.3.2.
    504 	* src/Makefile.am: bump to libmtp.so.8.0.2, compatible
    505 	  interface.
    506 	* Release this as 0.3.2 mainly to get the Creative fixes out.
    507 
    508 2008-09-17  Linus Walleij <triad (a] df.lth.se>
    509 
    510 	* src/libmtp.h.in: new helper macros from
    511 	  Alvin <alvinbeach (a] gmail.com> plus some docs.
    512 
    513 2008-09-12  Linus Walleij <triad (a] df.lth.se>
    514 
    515 	* src/music-players.h: drop bug flags off the Creative devices.
    516 	  I am confident that the bugs they were masking have been
    517 	  fixed now.
    518 
    519 2008-09-07  Richard Low <richard (a] wentnet.com>
    520 
    521 	* src/music-players.h: added Panasonic P905i
    522 
    523 2008-09-05  Marcus Meissner <meissner (a] suse.de>
    524 
    525 	* src/libmtp.sym: update symbol export table.
    526 	* src/Makefile.am: fix up some magic for symbol export.
    527 
    528 2008-09-04  Linus Walleij <triad (a] df.lth.se>
    529 
    530 	* src/libmtp.c: look up the filename for playlists if the name is 
    531 	  missing or not properly set. Not doing the same for albums -
    532 	  these must have proper metadata.
    533 	* src/music-players.h: more players as usual.
    534 	* examples/sendtr.c: more warnings.
    535 
    536 2008-08-31  Linus Walleij <triad (a] df.lth.se>
    537 
    538 	* src/ptp.h: sync to upstream.
    539 	* src/ptp.c: sync to upstream.
    540 
    541 2008-08-30  Chris Bagwell <chris (a] cnpbagwell.com>
    542 
    543 	* src/libusb-glue.c: make it possible to have per-command
    544 	  or otherwise altered timeout values for different PTP
    545 	  request/response sequences.
    546 	* src/libusb-glue.h: dito.
    547 	* src/libmtp.c: increase USB timeout to 30s when getting
    548 	  a complete track listing off the device.
    549 	* src/music-players.h: as a consequence, the Sirus Stiletto
    550 	  no longer needs any brokenness flag.
    551 
    552 2008-08-30  Linus Walleij <triad (a] df.lth.se>
    553 
    554 	* src/ptp.c: sync to upstream.
    555 
    556 2008-08-28  Linus Walleij <triad (a] df.lth.se>
    557 
    558 	* examples/sendtr.c: fix non-strdup():ed strings to be
    559 	  copied, patch courtesy of Juanan Pereira.
    560 
    561 2008-08-25  Linus Walleij <triad (a] df.lth.se>
    562 
    563 	* src/Makefile.am: bump interface a patchlevel. (Fully
    564 	  compatible.)
    565 	* configure.ac: bump version to 0.3.1.
    566 	* Release as libmtp 0.3.1.
    567 
    568 2008-08-18  Linus Walleij <triad (a] df.lth.se>
    569 
    570 	* src/libusb-glue.c: some vartype and return flunkies.
    571 	* configure.ac: check for locale.h
    572 	* examples/util.c: set locale to pick up environment.
    573 
    574 2008-08-17  Linus Walleij <triad (a] df.lth.se>
    575 
    576 	* src/libusb-glue.c: some handling of ptp_usb_getdata()
    577 	  when passed in data size was 0xffffffffU, data
    578 	  sent in first transaction was ignored, fix by
    579 	  Rob Woolley.
    580 	* src/ptp-pack.c: sync in from upstream libgphoto2.
    581 	* src/README: move relevant stuff to README.
    582 	* README: see above.
    583 
    584 2008-08-15  Alistair Boyle <alistair.js.boyle (a] gmail.com>
    585 
    586 	* src/playlist-spl.c: added handling of Samsung's
    587 	  proprietary .spl playlist format.
    588 	* src/playlist-spl.h: dito.
    589 	* src/device-flags.h: new flags for Samsung playlists.
    590 	* src/music-players.h: assign flags.
    591 	* src/libusb-glue.h: convenience macros.
    592 	* src/libmtp.c: integrate Samsung playlists.
    593 
    594 2008-08-15  Linus Walleij <triad (a] df.lth.se>
    595 
    596 	* examples/Makefile.am: break out utility functions
    597 	  (currently only checklang()) to a separate file.
    598 	* examples/util.h: dito.
    599 	* examples/util.c: dito.
    600 	* examples/detect.c: dito.
    601 	* examples/sendtr.c: dito.
    602 	* examples/connect.c: dito.
    603 
    604 2008-08-14  Linus Walleij <triad (a] df.lth.se>
    605 
    606 	* src/libmtp.c: add some documentation to file and track
    607 	  listing functions to that it's clear that you have to
    608 	  inspect storage_id and parent_id in order to group files
    609 	  into storages and/or folders.
    610 
    611 2008-07-31  Linus Walleij <triad (a] df.lth.se>
    612 
    613 	* src/music-players.h: several new devices and flags.
    614 
    615 2008-06-24  Linus Walleij <triad (a] df.lth.se>
    616 
    617 	* TODO: updates.
    618 	* src/Makefile.am: bump interface to libmtp.so.8.0.0.
    619 	  It's NOT compatible!
    620 	* RELEASE libmtp 0.3.0 and let the apps developers have
    621 	  their apps fixed!
    622 	
    623 2008-06-22  Linus Walleij <triad (a] df.lth.se>
    624 
    625 	* src/libmtp.h.in: removed the parenthandle argument from
    626 	  LIBMTP_Send_File_From_File(),
    627 	  LIBMTP_Send_File_From_File_Descriptor(),
    628 	  LIBMTP_Send_Track_From_File(),
    629 	  LIBMTP_Send_Track_From_File_Descriptor(),
    630 	  LIBMTP_Create_New_Playlist() and
    631 	  LIBMTP_Create_New_Album()
    632 	  Now you must pass in parent ID from a metadata or
    633 	  filedata set. Use the respective field of the
    634 	  file, track, playlist or album struct to pass in
    635 	  a parent handle when calling these functions from
    636 	  now on. The bonus for changing your code is that you
    637 	  can now also pass in a storage_id with any metadata
    638 	  set! Consequently LIBMTP_Create_Folder() was
    639 	  altered to accept THREE metadata arguments: name,
    640 	  parent_id and storage_id. All calls to any of these
    641 	  functions in any referring code need to be altered to
    642 	  use this scheme. It should be quite self-evident for
    643 	  most code and easy to perform.
    644 	* src/libmtp.c: changed outlined above were implemented.
    645 	* examples/newfolder.c: consequental changes.
    646 	* examples/sendfile.c: consequental changes.
    647 	* examples/sendtr.c: consequental changes.
    648 	* examples/albumart.c: consequental changes.
    649 	* examples/newplaylist.c: consequental changes.
    650 	* examples/files.c: consequental changes.
    651 	* examples/tracks.c: correct misleading strings.
    652 
    653 2008-06-15  Linus Walleij <triad (a] df.lth.se>
    654 
    655 	* src/libmtp.c: only look for default folders in the
    656 	  root folder on the primary storage, even.
    657 
    658 2008-06-14  Linus Walleij <triad (a] df.lth.se>
    659 
    660 	* src/libmtp.c: only look for default folders in the
    661 	  primary storage, and only try to put files there
    662 	  if they are targetting the primary storage.
    663 	
    664 2008-06-08  Linus Walleij <triad (a] df.lth.se>
    665 
    666 	* configure.ac: check for the langinfo.h header.
    667 	* examples/connect.c: check charset properly.
    668 	* examples/sendtr.c: dito.
    669 	* src/music-players.h: new devices galore.
    670 	
    671 2008-06-03  Linus Walleij <triad (a] df.lth.se>
    672 
    673 	* src/device-flags.h: new device flag for devices that
    674 	  always need to have their device descriptor probed.
    675 	* src/music-players.h: generously add this flag to all
    676 	  SanDisk devices. The e280v2 and Fuze are known to be
    677 	  especially problematic.
    678 	* src/libusb-glue.h: helper macro.
    679 	* src/libusb-glue.c: massage "OS Descriptor" on demand
    680 	  when opening the device.
    681 	* src/music-players.h: detailed info and flags for the
    682 	  SanDisk Sansa players. More to be done, probably.
    683 
    684 2008-06-02  Linus Walleij <triad (a] df.lth.se>
    685 
    686 	* src/libusb-glue.c: refactor PTP_USB to use the raw
    687 	  device and its contained deviceinfo to store and
    688 	  retrieve the device flags. (This is starting to look
    689 	  object oriented...)
    690 	* src/libusb-glue.h: accessor functions to simplify
    691 	  switching on the device flags and increase the code
    692 	  readability.
    693 	* src/libmtp.c: use the new accessor functions.
    694 	
    695 2008-06-01  Linus Walleij <triad (a] df.lth.se>
    696 
    697 	* src/libmtp.c: use LIBMTP_Detect_Raw_Devices() and
    698 	  LIBMTP_Open_Raw_Device() inside 
    699 	  LIBMTP_Get_First_Device() refactoring. Move
    700 	  params creation into this file.
    701 	* src/libusb-glue.c: move params creation away
    702 	  from here.
    703 
    704 2008-05-30  Linus Walleij <triad (a] df.lth.se>
    705 
    706 	* src/libusb-glue.c: unused variable.
    707 	* examples/detect.c: switch to using raw device
    708 	  interface for opening devices.
    709 
    710 2008-05-28  Linus Walleij <triad (a] df.lth.se>
    711 
    712 	* src/libmtp.c: internally using the raw devices to
    713 	  get a list of devices.
    714 	* src/ptp.c: sync to upstream.
    715 	* src/ptp.h: dito.
    716 	* src/ptp-pack.c: dito.
    717 	* src/libmtp.h.in: move raw device detection to use
    718 	  error codes. Add interface to open a raw device!
    719 	* src/libusb-glue.h: make the old device list internal,
    720 	  use raw device in interface for configuring USB.
    721 	* src/libusb-glue.c: fix up error messages. Move the
    722 	  raw device detection interface to use error codes.
    723 	* examples/detect.c: fix up error messages. Use error
    724 	  codes for raw devices.
    725 
    726 2008-05-23  Linus Walleij <triad (a] df.lth.se>
    727 
    728 	* src/libmtp.c: after sending a file, look up the
    729 	  resulting file metadata from the cache to make sure
    730 	  that parent_id is identical to that the file actually
    731 	  gets on the device. If root folder (0) is selected, we
    732 	  hardcode thing to 0xffffffffu to be used as parent,
    733 	  but it will probably end up being 0 for example.
    734 	  Also fix an issue with ptp_mtp_getobjectproplist()
    735 	  sometimes returning a NULL pointer while still
    736 	  claiming there are props in the list.
    737 	* src/libusb-glue.h: add a function to get the preferred
    738 	  playlist extension.
    739 	* src/libusb-glue.c: "written" variable in
    740 	  ptp_usb_sendreq() may end up uninitialized if
    741 	  ptp_write_func() fails. Initialize it to 0.
    742 	  Get the prefered playlist extension.
    743 
    744 2008-05-18  Richard Low <richard (a] wentnet.com>
    745 
    746 	* src/device-flags.h: added
    747 	  DEVICE_FLAG_BROKEN_SET_SAMPLE_DIMENSIONS device flag
    748 	* src/music-players.h: ditto. Also set Samsung YH-999 to
    749  	  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL based on users
    750 	  experience.
    751 	* src/libmtp.c: added
    752           DEVICE_FLAG_BROKEN_SET_SAMPLE_DIMENSIONS device flag
    753 
    754 2008-05-05  Linus Walleij <triad (a] df.lth.se>
    755 
    756 	* src/libusb-glue.c: assign device name and flags to
    757 	  detected raw devices, slowly preparing to move to 
    758 	  using the raw device detection internally as well.
    759 
    760 2008-05-04  Linus Walleij <triad (a] df.lth.se>
    761 
    762 	* src/libmtp.h.in: move useful filetype macros here so
    763 	  external programs can use them.
    764 	* src/libmtp.c: consequental changes.
    765 	* examples/sendtr.c: use the new macro to detect track
    766 	  content.
    767 
    768 2008-05-03  Johannes Huber <johub1180 (a] gmx.at>
    769 
    770 	* src/libmtp.h.in: add interface for setting album composer,
    771 	  needed for classical albums, on abstract albums.
    772 	* src/libmtp.c: implement it.
    773 	* examples/albums.c: consequental changes.
    774 	* examples/connect.c: dito.
    775 	* examples/sendtr.c: dito.
    776 	* examples/tracks.c: dito.
    777 	* AUTHORS: new contributor.
    778 
    779 2008-04-27  Linus Walleij <triad (a] df.lth.se>
    780 
    781 	* src/libmtp.c: recognize audio files as tracks, since this
    782 	  is what WMP does. (e.g. it sets playlength on movies
    783 	  to enable skip bar) also define macros for audio/video/both
    784 	  types and tidy up a bit.
    785 
    786 2008-04-24  Linus Walleij <triad (a] df.lth.se>
    787 	
    788 	* src/libmtp.h.in: added preliminary interface for getting
    789 	  raw devices.
    790 	* src/libusb-glue.c: the implementation is all here!
    791 	* src/libusb-glue.h: add some bus and device fields to the
    792 	  internal device list.
    793 	* examples/detect.c: exercise the raw device detection code.
    794 	
    795 2008-03-26  Linus Walleij <triad (a] df.lth.se>
    796 
    797 	* examples/pathutils.c: fix a folder identification bug,
    798 	  courtesy of Dr Nicholas Jacobs.
    799 
    800 2008-03-12  Linus Walleij <triad (a] df.lth.se>
    801 
    802 	* configure.ac: bad mailing list address. (Marcus) Bump to
    803 	  version 0.3.0.
    804 	* examples/hotplug.c: switch from using "info.bus" to
    805 	  using "info.subsystem" to identify USB events. (Marcus).
    806 	* src/libmtp.c: add parent_id to albums and playlists,
    807 	  based on a patch by Ali Shah.
    808 	* src/libmtp.h.in: dito.
    809 	* examples/playlists.c: consequental changes.
    810 	* examples/albums.c: consequental changes.
    811 	* This will be a new major revision of the API/ABI no
    812 	  matter what.
    813 
    814 2008-03-08  Linus Walleij <triad (a] df.lth.se>
    815 
    816 	* src/libusb-glue.c: left debug prints on :-(
    817 	* configure.ac: set to 0.2.6.1
    818 	* Release as 0.2.6.1
    819 
    820 2008-03-02  Linus Walleij <triad (a] df.lth.se>
    821 
    822 	* configure.ac: prepare 0.2.6 release.
    823 	* src/Makefile.am: bump to compatible interface, 
    824 	* src/ptp.c: sync in upstream, a Sansa fix!
    825 	* src/ptp.h: sync in upstream.
    826 	* doc/Doxyfile.in: retire obsoleted parameters.
    827 	* Release this as 0.2.6!
    828 	
    829 2008-02-24  Richard Low <richard (a] wentnet.com>
    830 
    831 	* src/music-players.h: add DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL
    832 	  for a broken Philips player.
    833 
    834 2008-02-18  Linus Walleij <triad (a] df.lth.se>
    835 
    836 	* examples/pathutils.c: fix up item ID typing to uint32_t,
    837 	  handle file names passed in as arguments at suggestion from
    838 	  anonymous mail list user.
    839 	* examples/pathutils.h: move a function static.
    840 
    841 2008-02-12  Nicolas Pennequin <nicolas.pennequin (a] free.fr>
    842 
    843 	* examples/sendtr.c: add transferred tracks to albums if possible.
    844 
    845 2008-02-10  Scott Snyder <snyder (a] fnal.gov>
    846 
    847 	* src/libusb-glue.c: finally fix up the short header detection
    848 	  to skip over zero packets when encountered.
    849 	* examples/pathutils.c: fix a problem where all files sent has
    850 	  to include a "." (period).
    851 
    852 2008-02-06  Linus Walleij <triad (a] df.lth.se>
    853 
    854 	* src/libusb-glue.c: wait for response > 0 instead of > 2.
    855 
    856 2008-01-28  Linus Walleij <triad (a] df.lth.se>
    857 
    858 	* src/libmtp.c: LIBMTP_Get_Filemetadata() return metadata for
    859 	  folders (associations) too. There is really no reason why it
    860 	  shouldn't and it's good for use internally. 
    861 	  LIBMTP_Get_Filelisting_With_Callback() will still not return
    862 	  any associations however. We want to use the folder functions
    863 	  for that.
    864 
    865 2008-01-28  Linus Walleij <triad (a] df.lth.se>
    866 
    867 	* src/libmtp.h.in: withdraw LIBMTP_Set_Object_Parent() function,
    868 	  no known devices will support this.
    869 	* src/libmtp.c: dito. Fix up some problems with the 
    870 	  LIBMTP_Set_Object_Filename() function.
    871 
    872 2008-01-27  Linus Walleij <triad (a] df.lth.se>
    873 
    874 	* src/libmtp.c: fix up some minor things and documentation on
    875 	  the object handling functions.
    876 
    877 2008-01-27  Florent Mertens <flomertens (a] gmail.com>
    878 
    879 	* src/libmtp.h.in: new functions to rename object filenames
    880 	  and change object parents. Good when modifying the device
    881 	  as a file system, LIBMTP_Set_Object_Filename(),
    882 	  LIBMTP_Set_Object_Parent().
    883 	* src/libmtp.c: implementation.
    884 
    885 2008-01-27  Linus Walleij <triad (a] df.lth.se>
    886 
    887 	* src/libusb-glue.c: re-read response from device until
    888 	  it atleast exceeds two bytes. This fixes a problem with
    889 	  the Samsung YP-U3 when populated with many, many songs.
    890 
    891 2008-01-21  Richard Low <richard (a] wentnet.com>
    892 
    893 	* src/music-players.h: add Thomson Lyrca HC308A, remove
    894 	  incorrect ID for Creative Zen 8GB
    895 
    896 2008-01-20  Richard Low <richard (a] wentnet.com>
    897 
    898 	* src/libmtp.c: add LIBMTP_Get_Representative_Sample()
    899 	* src/libmtp.h.in: ditto
    900 
    901 2008-01-14  Linus Walleij <triad (a] df.lth.se>
    902 	
    903 	* src/libmtp.c: add LIBMTP_Get_Manufacturername(). Remember
    904 	  to bump soname (compatible) in 0.2.6 (or whatever we name it).
    905 	  0.3.0 perhaps?
    906 	* src/libmtp.h.in: dito.
    907 	* src/libmtp.c: detect default folders named "Datacasts" and
    908 	  "Texts".
    909 
    910 2008-01-11  Linus Walleij <triad (a] df.lth.se>
    911 
    912 	* examples/pathutils.c: recognize .bin files as firmware,
    913 	  used by e.g. RockBox developers. Doesn't cost anything to
    914 	  add.
    915 	
    916 2008-01-08  Linus Walleij <triad (a] df.lth.se>
    917 
    918 	* configure.ac: bump to 0.2.5.
    919 	* src/Makefile.am: interface to libmtp.so.7.0.2
    920 	  (compatible).
    921 	* Release as libmtp 0.2.5. Why not?
    922 
    923 2007-12-28  Linus Walleij <triad (a] df.lth.se>
    924 
    925 	* src/libmtp.c: make libmtp use PTP_OPC_AlbumArtist on albums,
    926 	  instead of the (seldom present) PTP_OPC_Artist tag. Use both
    927 	  if both are supported. We're not setting AlbumArtist on regular
    928 	  tracks though, what's the point, and what does it mean if this
    929 	  differs from Artist??
    930 
    931 2007-11-30  Linus Walleij <triad (a] df.lth.se>
    932 
    933 	* src/music-players.h: new flag for the YP-T10.
    934 	* src/device-flags.h: define the new flag, that is needed
    935 	  to support Ogg files on these devices.
    936 	* src/libmtp.c: recognize and report Ogg support, set type
    937 	  to unknown when transferring.
    938 
    939 2007-11-22  Linus Walleij <triad (a] df.lth.se>
    940 
    941 	* configure.ac: bump to 0.2.4.
    942 	* src/Makefile.am: bump age of soversion (compatible).
    943 	* RELEASE 0.2.4 mainly to get some new device support out there.
    944 
    945 2007-11-09  Linus Walleij <triad (a] df.lth.se>
    946 
    947 	* src/libusb-glue.c: avoid probing deeper into interfaces
    948 	  that have a string describing them as "MTP" after a
    949 	  suggested patch from Alexander Kanavin <ak (a] sensi.org>.
    950 	* examples/albumart.c: patch from Chris Waters <xtifr (a] debian.org>
    951 	  replacing calls to atoi() with calls to strtoul(). Since
    952 	  object ID:s are unsigned long, atoi() would reject too
    953 	  high object IDs. The patch also fix a few memory leaks.
    954 	  THANKS DEBIAN! We love our downstream!
    955 	* examples/newplaylist.c: dito.
    956 	* examples/pathutils.c: dito.
    957 	* examples/thumb.c: dito.
    958 
    959 2007-11-05  Linus Walleij <triad (a] df.lth.se>
    960 
    961 	* src/libmtp.c: use OPFF codes instead of DPFF codes,
    962 	  we're dealing with objects, not device props.
    963 	* src/ptp.c: silence some OPFF freeing warnings.
    964 
    965 2007-11-02  Linus Walleij <triad (a] df.lth.se>
    966 
    967 	* src/libusb-glue.c: try to repair header here instead of
    968 	  ignoring error in ptp.c.
    969 	* src/music-players.h: flag some more Creative devices as
    970 	  broken getting all files.
    971 	* src/Makefile.am: reference the 2 new .h files.
    972 
    973 2007-10-31  Linus Walleij <triad (a] df.lth.se>
    974 
    975 	* src/ptp.c: bring cache handling into this file.
    976 	* src/ptp.h: dito.
    977 	* src/libmtp.c: consequential changes.
    978 
    979 2007-10-30  Linus Walleij <triad (a] df.lth.se>
    980 
    981 	* src/music-players.h: split this off as a shared file
    982 	  between us and libgphoto2 so we get out of the syncing
    983 	  nightmare.
    984 	* src/device-flags.h: split out this as well, Marcus
    985 	  might want it.
    986 	* src/libusb-glue.c: consequential movement.
    987 	* src/libmtp.c: reference new flag file.
    988 	* src/ptp.c: sync in upstream.
    989 	* src/ptp.h: dito.
    990 
    991 2007-10-25  Linus Walleij <triad (a] df.lth.se>
    992 
    993 	* Release 0.2.3. Nice bunch of cleaned-up code, sad we had
    994 	  too bump soversion but such is life.
    995 
    996 2007-10-23  Linus Walleij <triad (a] df.lth.se>
    997 
    998 	* src/libmtp.c: make LIBMTP_Send_File_From_File_Descriptor()
    999 	  survive the case where device->storage is NULL. This happens
   1000 	  on the Nokia 3110c.
   1001 
   1002 2007-10-19  Linus Walleij <triad (a] df.lth.se>
   1003 
   1004 	* src/libmtp.c: bring the cache handling code together at the
   1005 	  end of the file, refactor so as to avoid code duplication,
   1006 	  do things in one place only and looking good. Get folder
   1007 	  list recursively instead, this works better with fast dir
   1008 	  retrieveal I think.
   1009 
   1010 2007-10-18  Linus Walleij <triad (a] df.lth.se>
   1011 
   1012 	* src/libmtp.c: fix the deletion of cached properties when
   1013 	  removing objects. This code was seriously broken.
   1014 
   1015 2007-10-16  Jeff Mitchell <kde-dev (a] emailgoeshere.com>
   1016 
   1017 	* src/libusb-glue.c: remove the previously-concatenated vendor
   1018 	  and product string "name" field as it's now redundant
   1019 	* src/Makefile.am: interface to libmtp.so.7.0.0 (incompatible,
   1020 	  device_entry_struct members changed)
   1021 	* examples/hotplug.c: port to use vendor and product instead of
   1022 	  name, also some useful commenting in the fdi file
   1023 
   1024 2007-10-15  Linus Walleij <triad (a] df.lth.se>
   1025 
   1026 	* src/libusb-glue.c: repair headers, don't just ignore them.
   1027 	  Add support for broken set object proplist devices. Motorola
   1028 	  RAZR2 V8 has this problem.
   1029 	* src/libusb-glue.h: flag for broken set object proplist.
   1030 	* libmtp.c: avoid broken set object proplist.
   1031 	
   1032 2007-10-09  Jeff Mitchell <kde-dev (a] emailgoeshere.com>
   1033 
   1034 	* src/libusb-glue.c: add separate vendor and product strings
   1035 	  in device entry structs
   1036 	* src/libmtp.h.in: update device entry structs to reflect this
   1037 
   1038 2007-10-04  Linus Walleij <triad (a] df.lth.se>
   1039 
   1040 	* src/libusb-glue.c: rm some pointless confusing defines
   1041 	  inherited from libgphoto2.
   1042 	* configure.ac: bump to 0.2.2
   1043 	* src/Makefile.am: interface to libmtp.so.6.0.2 (compatible)
   1044 	* Release as 0.2.2. Now is as good time as ever. Release
   1045 	  early and release often.
   1046 	
   1047 2007-10-03  Linus Walleij <triad (a] df.lth.se>
   1048 
   1049 	* src/libusb-glue.c: tag the OLD Creative devices with
   1050 	  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL, after clear
   1051 	  indications that it was broken when retrieveing folders
   1052 	  on all those devices. The newer devices (those supporting
   1053 	  32bit object size) presumably does not have this limitation.
   1054 
   1055 2007-10-02  Linus Walleij <triad (a] df.lth.se>
   1056 
   1057 	* src/libmtp.c: devices which represented file size with a
   1058 	  32bit value (some Creative devices) would return a bananas
   1059 	  file size. Fixed it up by...
   1060 	* src/libmtp.h.in: recycling the uint8_t "interface" 
   1061 	  field in the device struct as a holder of the object size 
   1062 	  for the device. This will make the new library binary 
   1063 	  compatible with version 0.2.1 since no-one should *ever* 
   1064 	  dereference that value (which used to be the USB interface 
   1065 	  number and is now the object size).
   1066 	* examples/files.c: display 64bit file sizes in hex correctly.
   1067 
   1068 2007-09-29  Richard Low <richard (a] wentnet.com>
   1069 
   1070 	* src/libmtp.c: avoid crash on failed connect
   1071 
   1072 2007-09-28  Linus Walleij <triad (a] df.lth.se>
   1073 
   1074 	* src/libusb-glue.h: introduce a new device flag for devices that
   1075 	  have broken PTP headers, first encountered on the Creative
   1076 	  ZEN 8GB.
   1077 	* src/libusb-glue.c: attempt to begin to work around the broken
   1078 	  PTP headers.
   1079 
   1080 2007-09-25  Linus Walleij <triad (a] df.lth.se>
   1081 
   1082 	* src/libusb-glue.h: add a new device flag for devices that don't
   1083 	  like it if you release the interface (or try to clear endpoints).
   1084 	* src/libusb-glue.c: dito, implement this flag, tag all SanDisk
   1085 	  Sansa devices with it except for the Linux-based Sansa Connect.
   1086 
   1087 2007-09-23  Richard Low <richard (a] wentnet.com>
   1088 
   1089 	* src/libusb-glue.c: updated some device flags, removed second
   1090 	  call to ptp_getdeviceinfo
   1091 	* src/libmtp.c: property cache fixes
   1092 
   1093 2007-09-23  Linus Walleij <triad (a] df.lth.se>
   1094 
   1095 	* src/libmtp.c: wrapped updating of playlists and albums into an
   1096 	  abstract function so we do it consistently. Added support for
   1097 	  tagging on modification date to files, tracks, playlists and
   1098 	  albums.
   1099 
   1100 2007-09-21  Linus Walleij <triad (a] df.lth.se>
   1101 
   1102 	* src/libusb-glue.c: flag the Samsung YH-820 with
   1103 	  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL after tests by Stephan
   1104 	  Fabel.
   1105 	
   1106 2007-09-18  Linus Walleij <triad (a] df.lth.se>
   1107 
   1108 	* src/libusb-glue.c: stop the endpoint unhalting/unstalling when
   1109 	  closing the USB device. It was AYBABTU the Samsungs 
   1110 	  (and others).
   1111 
   1112 2007-09-17  Linus Walleij <triad (a] df.lth.se>
   1113 
   1114 	* src/libusb-glue.c: silenced weirdo error message.
   1115 
   1116 2007-09-16  Linus Walleij <triad (a] df.lth.se>
   1117 
   1118 	* src/ptp.c: cancellation working *as it should*
   1119 	* src/ptp.h: dito.
   1120 	* src/libusb-glue.c: dito.
   1121 	* src/libusb-glue.h: dito.
   1122 	* src/libmtp.c: dito.
   1123 	* src/libmtp.h.in: new error code for cancellation.
   1124 
   1125 2007-09-16  Richard Low <richard (a] wentnet.com>
   1126 
   1127 	* src/libusb-glue.c: only read descriptors for devices we
   1128 	  don't know since it breaks on some devices
   1129 	* src/libmtp.c: a couple of bugs fixed in metadata retreival
   1130 
   1131 2007-09-15  Linus Walleij <triad (a] df.lth.se>
   1132 
   1133 	* src/ptp.c: get cancellation of xfers working.
   1134 	* src/libusb-glue.c: dito.
   1135 	* src/libusb-glue.h: dito.
   1136 	* src/libmtp.c: dito.
   1137 
   1138 2007-09-14  Linus Walleij <triad (a] df.lth.se>
   1139 
   1140 	* src/ptp.h: sync in upstream to get cancellation prototypes.
   1141 	* src/libusb-glue.c: first try to implement cancellation.
   1142 	* src/libmtp.c: dito. Bugfix to one of Marcus' realloc():s.
   1143 
   1144 2007-09-12  Marcus Meissner <meissner (a] suse.de>
   1145 
   1146 	* src/ptp-pack.c: sync to upstream, rewrote packing to use
   1147 	  a static array to be qsort():ed when reading in proplists.
   1148 	* src/ptp.c: reflect changes.
   1149 	* src/ptp.h: reflect changes.
   1150 	* src/libmtp.c: reflect changes.
   1151 	
   1152 2007-09-06  Linus Walleij <triad (a] df.lth.se>
   1153 
   1154 	* examples/hotplug.c: edit up into a udev ruleset that is
   1155 	  inexorably complicated but probably compatible with most
   1156 	  udev versions out there. Now please DON'T update udev
   1157 	  styles again!
   1158 
   1159 2007-09-05  Richard Low <richard (a] wentnet.com>
   1160 
   1161 	* src/libmtp.c: album fixups
   1162 
   1163 2007-09-05  Linus Walleij <triad (a] df.lth.se>
   1164 
   1165 	* examples/hotplug.c: use old udev style by default, use new
   1166 	  if requested explicitly by a -U switch.
   1167 
   1168 2007-09-04  Linus Walleij <triad (a] df.lth.se>
   1169 
   1170 	* src/libmtp.c: make sure we query recursively supplying each
   1171 	  storage ID in turn, so we spin over storages. Also check
   1172 	  what storage may be available to store a file, if the first
   1173 	  one fails, try the next!
   1174 
   1175 2007-09-01  Linus Walleij <triad (a] df.lth.se>
   1176 
   1177 	* src/ptp-pack.c: make the resulting MTP proplist sorted by
   1178 	  object ID.
   1179 	* hotplug.sh.in: explicitly call BASH instead of just sh. Warn
   1180 	  if script is not run as root.
   1181 	
   1182 2007-08-29  Linus Walleij <triad (a] df.lth.se>
   1183 
   1184 	* examples/Makefile.am: move include define from AM_CFLAGS to
   1185 	  AM_CPPFLAGS (as it should be) bug found by Petar Petrov 
   1186 	  <pesho.petrov (a] gmail.com>.
   1187 	* src/libusb-glue.c: strange misleading message corrected. Fix
   1188 	  up the horrid interface passing back-and-forward and confusing.
   1189 	* src/libusb-glue.h: dito.
   1190 	* src/libmtp.c: rid interface references, that's a USB issue!
   1191 	* src/libmtp.h.in: flag interface number in device struct as retired.
   1192 
   1193 2007-08-28  Linus Walleij <triad (a] df.lth.se>
   1194 
   1195 	* src/libmtp.c: retire the horrid, broken, stream send facility that
   1196 	  does not work on any device since they all want to know the file
   1197 	  size in advance. Add in some code to fall back on the recursive
   1198 	  metadata retrieveal if getting the whole long list fails.
   1199 	* src/libusb-glue.c: tag all Sansas as having broken GetObjectPropList
   1200 	  when all tags for all objects are requested. Scan each INTERFACE 
   1201 	  of the device for device descriptors.
   1202 
   1203 2007-08-24  Linus Walleij <triad (a] df.lth.se>
   1204 
   1205 	* src/libusb-glue.h: new device flag to strip all non-7bit chars from
   1206 	  filenames on some lame devices.
   1207 	* src/libusb-glue.c: tag the Philips Shoqbox with this flag.
   1208 	* src/libmtp.c: strip the non-7bit chars from filenames if that
   1209 	  flag is set.
   1210 	* src/unicode.h: introduce a 7bit-strip helper function.
   1211 	* src/unicode.c: dito.
   1212 
   1213 2007-08-22  Linus Walleij <triad (a] df.lth.se>
   1214 
   1215 	* src/libmtp.c: deal with setting of metadata sets for u16/u32:s that
   1216 	  are ranges or enums, rounding and twiddling if need be. This is
   1217 	  needed because some new devices (like the TrekStor Sweez,
   1218 	  has duration defined as a range: MIN 0, MAX 65535000, STEP 1
   1219 	  and Sandisk Sansa c240 has duration as range: MIN 0, MAX 2147483000, 
   1220 	  STEP 1000) whereas old devices would just accept any value.
   1221 
   1222 2007-08-16  Richard Low <richard (a] wentnet.com>
   1223 
   1224 	* src/ptp-pack.c: allow packing of NULL strings
   1225 
   1226 2007-08-15  Robert Reardon <rreardon (a] monkshatch.vispa.com>
   1227 
   1228 	* src/libmtp.c: return device max values for representative
   1229 	  samples.
   1230 
   1231 2007-08-15  Richard Low <richard (a] wentnet.com>
   1232 
   1233 	* src/libusb-glue.c: added Philips Shoqbox
   1234 
   1235 2007-08-13  Linus Walleij <triad (a] df.lth.se>
   1236 
   1237 	* src/ptp.c: sync to upstream.
   1238 
   1239 2007-08-07  Linus Walleij <triad (a] df.lth.se>
   1240 
   1241 	* configure.ac: bump to 0.2.1.
   1242 	* src/Makefile.am: interface to libmtp.so.6.0.1.
   1243 	* Release libmtp 0.2.1!
   1244 
   1245 2007-08-06  Linus Walleij <triad (a] df.lth.se>
   1246 
   1247 	* configure.ac: tag on the large file support compilation flag.
   1248 	* src/libmtp.c: smack up the data file transfer function so it
   1249 	  works again and *finally* should support 64bit sizes!
   1250 	  Then wrapped the track sending function around the file
   1251 	  sending function so there is no more pointless code duplication
   1252 	  giving rise to ever more bugs. Enable LFS, Large File Support so
   1253 	  we can handle 64bit files properly.
   1254 	* examples/sendtr.c: shape up print-outs, LFS support.
   1255 	* examples/sendfile.c: dito.
   1256 
   1257 2007-08-06  Linus Walleij <triad (a] df.lth.se>
   1258 
   1259 	* src/ptp.c: fixed a stray error print bug.
   1260 	* src/libmtp.c: overhaul of all proplist setting to follow the same
   1261 	  design pattern. Probably fixed a few opd memory leaks along the road.
   1262 
   1263 2007-08-05  Richard Low <richard (a] wentnet.com>
   1264 
   1265 	* src/libmtp.c: send 64 bit filesize
   1266 
   1267 2007-08-04  Linus Walleij <triad (a] df.lth.se>
   1268 
   1269 	* src/libmtp.c: fix up the 64bit filesize and tracksize support.
   1270 	  There were some bugs...
   1271 	* src/Makefile.am: tweak interface revision so that we produce
   1272 	  libmtp.so.6 now.
   1273 	* configure.ac: bump library revision to 0.2.0.
   1274 	* examples/hotplug.c: switch to use ATTR{} instead of SYSFS{}
   1275 	* Release libmtp 0.2.0!
   1276 
   1277 2007-08-04  Richard Low <richard (a] wentnet.com>
   1278 
   1279 	* src/libusb-glue.c: add Sansa m240 (a different ID to before)
   1280 	  Give the Toshiba Gigabeat S
   1281 	  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL.
   1282 
   1283 2007-08-03  Marcus Meissner <meissner (a] suse.de>
   1284 
   1285 	* m4/byteorder.m4: byteorder fixes.
   1286 
   1287 2007-07-30  Richard Low <richard (a] wentnet.com>
   1288 
   1289 	* src/ptp-pack.c: fix up array packing
   1290 
   1291 2007-07-30  Linus Walleij <triad (a] df.lth.se>
   1292 
   1293 	* src/ptp-pack.c: try to get a uniform 64 bit
   1294 	  support, use some old macro code.
   1295 
   1296 2007-07-29  Richard Low <richard (a] wentnet.com>
   1297 
   1298 	* src/libmtp.c: 64 bit filesize support for tracks
   1299 	* src/ptp-pack.c: ditto
   1300 	* src/ptp.h: ditto
   1301 
   1302 2007-07-27  Richard Low <richard (a] wentnet.com>
   1303 
   1304 	* src/libmtp.c: Some better NULL checks
   1305 
   1306 2007-07-27  Linus Walleij <triad (a] df.lth.se>
   1307 
   1308 	* examples/hotplug.c: changed subsystem from "usb_device"
   1309 	  to "usb". Presumably a change in the kernel some time ago.
   1310 
   1311 2007-07-21  Richard Low <richard (a] wentnet.com>
   1312 
   1313 	* src/libmtp.c: Correctly bail out of LIBMTP_Get_Storage
   1314 
   1315 2007-07-17  Linus Walleij <triad (a] df.lth.se>
   1316 
   1317 	* examples/reset.c: Add a device reset program.
   1318 	* src/libmtp.c: Add reset command.
   1319 	* src/ptp.c: dito, and sync in upstream changes.
   1320 	* src/ptp.h: dito, and sync in upstream changes.
   1321 	* src/ptp-pack.c: sync in upstream changes.
   1322 
   1323 2007-07-17  Richard Low <richard (a] wentnet.com>
   1324 
   1325 	* src/libmtp.c: Added some more (paranoid) NULL checks
   1326 
   1327 2007-07-14  Richard Low <richard (a] wentnet.com>
   1328 
   1329 	* src/libmtp.c: Add a NULL check
   1330 
   1331 2007-07-13  Richard Low <richard (a] wentnet.com>
   1332 
   1333 	* src/libusb-glue.c: add Disney MixMax
   1334 
   1335 2007-07-11  Linus Walleij <triad (a] df.lth.se>
   1336 
   1337 	* src/libmtp.c: put in Tero's name in the preamble.
   1338 	* src/libusb-glue.c: make the dump function sump out the zuper zecret
   1339 	  devize dezcriptorz in clear text hex.
   1340 
   1341 2007-07-10  Linus Walleij <triad (a] df.lth.se>
   1342 
   1343 	* examples/hotplug.c: force HAL OGG support on iriver devices. 
   1344 	  They all have it! Also force for two other devices that does 
   1345 	  this.
   1346 
   1347 2007-07-07  Linus Walleij <triad (a] df.lth.se>
   1348 
   1349 	* src/libusb-glue.h: new flag for the case when getting the object
   1350 	  property list of all metadata for all objects is broken.
   1351 	* src/libusb-glue.c: tentatively tag a Philips device with this flag.
   1352 	* src/libmtp.c: fixed usage of returned pointers from realloc(),
   1353 	  introduce new flag.
   1354 
   1355 2007-07-05  Tero Saarni <tero.saarni (a] gmail.com>
   1356 
   1357 	* src/libmtp.c: update cache when manipulating objects instead of
   1358 	  always flushing the whole cache.
   1359 
   1360 2007-07-03  Linus Walleij <triad (a] df.lth.se>
   1361 
   1362 	* src/libmtp.c: use the params->proplist metadata cache. Help
   1363 	  rid all flush_handles() you can in order to add even more to
   1364 	  the efficiency of the cache.
   1365 
   1366 2007-07-01  Linus Walleij <triad (a] df.lth.se>
   1367 
   1368 	* src/ptp.c: sync to upstream gPhoto source.
   1369 	* src/ptp.h: dito.
   1370 	* src/ptp-pack.c: dito.
   1371 	* src/libmtp.c: use the params->objectinfo object info cache to
   1372 	  speed things up considerably. This is exactly what libgphoto2
   1373 	  does so now we move closer to upstream. I believe this also
   1374 	  fixes quite a few memory leaks because we weren't freeing the
   1375 	  strings inside the objectinfo previously.
   1376 
   1377 2007-05-29  Linus Walleij <triad (a] df.lth.se>
   1378 
   1379 	* src/libmtp.c: use the set object prop list command to set album
   1380 	  props if available. Follow metadata set design pattern used for
   1381 	  tracks; check first if the object type can set name/artist/genre.
   1382 
   1383 2007-05-24  Jeff Mitchell <kde-dev (a] emailgoeshere.com>
   1384 
   1385 	* hotplug.sh.in: Properly install the HAL FDI rules if
   1386 	  the user so chooses to when prompted.
   1387 
   1388 2007-05-24  Jeff Mitchell <kde-dev (a] emailgoeshere.com>
   1389 
   1390 	* examples/hotplug.c: Fix/update HAL output to conform
   1391 	  to new specs. Fix whitespacing to be consistent.
   1392 
   1393 2007-05-17  Richard Low <richard (a] wentnet.com>
   1394 
   1395 	* src/libusb-glue.c: added Samsung YH-920
   1396 
   1397 2007-05-11  Linus Walleij <triad (a] df.lth.se>
   1398 
   1399 	* examples/hotplug.c: output a usb.ids map if need be.
   1400 	* sync-usbids.sh: script to assist in comparing our device
   1401 	  database to the linux-usb database so we can submit new
   1402 	  entries to it more easily. Please extend this until it
   1403 	  creates automated diff:s if you can!
   1404 
   1405 2007-05-10  Linus Walleij <triad (a] df.lth.se>
   1406 
   1407 	* src/libusb-glue.c: some new devices, some rewording etc.
   1408 
   1409 2007-05-05  Linus Walleij <triad (a] df.lth.se>
   1410 
   1411 	* src/libusb-glue.h: removed the DUALMODE flag, it's pointless and
   1412 	  equal to the problem solved by the UNLOAD_DRIVER flag.
   1413 	* src/libusb-glue.c: dito, move the only DUALMODE flag into an
   1414 	  UNLOAD_DRIVER flag. Added Archos Gmini.
   1415 
   1416 2007-05-05  Richard Low <richard (a] wentnet.com>
   1417 
   1418 	* src/libusb-glue.c: added Philips PSA610
   1419 	* src/libmtp.c: code to recursively get object handles for each
   1420 	  assoc.
   1421 	* src/ptp.h: ditto
   1422 
   1423 2007-04-28  Richard Low <richard (a] wentnet.com>
   1424 
   1425 	* src/libusb-glue.c: new device
   1426 
   1427 2007-04-26  Linus Walleij <triad (a] df.lth.se>
   1428 
   1429 	* src/libusb-glue.c: memory leak: dangling, unused pointer killed.
   1430 
   1431 2007-04-23  Linus Walleij <triad (a] df.lth.se>
   1432 
   1433 	* src/libmtp.h.in: extend LIBMTP_album_t to include fields for
   1434 	  artist and genre. This is sort of required so we must change
   1435 	  the API to have it working properly.
   1436 	* src/libmtp.c: dito. Reflect changes in implementation.
   1437 
   1438 2007-04-18  Linus Walleij <triad (a] df.lth.se>
   1439 
   1440 	* src/ptp.c: sync to upstream gPhoto source.
   1441 	* src/ptp.h: dito.
   1442 	
   1443 2007-04-17  Richard Low <richard (a] wentnet.com>
   1444 
   1445 	* src/libusb-glue.c: new device
   1446 
   1447 2007-04-13  Richard Low <richard (a] wentnet.com>
   1448 
   1449 	* src/libusb-glue.c: new devices
   1450 
   1451 2007-04-12  Linus Walleij <triad (a] df.lth.se>
   1452 
   1453 	* examples/hotplug.c: fix GOTO style in udev map.
   1454 
   1455 2007-04-02  Linus Walleij <triad (a] df.lth.se>
   1456 
   1457 	* examples/files.c: some WIN32 64bit prefix fixup.
   1458 	* examples/tracks.c: dito.
   1459 	
   1460 2007-03-28  Ted Bullock <tbullock (a] canada.com>
   1461 
   1462 	* examples/*.c: Print library version number on execution of examples.
   1463 	* src/libmtp.h.in: New version number string to aid version echoing.
   1464 
   1465 2007-03-26  Linus Walleij <triad (a] df.lth.se>
   1466 
   1467 	* configure.ac: bump version to 0.1.5, release 0.1.5!
   1468 	* src/Makefile.am: bump lib interface revision to libmtp.so.5.2.1,
   1469 	  backwards compatible to libmtp.so.5.
   1470 
   1471 2007-03-24  Richard Low <richard (a] wentnet.com>
   1472 
   1473 	* src/libusb-glue.c: fixed bug in zero read code
   1474 
   1475 2007-03-23  Linus Walleij <triad (a] df.lth.se>
   1476 
   1477 	* src/libmtp.c: refactored MTP property list handling code to make
   1478 	  things simple. Removed the flag for MTP enhanced: there are devices
   1479 	  that will not work without MTP enhanced (for example the Samsung 
   1480 	  YP-K5 will only support setting object property lists, not 
   1481 	  individual object properties, leaving out parts of the MTP basic 
   1482 	  subset), thus we are allowed to reverse-engineer and implement this 
   1483 	  for interoperability. I also made the output from 
   1484 	  LIBMTP_Dump_Device_Info() considerably more verbose, plotting out 
   1485 	  the ranges and possible enumerated values of all object properties.
   1486 	  For example you can see that the secret values associated with 
   1487 	  Audible.com property 0xda01 is an enumerated value that can be 
   1488 	  2, 3 or 4 (etc).
   1489 
   1490 2007-03-22  Richard Low <richard (a] wentnet.com>
   1491 
   1492 	* src/ptp.c: PTP_OC_MTP_SetObjPropList implementation
   1493 	* src/ptp.h: ditto
   1494 	* src/libmtp.c: Use PTP_OC_MTP_SetObjPropList when updating track
   1495 	  metadata.
   1496 
   1497 2007-03-18  Richard Low <richard (a] wentnet.com>
   1498 
   1499 	* src/libusb-glue.c: new devices. Some of the Samsung players may
   1500 	  need DEVICE_FLAG_NO_ZERO_READS to be set - I only know the YP-K5
   1501 	  needs it.
   1502 
   1503 2007-03-16  Linus Walleij <triad (a] df.lth.se>
   1504 
   1505 	* src/libusb-glue.h: introducing yet another device flag for the
   1506 	  irivers bugged firmwares, this is for the Alzheimer disease that
   1507 	  cause irivers to forget that OGG files are OGG files.
   1508 	* src/libmtp.c: dito.
   1509 	* src/libusb-glue.c: introduce this flag for all iriver devices.
   1510 	* examples/pathutils.c: found a (small) bug.
   1511 
   1512 2007-03-12  Linus Walleij <triad (a] df.lth.se>
   1513 
   1514 	* Makefile.am: cleanup patch from Rafael Laboissiere.
   1515 	* src/libusb-glue.c: refactored device detection code to 
   1516 	  immediately test if the device is in the known devices list if it 
   1517 	  does not feature a MTP device descriptor. This fixes the problem 
   1518 	  of not being able to mix devices with proper descriptors and 
   1519 	  non-detected devices.
   1520 
   1521 2007-03-07  Linus Walleij <triad (a] df.lth.se>
   1522 
   1523 	* src/libusb-glue.c: remove libgphoto2 functions that we
   1524 	  don't use.
   1525 	* src/libusb-glue.h: export the free_mtpdevice_list() function,
   1526 	  new signature of find_usb_devices().	
   1527 	* src/libmtp.c: shrink code, pass as list of devices instead of
   1528 	  several huge arrays between libmtp.c and USB glue layer in
   1529 	  libusb-glue.c using the nifty list struct defined in libusb-glue.h.
   1530 	* Eventually release libmtp 0.1.4.
   1531 
   1532 2007-03-06  Linus Walleij <triad (a] df.lth.se>
   1533 
   1534 	* src/libusb-glue.c: rewrote one more function to be 
   1535 	  non-recursive, perhaps I found the remaining bug, just
   1536 	  cannot see that right now, will test tomorrow.
   1537 	
   1538 2007-03-05  Linus Walleij <triad (a] df.lth.se>
   1539 
   1540 	* src/libmtp.c: rewrite recursive function to linear.
   1541 	* src/libusb-glue.h: create a wrapper type for the
   1542 	  device list instead of abusing the libusb device "next"
   1543 	  field in our code.
   1544 	* src/libusb-glue.c: rewrite all recursive functions to
   1545 	  linear, use wrapper objects, don't copy the libusb device
   1546 	  struct, instead just store a pointer to it. This magically
   1547 	  solved a bug...
   1548 	
   1549 2007-03-04  Linus Walleij <triad (a] df.lth.se>
   1550 
   1551 	* src/Makefile.am: bump library interface to libmtp.so.5.2.0
   1552 	  backwards compatible with any libmtp.so.5 interface, for
   1553 	  imminent libmtp 0.1.4 release.
   1554 	
   1555 2007-03-03  Ted Bullock  <tbullock (a] canada.com>
   1556 
   1557 	* src/libusb-glue.c: Don't echo warnings about reading a single
   1558 	  extra byte on devices in which DEVICE_FLAG_NO_ZERO_READS has
   1559 	  been set
   1560 	* src/libmtp.c: New API function to retrieve the number of devices
   1561 	  in a list of connected devices
   1562 	* src/libmtp.h: New API function to retrieve the number of devices
   1563 	  in a list of connected devices
   1564 	* examples/detect.c: Use new API function to count number of devices
   1565 	  that were detected
   1566 
   1567 2007-03-03  Linus Walleij <triad (a] df.lth.se>
   1568 
   1569 	* src/libusb-glue.h: Tiresome ramblings to explain exactly what
   1570 	  the (now renamed) device flag DEVICE_FLAG_NO_ZERO_READS really 
   1571 	  means.
   1572 	* src/libusb-glue.c: Renamed flag. Indent code :-) Reading the code
   1573 	  and being impressed by our ability to iron out the root cause
   1574 	  of this kinda weird thing... Fix a few compile warnings.
   1575 
   1576 2007-03-03  Richard Low <richard (a] wentnet.com>
   1577 
   1578 	* src/libusb-glue.c: (hopefully) fixed iRiver read errors. Enabled
   1579 	  get object prop lists for Clix since it appears to work.
   1580 	* src/libusb-glue.h: ditto
   1581 	* src/ptp.h: ditto
   1582 
   1583 2007-02-28  Linus Walleij <triad (a] df.lth.se>
   1584 
   1585 	* src/ptp.h: Upstream accepted our patch so synced it in.
   1586 	
   1587 2007-02-27  Linus Walleij <triad (a] df.lth.se>
   1588 
   1589 	* src/ptp.c: Synced in upstream version which removes the 
   1590 	  offending line.
   1591 	* src/libmtp.c: replaces strcmp() for strcasecmp() in folder
   1592 	  detection since Windows and some devices (such as iRivers)
   1593 	  ignore case and user capital letters for default folders.
   1594 	
   1595 2007-02-22  Ted Bullock  <tbullock (a] canada.com>
   1596 
   1597 	* src/ptp.c: Comment out line in ptp_exit_fd_handler that was 
   1598 	  closing a file descriptor.  This is not the responsibility of 
   1599 	  the PTP Layer. Defect and solution found by Rob Reardon
   1600 
   1601 2007-02-26  Linus Walleij <triad (a] df.lth.se>
   1602 
   1603 	* src/libmtp.c: Implement a check for PTP_OC_MTP_SetObjectPropValue 
   1604 	  in the LIBMTP_Update_Track_Metadata() function, there are 
   1605 	  obviously devices that do not support this, but only 
   1606 	  PTP_OC_MTP_SetObjPropList instead (such as the Samsung YH 925-GS), 
   1607 	  but we haven't implemented that yet. Problems are 
   1608 	  atleast reported correctly now.
   1609 
   1610 2007-02-24  Richard Low <richard (a] wentnet.com>
   1611 
   1612 	* src/libusb-glue.c: Fix incorrect transfer sizes causing zero
   1613 	  write issues
   1614 
   1615 2007-02-23  Linus Walleij <triad (a] df.lth.se>
   1616 
   1617 	* src/libmtp.c: Undeprecate getting first device code.
   1618 	
   1619 2007-02-23  Richard Low <richard (a] wentnet.com>
   1620 
   1621 	* src/libmtp.c: Fix crash when no devices connected
   1622 
   1623 2007-02-23  Ted Bullock  <tbullock (a] canada.com>
   1624 
   1625 	* examples/detect.c: Stub out probe functionality
   1626 	* src/libusb-glue.c: Remove old uni-device cruft code
   1627 	* src/libusb-glue.h: Remove old uni-device cruft code
   1628 	* Replace LIBMTP_ERROR_N0_DEVICE_ATTACHED with
   1629 		LIBMTP_ERROR_NO_DEVICE_ATTACHED across entire project
   1630 	
   1631 2007-02-22  Ted Bullock  <tbullock (a] canada.com>
   1632 
   1633 	* examples/albums.c: Updated to use new multi device code
   1634 	* examples/tracks.c: Updated to use new multi device code
   1635 	* examples/files.c: Updated to use new multi device code
   1636 
   1637 2007-02-18  Ted Bullock  <tbullock (a] canada.com>
   1638 
   1639 	* src/libmtp.c: Altered the function LIBMTP_Get_First_Device
   1640 	  to wrap around the multi device API. Also added deprecation
   1641 	  warnings to avoid using this function
   1642 
   1643 2007-02-17  Richard Low <richard (a] wentnet.com>
   1644 
   1645 	* src/libusb-glue.c: Debug output fixes and read/write sizes changed
   1646 	* src/libmtp.c: memset params to 0 to avoid freeing unalloced
   1647 	  memory
   1648 	* src/ptp.h: read/write sizes changed
   1649 
   1650 2007-02-15  Robert Reardon <rreardon (a] monkshatch.vispa.com>
   1651 
   1652 	* src/libmtp.c: Fix a segfault in new error handling code.
   1653 
   1654 2007-02-15  Linus Walleij <triad (a] df.lth.se>
   1655 
   1656 	* src/libmtp.c: Adding some sanity checks to error stack code.
   1657 	* examples/newplaylist.c: LGPL boilerplate, crediting Robert.
   1658 	* examples/playlists.c: LGPL boilerplate.
   1659 	* examples/sendfile.c: LGPL boilerplate, crediting me and Chris.
   1660 	* examples/sendtr.c: LGPL boilerplate, crediting me, Chris,
   1661 	  Shaun, Enrique.
   1662 	* examples/thumb.c: LGPL boilerplate, crediting Robert.
   1663 	* examples/tracks.c: LGPL boilerplate.
   1664 	* examples/trexist.c: LGPL boilerplate, crediting noone.
   1665 
   1666 2007-02-15  Ted Bullock  <tbullock (a] canada.com>
   1667 
   1668 	* examples/folders.c: Updated to use new multi device code
   1669 	* src/libmtp.c: Fixed potential memory leaks
   1670 	* src/libusb-glue.c: Fixed potential memory leaks and fixed device 
   1671 	  release segfault for multiple devices
   1672 
   1673 2007-02-14  Ted Bullock  <tbullock (a] canada.com>
   1674 
   1675 	* src/libusb-glue.c: Wrote three new recursive functions to avoid 
   1676 	  extreme levels of multiple indirection and to clean the code up 
   1677 	  a bit for multiple devices.
   1678 	* examples/detect.c: Adjusted function calls to use new multiple 
   1679 	  device code.
   1680 	* src/libmtp.h.in: Added prototype for LIBMTP_Release_Device_List
   1681 
   1682 2007-02-12  Ted Bullock  <tbullock (a] canada.com>
   1683 
   1684 	* src/libmtp.c: Two new functions (create_usb_mtp_devices and 
   1685 	  LIBMTP_Get_Connected_Devices) to add support for multiple devices
   1686 	  to client applications
   1687 	* src/libmtp.h: Added LIBMTP_Get_Connected_Devices as a publicly
   1688 	  accessible function
   1689 	*libusb-glue.c: Renamed connect_mtp_devices to find_usb_devices
   1690 	*libusb-glue.h: Renamed connect_mtp_devices to find_usb_devices
   1691 
   1692 2007-02-09  Ted Bullock  <tbullock (a] canada.com>
   1693 
   1694 	* src/libusb-glue.c: Addressed a number of potential memory leaks in
   1695 	  the new multiple device code
   1696 
   1697 2007-02-05  Linus Walleij <triad (a] df.lth.se>
   1698 
   1699 	* src/libmtp.h.in: LGPL boilerplate.
   1700 	* src/libusb-glue.h: LGPL boilerplate.
   1701 	* src/unicode.h: LGPL boilerplate.
   1702 	* src/util.h: LGPL boilerplate.
   1703 	* examples/albumart.c: LGPL boilerplate, crediting Andy.
   1704 	* examples/pathutils.h: LGPL boilerplate, crediting Chris.
   1705 	* examples/pathutils.c: LGPL boilerplate, crediting me and Chris.
   1706 	* examples/common.h: LGPL boilerplate.
   1707 	* examples/albums.c: LGPL boilerplate, crediting Chris.
   1708 	* examples/connect.c: LGPL boilerplate, crediting Chris.
   1709 	* examples/delfile.c: LGPL boilerplate, crediting me and Chris.
   1710 	* examples/detect.c: LGPL boilerplate.
   1711 	* examples/emptyfolders.c: LGPL boilerplate, crediting Andy.
   1712 	* examples/files.c: LGPL boilerplate.
   1713 	* examples/folders.c: LGPL boilerplate.
   1714 	* examples/format.c: LGPL boilerplate.
   1715 	* examples/getfile.c: LGPL boilerplate, crediting me and Chris.
   1716 	* examples/getplaylist.c: LGPL boilerplate.
   1717 	* examples/hotplug.c: LGPL boilerplate, crediting me and Marcus.
   1718 	* examples/newfolder.c: LGPL boilerplate, crediting me and Chris.
   1719 
   1720 2007-02-02  Linus Walleij <triad (a] df.lth.se>
   1721 
   1722 	* src/ptp.c: sync upstream.
   1723 	* src/ptp.h: dito.
   1724 	* src/ptp-pack.c: dito.
   1725 	* src/libmtp.c: make changes necessary to handle
   1726 	  the new iconv(3) code in ptp-pack.c. People will have to
   1727 	  use recent stdlibc, glibc or libiconv. Also call new memory
   1728 	  clean-up functions. Fix LGPL boilerplate text.
   1729 	* src/unicode.c: Fix LGPL boilerplate text.
   1730 	* src/utils.c: Fix LGPL boilerplate text.
   1731 	* src/libusb-glue.c: Fix LGPL boilerplate text.
   1732 
   1733 2007-01-24  Ted Bullock <tbullock (a] canada.com>
   1734 
   1735 	* src/libusb-glue.c: new function to retrieve multiple device
   1736 	  instances.
   1737 	* src/libusb-glue.h: dito.
   1738 	* src/libmtp.h.in: new error codes.
   1739 
   1740 2007-01-22  Linus Walleij <triad (a] df.lth.se>
   1741 
   1742 	* examples/albumart.c: use the new errostack.
   1743 	* examples/delfile.c: dito.
   1744 	* examples/detect.c: dito.
   1745 	* examples/emptyfolders.c: dito.
   1746 	* examples/format.c: dito.
   1747 	* examples/getfile.c: dito.
   1748 	* examples/getplaylist.c: dito.
   1749 	* examples/newfolder.c: dito.
   1750 	* examples/newplaylist.c: dito.
   1751 	* examples/playlists.c: dito.
   1752 	* examples/sendfile.c: dito.
   1753 	* examples/sendtr.c: dito.
   1754 	* examples/thumb.c: dito.
   1755 	* src/libmtp.c: add some errors to the stack so we can
   1756 	  see how it's to be used. (Just a first try...)
   1757 	* src/libusb-glue.c: move the LIBMTP_Get_Supported_Devices()
   1758 	  function into this file cause it only return USB devices
   1759 	  anyway and could be renamed LIBMTP_Get_Supported_USB_Devices()
   1760 	  (but let's not do that renaming since it would break the API).
   1761 	  For now let's understand this is a USB-only function by
   1762 	  simply putting it in the libusb-glue.c file.
   1763 	
   1764 2007-01-22  Ted Bullock <tbullock (a] canada.com>
   1765 
   1766 	* src/libusb-glue.c: first hack at creating an interface
   1767 	  to retrieve multiple devices.
   1768 	* src/libmtp.h.in: new error codes related to multiple devices.
   1769 
   1770 2007-01-21  Richard Low <richard (a] wentnet.com>
   1771 
   1772 	* src/libusb-glue.c: more new devices
   1773 
   1774 2007-01-20  Linus Walleij <triad (a] df.lth.se>
   1775 
   1776 	* src/libmtp.h.in: error stack handling like in libnjb.
   1777 	  just bare bones implementation as of now but the idea
   1778 	  should be clearly visible. TODO: add a plethora of
   1779 	  errors and adjust examples to make use of the error
   1780 	  stack.
   1781 	* src/libmtp.c: dito.
   1782 	
   1783 2007-01-20  Richard Low <richard (a] wentnet.com>
   1784 
   1785 	* src/libusb-glue.c: new device 'Philips PSA235'
   1786 
   1787 2007-01-16  Linus Walleij <triad (a] df.lth.se>
   1788 
   1789 	* configure.ac: bump and release 0.1.3.
   1790 	* src/Makefile.am: bump interface REVISION. Nothing changed
   1791 	  externally really.
   1792 
   1793 2007-01-11  Linus Walleij <triad (a] df.lth.se>
   1794 
   1795 	* src/libmtp.sym: updated symbol table for mingw32 but does
   1796 	  anyone use this? Also I believe one could auto-generate
   1797 	  this some way, just haven't figured out how... Perhaps with
   1798 	  a funky script that massage libmtp.h if nothing else.
   1799 
   1800 2007-01-11  Richard Low <richard (a] wentnet.com>
   1801 
   1802 	* src/libusb-glue.c: a zero read fix
   1803 	* src/libmtp.c: fix spelling mistake
   1804 
   1805 2007-01-09  Linus Walleij <triad (a] df.lth.se>
   1806 
   1807 	* src/libusb-glue.c: repair callbacks, structure the code just
   1808 	  a little bit.
   1809 	* src/libmtp.c: don't assign values to writes or reads, use the
   1810 	  PTP transport intrinsics instead.
   1811 	
   1812 2007-01-07  Orson Teodoro <orsonteodoro (a] yahoo.com>
   1813 
   1814 	* src/ptp.h: Encoding profile.
   1815 	* src/ptp.c: Dito.
   1816 
   1817 2006-01-07  Linus Walleij <triad (a] df.lth.se>
   1818 
   1819 	* src/libusb-glue.c: (re)introduce de-halting of endpoints
   1820 	  as this is needed by VMWare emulation. Must check whether
   1821 	  this causes problems for other archs! Problem was reported
   1822 	  by Orson Teodoro under i686 Gentoo, with a suggested patch.
   1823 
   1824 2006-01-07  Marcus Meissner <meissner (a] suse.de>
   1825 
   1826 	* src/ptp.c: sync to upstream libgphoto2.
   1827 	* src/ptp.h: dito.
   1828 	* src/ptp-pack.c: dito.
   1829 	* libusb-glue.c: fixes to move low-level functions
   1830 	  out of ptp.c and into this libmtp-specific portion.
   1831 	  libgphoto2 has been similarly altered to use a usb.c
   1832 	  file for the low-level stuff. (This was a long needed
   1833 	  split anyway.)
   1834 
   1835 2007-01-03  Richard Low <richard (a] wentnet.com>
   1836 
   1837 	* src/libusb-glue.c: fix zero write bug
   1838 	* src/ptp.c: ditto
   1839 
   1840 2007-01-02  Linus Walleij <triad (a] df.lth.se>
   1841 
   1842 	* src/libusb-glue.c: fix up comments, remove things 
   1843 	  refering to stuff we don't have.
   1844 
   1845 2007-01-02  Richard Low <richard (a] wentnet.com>
   1846 
   1847 	* src/libmtp.c: another try at split headers/packet sizes
   1848 	* src/ptp.c: ditto
   1849 	* src/libusb-glue.c: ditto
   1850 
   1851 2007-01-01  Linus Walleij <triad (a] df.lth.se>
   1852 
   1853 	* src/libmtp.c: move default setting of split headers
   1854 	  off to ptp.c open session.
   1855 	* src/ptp.c: dito.
   1856 
   1857 2007-01-01  Richard Low <richard (a] wentnet.com>
   1858 
   1859 	* src/libmtp.c: split headers/packet size fix
   1860 	* src/ptp.c: ditto
   1861 	* src/ptp.h: ditto
   1862 	* src/libusb-glue.c: ditto
   1863 
   1864 2007-01-01  Orson Teodoro <orsonteodoro (a] yahoo.com>
   1865 
   1866 	* src/ptp.h: changed some WMDRMND def codes to AAVT def codes. 
   1867 	  addition of AAVT error codes.
   1868 	* src/ptp.c: changes to reflect modifications done in ptp.h
   1869 
   1870 2006-12-31  Linus Walleij <triad (a] df.lth.se>
   1871 
   1872 	* configure.ac: bump to 0.1.2.
   1873 	* src/Makefile.am: bump interface revision. (Compatible.)
   1874 	* RELEASE 0.1.2.
   1875 
   1876 2006-12-30  Linus Walleij <triad (a] df.lth.se>
   1877 
   1878 	* examples/pathutils.c: reflect new filetypes.
   1879 	* examples/sendtr.c: dito.
   1880 
   1881 2006-12-30  Orson Teodoro <orsonteodoro (a] yahoo.com>
   1882 
   1883 	* src/ptp.h: added WMDRMPD, WMDRMND, WMPPD, WPDWCN extension
   1884 	  codes. added more format object codes flac, m4a, 3gp, aac,
   1885           xml, xls, ppt, etc.  0x9101-0x910B identfiers are infixed
   1886 	  with WMDRMPD. Added more object properties codes (0xDCD3-0xDD72).
   1887 	  Added more device property codes.
   1888 	  Changed PTP_OFC_MTP_WindowsImageFormat to 0xb881 reflect spec.
   1889         * src/ptp.c: added changes to reflect new extensions, object
   1890 	  codes, device property codes.
   1891 	* src/libmtp.c: modified mp4 to reflect it is a container format
   1892 	  not a codec.  Added more descriptions in init_filemap(). mp4
   1893           container format is ambiguous in
   1894 	  LIBMTP_Send_File_From_File_Descriptor(). Audio? video? both?.
   1895 	  mp4 searched in video by default.  Added comments about this.
   1896           Added support for the new format object types.
   1897 	* src/libmtp.h.in: added constants to reflect changes to
   1898           init_filemap().
   1899 
   1900 2006-12-30  Richard Low <richard (a] wentnet.com>
   1901 
   1902 	* src/libusb-glue.c: fixed bug in debug printing
   1903 
   1904 2006-12-29  Richard Low <richard (a] wentnet.com>
   1905 
   1906 	* src/libmtp.c: Made abstract list creation to be more
   1907 	  WMP like
   1908 	* src/libusb-glue.c: added Philips GoGear SA9200
   1909 	* src/ptp-pack.c: fixed packing bug in ptp_pack_OI
   1910 
   1911 2006-12-29  Marcus Meissner <meissner (a] suse.de>
   1912 
   1913 	* src/ptp.h: API changes for libgphoto2 to use the file
   1914 	  retrieveal functions.
   1915 	* src/ptp.c: dito.
   1916 	* src/libusb-glue.c: changes in libmtp reflecting the new
   1917 	  API for libgphoto2.
   1918 
   1919 2006-12-28  Linus Walleij <triad (a] df.lth.se>
   1920 
   1921 	* configure.ac: making older autotools happy. Bump to 0.1.1.
   1922 	* src/Makefile.am: bump interface for release, also autotools.
   1923 	* RELEASE libmtp 0.1.1.
   1924 
   1925 2006-12-19  Matthew Wilcox <matthew (a] wil.cx>
   1926 
   1927 	* src/ptp.c: fix a (serious) short file bug.
   1928 
   1929 2006-12-17  Richard Low <richard (a] wentnet.com>
   1930 
   1931 	* src/libmtp.c: don't bail out on failures when setting
   1932 	  metadata.
   1933 
   1934 2006-12-16  Linus Walleij <triad (a] df.lth.se>
   1935 
   1936 	* src/ptp.c: sync to upstream.
   1937 	* src/ptp.h: dito.
   1938 	* src/ptp-pack.c: dito.
   1939 	
   1940 2006-12-15  Linus Walleij <triad (a] df.lth.se>
   1941 
   1942 	* src/libmtp.h.in: make the format function take a storage as
   1943 	  parameter. Add comments to device storage.
   1944 	* src/libmtp.c: dito, fix up some code and docs.
   1945 	* examples/format.c: make the format command comply with
   1946 	  the new API.
   1947 
   1948 2006-12-14  Linus Walleij <triad (a] df.lth.se>
   1949 
   1950 	* src/libmtp.c: make get_first_storage_freespace() always query
   1951 	  the first storage when the space is requested. And some other
   1952 	  janitorial stuff.
   1953 	
   1954 2006-12-13  Linus Walleij <triad (a] df.lth.se>
   1955 
   1956 	* src/libusb-glue.c: one more device.
   1957 	* examples/detect.c: compilation warnings fixed.
   1958 
   1959 2006-12-13  Robert Reardon <rreardon (a] monkshatch.vispa.com>
   1960 
   1961 	* src/ptp.c: add 0xD901 flag as BuyNow property of objects.
   1962 	* src/ptp.h: ditto.
   1963 
   1964 2006-12-12  Daniel Williams <danielw (a] iinet.net.au>
   1965 
   1966 	* src/libmtp.h.in: revamped storage API.
   1967 	* src/libmtp.c: dito.
   1968 	* examples/detect.c: dito.
   1969 
   1970 2006-12-12  Robert Reardon <rreardon (a] monkshatch.vispa.com>
   1971 
   1972 	* src/libmtp.c: Send_Representative_Sample() updated to
   1973 	  set image height and width, or audio duration and size.
   1974 
   1975 2006-12-07  Linus Walleij <triad (a] df.lth.se>
   1976 
   1977 	* src/libmtp.h.in: support firmware object type. (Dangerous.)
   1978 	* src/libmtp.c: dito.
   1979 
   1980 2006-12-07  Linus Walleij <triad (a] df.lth.se>
   1981 
   1982 	* src/libmtp.c: default text folder detection (used in Samsung
   1983 	  Yepp T9) also add a few "My Foo" folder strings, remove the
   1984 	  "remaining directories" kludge.
   1985 	* src/libmtp.h.in: default text folder.
   1986 
   1987 2006-12-06  Linus Walleij <triad (a] df.lth.se>
   1988 
   1989 	* src/libmtp.h.in: extend the respresentative sample API a bit.
   1990 	* src/libmtp.c: dito.
   1991 	* examples/albumart.c: free memory after use.
   1992 	* examples/thumb.c: dito.
   1993 	* RELEASE this as libmtp 0.1.0!
   1994 
   1995 2006-12-04  Linus Walleij <triad (a] df.lth.se>
   1996 
   1997 	* src/ptp.c: enable split headers on sending object lists again.
   1998 
   1999 2006-12-04  Robert Reardon <rreardon (a] monkshatch.vispa.com>
   2000 
   2001 	* src/libmtp.c: abstract Send_Representative_Sample() so
   2002 	  it can send samples for any format that supports it
   2003 	* src/libmtp.h.in: same as above
   2004 	* examples/albumart.c: altered to use new abstract function above
   2005 	* example/thumb.c: sample program to upload thumbnails
   2006 	* example/Makefile.am: add sample thumbnail program
   2007 
   2008 2006-12-03  Linus Walleij <triad (a] df.lth.se>
   2009 
   2010 	* src/libmtp.c: check space on disk before sending
   2011 	  tracks or files.
   2012 	* src/libmtp.h.in: refactor LIBMTP_Send_Album_Art()
   2013 	  into LIBMTP_Send_Representative_Sample().
   2014 	* src/libmtp.c: dito.
   2015 	* examples/albumart.c: dito.
   2016 
   2017 2006-12-02  Marcus Meissner <meissner (a] suse.de>
   2018 
   2019 	* examples/Makefile.am: make sure symlinks really end
   2020 	  up in the correct dir.
   2021 
   2022 2006-11-30  Linus Walleij <triad (a] df.lth.se>
   2023 
   2024 	* src/ptp.c: make Matthews patch thread-safe and fix it
   2025 	  so it will handle more than one surplus packet.
   2026 	* src/ptp.h: dito.
   2027 
   2028 2006-11-30  Richard Low <richard (a] wentent.com>
   2029 
   2030 	* src/libmtp.c: memset PTPObjectInfo structs to 0
   2031 
   2032 2006-11-30  Matthew Wilcox <matthew (a] wil.cx>
   2033 
   2034 	* src/ptp.c: on some devices, surplus packet data is 
   2035 	  sometimes returned during read, i.e. a header of the
   2036 	  next package is typically attacked to the incoming 
   2037 	  data, as if someone was sending several packets at 
   2038 	  once. If this happens we buffer the surplus packet.
   2039 	* src/libusb-glue.c: revert my own mistakes by making
   2040 	  them Windows-only.
   2041 
   2042 2006-11-30  Linus Walleij <triad (a] df.lth.se>
   2043 
   2044 	* configure.ac: this *is* gonna be libmtp 0.1.0!
   2045 	* src/Makefile.am: age interface to 4-0-0 to indicate that
   2046 	  intefaces have been removed.
   2047 	* src/libmtp.h.in: removed external object interface.
   2048 	* src/libmtp.c: dito. Made all object manipulation functions
   2049 	  static.
   2050 	
   2051 2006-11-29  Richard Low <richard (a] wentnet.com>
   2052 
   2053 	* src/libusb-glue.c: added new devices
   2054 
   2055 2006-11-29  Linus Walleij <triad (a] df.lth.se>
   2056 
   2057 	* src/libusb-glue.c: remove some pointless #include <>
   2058 	  clutter, call usb_set_configuration() as needed by
   2059 	  Windows.
   2060 	* src/libmtp.c: various fixups to enable use of Windows
   2061 	  <io.h> include file.
   2062 	* README.windows.txt: added a quick porting guide for 
   2063 	  MSVC by Farooq Zaman.
   2064 
   2065 2006-11-28  Linus Walleij <triad (a] df.lth.se>
   2066 
   2067 	* src/libmtp.h.in: removed filetype mapping API. We can handle
   2068 	  everything inside of libmtp now so no need for this.
   2069 	* src/libmtp.c: dito.
   2070 
   2071 2006-11-27  Linus Walleij <triad (a] df.lth.se>
   2072 
   2073 	* examples/files.c: unsigned int sized printout.
   2074 	* examples/tracks.c: sort of the same.
   2075 	* Makefile.am: HAL style map output by default.
   2076 
   2077 2006-11-26  Richard Low <richard (a] wentnet.com>
   2078 
   2079 	* src/libmtp.c: object handles for proplists
   2080 	* src/ptp-pack.c: ditto
   2081 	* src/ptp.c: ditto
   2082 	* src/ptp.h: ditto
   2083 
   2084 2006-11-25  Marcus Meissner <marcus (a] jet.franken.de>
   2085 
   2086 	* examples/hotplug.c: adding HAL style XML output for 
   2087 	  the devices.
   2088 	* examples/Makefile.am: fixing a bug in the automake 
   2089 	  file (pathutils.h missing!)
   2090 	* Makefile.am: fix the problem with re-making sources
   2091 	  (you had to run ./autogen.sh before!)
   2092 
   2093 2006-11-23  Linus Walleij <triad (a] df.lth.se>
   2094 
   2095 	* src/libusb-glue.h: add a new bug flag for devices that
   2096 	  have broken PTP_OC_MTP_GetObjPropList implementations.
   2097 	* src/libusb-glue.c: state that all iRivers have this problem.
   2098 	* src/libmtp.c: disable the user of ptp_mtp_getobjectproplist()
   2099 	  for these devices.
   2100 
   2101 2006-11-21  Robert Reardon <rreardon (a] monkshatch.vispa.com>
   2102 
   2103 	* src/libmtp.c: set handle ids for new objects to 0 when
   2104 	  creating new albums and playlists.
   2105 
   2106 2006-11-21  Linus Walleij <triad (a] df.lth.se>
   2107 
   2108 	* src/libmtp.c: enabled enhanced mode for metadata retrieval
   2109 	  by default.
   2110 	* src/libmtp.c: fixed the problem with sending files using
   2111 	  enhanced commands.
   2112 
   2113 2006-11-20  Linus Walleij <triad (a] df.lth.se>
   2114 
   2115 	* src/ptp.h: sync to upstream libgphoto2
   2116 	* src/ptp.c: dito.
   2117 	* src/ptp-pack.c: dito.
   2118 	* src/libmtp.c: check for zerolength files/tracks.
   2119 
   2120 2006-11-20  Andy Kelk <andy (a] mopoke.co.uk>
   2121 
   2122 	* src/libmtp.h.in: add "parent_id" property to LIBMTP_track_struct. 
   2123 	* src/libmtp.c: get "parent_id" property when reading tracks.
   2124 	* examples/emptyfolders.c: new example program for pruning empty
   2125 	  folders. (does a dummy run by default).
   2126 
   2127 2006-11-19  Robert Reardon <rreardon (a] monkshatch.vispa.com>
   2128 
   2129 	* src/libmtp.c: use enhanced MTP commands to create playlists and
   2130 	  send files
   2131 	* examples/newplaylist.c: demo program for creating new playlists
   2132 	* examples/Makefile.am: add demo newplaylists program
   2133 
   2134 2006-11-19  Daniel Williams <danielw (a] iinet.net.au>
   2135 
   2136 	* src/libusb-glue.c: fix error on reconnect.
   2137 	
   2138 2006-11-18  Richard Low <richard (a] wentnet.com>
   2139 
   2140 	* src/ptp.c: tidy up ptp_usb_getdata
   2141 
   2142 2006-11-17  Richard Low <richard (a] wentnet.com>
   2143 
   2144 	* src/libmtp.c: fixed parent handle for uploaded tracks
   2145 
   2146 2006-11-17  Robert Reardon <rreardon (a] monkshatch.vispa.com>
   2147 
   2148 	* src/libmtp.c: fixed up album art using enhanced commands.
   2149 
   2150 2006-11-16  Richard Low <richard (a] wentnet.com>
   2151 
   2152 	* src/libmtp.c: a crude implementation of ptp_mtp_getobjectproplist
   2153 	* src/ptp.c: ditto
   2154 	* src/ptp.h: ditto
   2155 	* src/ptp-pack.c: ditto
   2156 
   2157 2006-11-16  Robert Reardon <rreardon (a] monkshatch.vispa.com>
   2158 
   2159 	* src/libmtp.c: use enhanced MTP commands to create albums and
   2160 	  add detection of the default album folder.
   2161 	* src/libmtp.h.in: add a holder for album default folder.
   2162 	
   2163 2006-11-15  Richard Low <richard (a] wentnet.com>
   2164 
   2165 	* src/ptp-pack.c: set string buffer to correct size.
   2166 
   2167 2006-11-14  Richard Low <richard (a] wentnet.com>
   2168 	
   2169 	* examples/tracks.c: really use undeprecated API entry.
   2170 
   2171 2006-11-13  Richard Low <richard (a] wentnet.com>, Linus Walleij <triad (a] df.lth.se>
   2172 
   2173 	* src/libmtp.h.in: add LIBMTP_Get_Tracklisting_With_Callback()
   2174 	  and LIBMTP_Get_Filelisting_With_Callback()
   2175 	* src/libmtp.c: dito, deprecate LIBMTP_Get_Tracklisting()
   2176 	  and LIBMTP_Get_Filelisting()
   2177 	* examples/tracks.c: use undeprecated API entry.
   2178 	* examples/connect.c: ditto.
   2179 	* examples/detect.c: ditto.
   2180 	* examples/files.c: ditto.	
   2181 	* src/ptp.c: working on getting object prop lists.
   2182 	* src/ptp.h: dito.
   2183 
   2184 2006-11-12  Richard Low <richard (a] wentnet.com>
   2185 
   2186 	* src/libusb-glue.c: added Zen Vision W to devices
   2187 
   2188 2006-11-07  Richard Low <richard (a] wentnet.com>
   2189 
   2190 	* src/libmtp.c: added checks for supported properties
   2191 
   2192 2006-11-06  Richard Low <richard (a] wentnet.com>
   2193 
   2194 	* src/libmtp.c: added a check for NULL filenames in
   2195 	  LIBMTP_Get_Folder_List.
   2196 
   2197 2006-11-01  Linus Walleij <triad (a] df.lth.se>
   2198 
   2199 	* src/libmtp.h.in: set/get uint8 to/from objects
   2200 	* src/libmtp.c: send object property list.
   2201 	* src/ptp.c: dito.
   2202 	* src/ptp.h: dito.
   2203 	* src/ptp-pack.c: dito.
   2204 
   2205 2006-10-29  Andy Kelk <andy (a] mopoke.co.uk>
   2206 
   2207 	* examples/albumart.c: simple tool for adding album art.
   2208 	* src/libmtp.c: graceful handling of players not supporting 
   2209 	  abstract album objects.
   2210 
   2211 2006-10-27  Linus Walleij <triad (a] df.lth.se>
   2212 
   2213 	* src/Makefile.am: bump library interface to reflect the new
   2214 	  album methods.
   2215 	* configure.ac: bump to 0.0.22 for the next release.
   2216 
   2217 2006-10-27  Andy Kelk <andy (a] mopoke.co.uk>
   2218 
   2219 	* src/libmtp.c: add support form abstract audio/video albums.
   2220 	* src/libmtp.h.in: dito.
   2221 
   2222 2006-10-23  Linus Walleij <triad (a] df.lth.se>
   2223 
   2224 	* src/libmtp.c: retire opcode rendering (moved to ptp.c)
   2225 	* src/ptp.c: sync to upstream.
   2226 	* src/ptp.h: dito.
   2227 	* src/ptp-pack.c: dito.
   2228 
   2229 2006-10-20  Linus Walleij <triad (a] df.lth.se>
   2230 
   2231 	* Release 0.0.21 to get all the new device support out.
   2232 	
   2233 2006-10-16  Linus Walleij <triad (a] df.lth.se>
   2234 
   2235 	* configure.ac: bump to 0.0.21.
   2236 	* src/libusb-glue.c: add code to unload a kernel driver for
   2237 	  the primary interface if it is already in use under Linux.
   2238 	* src/libusb-glue.h: add a device flag to make this possible.
   2239 
   2240 2006-10-11  Linus Walleij <triad (a] df.lth.se>
   2241 
   2242 	* examples/delfile.c: patch from Chris Debenham 
   2243 	  straingtening out the command-line interface a bit
   2244 	  more.
   2245 
   2246 2006-10-10  Linus Walleij <triad (a] df.lth.se>
   2247 
   2248 	* examples/delfile.c: patch from Chris Debenham to make 
   2249 	  this command take an optional filename as parameter 
   2250 	  instead of file ID.
   2251 
   2252 2006-09-26  Linus Walleij <triad (a] df.lth.se>
   2253 
   2254 	* libmtp.pc.in: require libusb instead of just linking it.
   2255 	* configure.ac: bump release to 0.0.20 and release.
   2256 
   2257 2006-09-25  Linus Walleij <triad (a] df.lth.se>
   2258 
   2259 	* examples/evolution-sync.sh: example script to illustrate
   2260 	  to to transfer calendar, task and contact information
   2261 	  to a device supporting this.
   2262 
   2263 2006-09-19  Linus Walleij <triad (a] df.lth.se>
   2264 
   2265 	* src/libmtp.h.in: fixed attribute IDs to be 16bit.
   2266 	* src/libmtp.c: dito.
   2267 	* examples/sendfile.c: support vcard3.
   2268 
   2269 2006-09-16  Linus Walleij <triad (a] df.lth.se>
   2270 
   2271 	* configure.ac: bump to 0.0.19 and release. There are some
   2272 	  new devices as well.
   2273 	* src/unicode.c: retire unused code.
   2274 
   2275 2006-09-13  Linus Walleij <triad (a] df.lth.se>
   2276 
   2277 	* examples/format.c: formatting test program.
   2278 	* examples.Makefile.am: added format.
   2279 
   2280 2006-09-13  Andy Kelk <andy (a] mopoke.co.uk>
   2281 
   2282 	* src/libmtp.h.in: added interface to format storage.
   2283 	* src/libmtp.c: dito.
   2284 	* src/ptp.c: dito.
   2285 	* src/ptp.h: dito.
   2286 
   2287 2006-09-12  Linus Walleij <triad (a] df.lth.se>
   2288 
   2289 	* configure.ac: bump release. Released 0.0.18 yesterday.
   2290 	* src/libmtp.c: do not try to read battery max level unless
   2291 	  the device supports it. (Bug occurred on Toshiba Gigabeat 
   2292 	  P10.)
   2293 
   2294 2006-09-11  Linus Walleij <triad (a] df.lth.se>
   2295 
   2296 	* src/libusb-glue.c: messed around a bit with device descriptor
   2297 	  detection so as to bring closer to libgphoto2 detection algorithm.
   2298 	  I've seen things that might be false positives, possibly USB mass
   2299 	  storage devices with additional MSFT descriptors to indicate they
   2300 	  have Janus DRM. 
   2301 	* src/libmtp.c: use UCS-2-INTERNAL if we're not on glibc. glibc
   2302 	  knows that UCS-2 is in machine endianness but Darwin and *BSD does
   2303 	  not. Detect C library and switch accordingly.
   2304 	* src/unicode.c: retire old unicode code only keep things we cannot
   2305 	  live without. Remove the own internal UCS-2 conversion engine and
   2306 	  the internal iconv() engine and use the one already available in
   2307 	  PTPParams.
   2308 	* src/unicode.h: dito.
   2309 
   2310 2006-09-07  Linus Walleij <triad (a] df.lth.se>
   2311 
   2312 	* src/libusb-glue.h: added device flags so we can make
   2313 	  the code behave differently on certain devices.
   2314 	* src/libusb-glue.c: dito, plus removed some debug prints.
   2315 	* src/libmtp.c: docs.
   2316 	* src/libmtp.h.in: added device_flags to device list struct.
   2317 	* src/Makefile.am: bumped to compatible library interface.
   2318 	* configure.ac: bump version to 0.0.18 (0.0.17 released
   2319 	  yesterday).
   2320 
   2321 2006-09-06  Richard Low <richard (a] wentnet.com>
   2322 
   2323 	* src/libusb-glue.c: changed packet sizes to improve
   2324 	  transfer speeds.
   2325 	* src/libmtp.c: changed packet sizes to improve transfer
   2326 	  transfer speeds. Also stopped extra ptp_getobjectinfo
   2327 	  calls when getting directories on connect.
   2328 
   2329 2006-09-06  Linus Walleij <triad (a] df.lth.se>
   2330 
   2331 	* src/libusb-glue.c: fixed some endpoint size detection
   2332 	  and sending special file sizes stuff. Real hairy bug...
   2333 	  Also messed around a bit with the callbacks.
   2334 	* src/libmtp.c: changes for callback size detection.
   2335 
   2336 2006-09-04  Linus Walleij <triad (a] df.lth.se>
   2337 
   2338 	* src/libmtp.c: bug in streaming code, use defined USB_BULK_HDR_SIZE
   2339 	  instead of magic values.
   2340 
   2341 2006-09-02  Linus Walleij <triad (a] df.lth.se>
   2342 
   2343 	* src/libmtp.c: add some code to have 
   2344 	  LIBMTP_Send_File_From_File_Descriptor() accept a stream
   2345 	  if size is set to (uint64_t) -1, plus documentation fixes.
   2346 	  I don't think the streaming code will work but whoever want
   2347 	  to experiment with it has a place to start.
   2348 	* examples/refactortest.c: removed. Who uses this?
   2349 
   2350 2006-08-30  Linus Walleij <triad (a] df.lth.se>
   2351 
   2352 	* configure.ac: version bump.
   2353 	* src/libmtp.c: more debug prints.
   2354 	* src/libusb-glue.c: new iRiver device called Clix. By
   2355 	  the way I released libmtp 0.0.16 yesterday.
   2356 
   2357 2006-08-28  Linus Walleij <triad (a] df.lth.se>
   2358 
   2359 	* configure.ac: version bump.
   2360 	* src/ptp-pack.c: upstream has committed my patch giving full
   2361 	  unicode support in libgphoto2 ptp2 camlib. No need for
   2362 	  any more ugly workarounds, plus we now have full unicode
   2363 	  filenames!
   2364 	* src/ptp.c: dito.
   2365 	* src/ptp.h: dito.
   2366 	* src/libmtp.c: revamp to use the new unicode support in
   2367 	  libgphoto2.
   2368 	* src/unicode.c: remove unused functionality.
   2369 	* src/unicode.h: dito.
   2370 
   2371 2006-08-27  Linus Walleij <triad (a] df.lth.se>
   2372 
   2373 	* configure.ac: version bump. Release all these fixes
   2374 	  as 0.0.15.
   2375 	* src/libusb-glue.c: fixed sucky errors. Added callback
   2376 	  code when reading files.
   2377 	* src/libusb-glue.h: const correctness.
   2378 	* src/libmtp.h.in: finally fixup the type on the callbacks.
   2379 	* src/libmtp.c: more accurate sending callbacks. Callbacks
   2380 	  when getting files also, working correctly. Typeing of
   2381 	  callbacks now OK.
   2382 	* examples/getfile.c: some display bar cosmetic fixup.
   2383 	* TODO: lots of the things todo are now done.
   2384 
   2385 2006-08-26  Linus Walleij <triad (a] df.lth.se>
   2386 
   2387 	* configure.ac: version bump.
   2388 	* src/libmtp.c: fix bug and reinstate callbacks.
   2389 	* src/libusb-glue.h: dito.
   2390 	* src/libusb-glue.c: dito.
   2391 
   2392 2006-08-25  Linus Walleij <triad (a] df.lth.se>
   2393 
   2394 	* src/libmtp.c: use the new file descriptor sender function.
   2395 	  Going to release this as 0.0.13.
   2396 	* src/ptp.c: upstream accepted patches synced in.
   2397 	* src/ptp.h: dito.
   2398 
   2399 2006-08-22  Linus Walleij <triad (a] df.lth.se>
   2400 
   2401 	* src/libusb-glue.c: found a real nasty endpoint bug,
   2402 	  code from libgphoto2 was assuming max packet size of
   2403 	  512 bytes while it is 64 when a USB 2.0 device is
   2404 	  plugged into an UHCI hub.
   2405 
   2406 2006-08-22  Linus Walleij <triad (a] df.lth.se>
   2407 
   2408 	* configure.ac: bump to 0.0.13, also released 0.0.12 now.
   2409 	
   2410 2006-08-21  Linus Walleij <triad (a] df.lth.se>
   2411 
   2412 	* src/libmtp.c: fixup mmap() usage and add madvise() 
   2413 	  as result of experiments by Gavin McCullagh. Upstream
   2414 	  accept patch to get files directly to file descriptor.
   2415 	  Move iconv() converters into device struct for thread
   2416 	  safety.
   2417 	* src/ptp.c: sync to upstream which merges patch to get
   2418 	  file directly to file descriptor.
   2419 	* src/ptp.h: dito.
   2420 	* src/unicode.c: move iconv() converters into the device
   2421 	  struct for thread safety.
   2422 	* src/unicode.h: dito.
   2423 
   2424 2006-08-20  Linus Walleij <triad (a] df.lth.se>
   2425 
   2426 	* src/libmtp.h.in: set friendly name and sync partner,
   2427 	  rename ownername to friendlyname.
   2428 	* src/libmtp.c: dito.
   2429 	* examples/detect.c: reflect changes.
   2430 	* src/Makefile.am: interface is incompatible so age it.
   2431 	
   2432 2006-08-19  Linus Walleij <triad (a] df.lth.se>
   2433 
   2434 	* src/libmtp.h.in: add function to get syncronization
   2435 	  partner for the device.
   2436 	* src/libmtp.c: dito.
   2437 	* examples/detect.c: use that function.
   2438 	* src/Makefile.am: backward-compatible interface bump.
   2439 
   2440 2006-08-17  Linus Walleij <triad (a] df.lth.se>
   2441 
   2442 	* configure.ac: bump to 0.0.12 and require iconv.h.
   2443 
   2444 2006-08-16  Linus Walleij <triad (a] df.lth.se>
   2445 
   2446 	* src/unicode.c: remove bigendian weirdness and switch
   2447 	  to using iconv() instead.
   2448 	* src/unicode.h: dito.
   2449 	* src/libmtp.c: reflect changes.
   2450 	
   2451 2006-08-09  Linus Walleij <triad (a] df.lth.se>
   2452 
   2453 	* Release libmtp 0.0.11.
   2454 
   2455 2006-08-04  Linus Walleij <triad (a] df.lth.se>
   2456 
   2457 	* src/libmtp.c: patch from Dan Aloni to make sendfile
   2458 	  use mmap and avoid memory drainage.
   2459 	* src/libusb-glue.c: patch from Andy Kelk to avoid 
   2460 	  exit():ing when the interface cannot be claimed.
   2461 	* configure.ac: version bump.
   2462 
   2463 2006-07-27  Linus Walleij <triad (a] df.lth.se>
   2464 	
   2465 	* Release libmtp 0.0.10.
   2466 
   2467 2006-07-26  Linus Walleij <triad (a] df.lth.se>
   2468 
   2469 	* src/libusb-glue.c: new SanDisk devices.
   2470 	* src/libmtp.c: only set metdata properties supported by
   2471 	  the device, duh.
   2472 	* src/ptp.c: sync to upstream.
   2473 	* src/ptp.h: sync to upstream.
   2474 	* configure.ac: bump to 0.0.10.
   2475 
   2476 2006-06-22  Linus Walleij <triad (a] df.lth.se>
   2477 
   2478 	* Release libmtp 0.0.9.
   2479 
   2480 2006-06-21  Linus Walleij <triad (a] df.lth.se>
   2481 
   2482 	* src/libmtp.h.in: added function to retrieve supported
   2483 	  filetypes.	
   2484 	* src/libmtp.c: ditto.
   2485 	* examples/detect.c: use that function.
   2486 
   2487 2006-06-19  Linus Walleij <triad (a] df.lth.se>
   2488 
   2489 	* src/unicode.c: support all endianness, detect 
   2490 	  byte-order-mark
   2491 	* src/unicode.h: ditto.
   2492 	* src/libmtp.c: ditto.
   2493 	* examples/detect.c: use proper tempfile function.
   2494 	* src/libmtp.h.in: add some more track properties.
   2495 	* src/libmtp.c: ditto.
   2496 	* examples/tracks.c: ditto.
   2497 	
   2498 2006-06-16  Linus Walleij <triad (a] df.lth.se>
   2499 
   2500 	* src/libmtp.h.in: new interfaces for single metadata post
   2501 	  retrieveal.
   2502 	* src/libmtp.c: ditto.
   2503 	* examples/playlists.c: display track info using the new
   2504 	  individual track metadata retrieveal method.
   2505 	* examples/getplaylist.c: ditto.
   2506 
   2507 2006-06-13  Linus Walleij <triad (a] df.lth.se>
   2508 
   2509 	* src/libmtp.h.in: added default folders to device struct.
   2510 	  Add some new function prototypes.
   2511 	* src/libmtp.c: discover and use the default folders if
   2512 	  we can find them. Retrieve device secure time and cert
   2513 	  out of sheer curiosity.
   2514 	* src/ptp.c: sync to libgphoto2 with my patches.
   2515 	* src/ptp.h: ditto.
   2516 
   2517 2006-06-07  Linus Walleij <triad (a] df.lth.se>
   2518 
   2519 	* src/libmtp.h.in: new playlist API and refactorings.
   2520 	* src/libmtp.c: ditto, and refactorings.
   2521 	* src/unicode.h: const correctness.
   2522 	* src/unicode.c: ditto.
   2523 	* examples/playlists.c: new example program.
   2524 	* configure.ac: bump to 0.0.9
   2525 	* src/Makefile.am: bump library interface.
   2526 	
   2527 2006-06-05  Linus Walleij <triad (a] df.lth.se>
   2528 
   2529 	* examples/sendtr.c: fixed annoying bug that made this
   2530 	  program totally useless.
   2531 	* src/libmtp.c: cosmetics.
   2532 	* configure.ac: bump to 0.0.8.
   2533 
   2534 2006-06-03  Linus Walleij <triad (a] df.lth.se>
   2535 
   2536 	* src/libmtp.c: metadata bugs, album name and genre
   2537 	  confused. Fixe it and released libmtp 0.0.7.
   2538 
   2539 2006-06-01  Linus Walleij <triad (a] df.lth.se>
   2540 
   2541 	* Released libmtp 0.0.6.
   2542 
   2543 2006-05-31  Linus Walleij <triad (a] df.lth.se>
   2544 
   2545 	* src/libmtp.c: fixed mapping for JPEG vs JFIF
   2546 	* src/libmtp.h.in: added proper type for JPEG
   2547 	* examples/sendfile.c: send proper JPEG type
   2548 
   2549 2006-05-30  Flavien Lebarbe <flavien+libmtp (a] lebarbe.net>
   2550 
   2551 	* src/libmtp.c: fixed a bug in update metadata due to
   2552 	  bad use of return code.
   2553 	* src/libusb-glue.c: fixed a loop exiting problem with
   2554 	  good 'ol GOTO.
   2555 	
   2556 2006-05-29  Linus Walleij <triad (a] df.lth.se>
   2557 
   2558 	* src/libusb-glue.c: one more device.
   2559 	* doc/examples.h: produce correct documentation.
   2560 	* configure.ac: bump to 0.0.6.
   2561 	* src/ptp.c: sync to libgphoto2.
   2562 	* src/ptp.h: ditto.
   2563 	* src/ptp-pack.c: ditto.
   2564 	* src/libmtp.c: fixed all filetype API related functions
   2565 	  not to use any PTP intrinsic defines at all, made all
   2566 	  parameters to functions use the internal libmtp interface
   2567 	  enumerations and definitions. Removed LIBMTP_Release():
   2568 	  we can live with the memory lost during init. You're not
   2569 	  supposed to re-initialize the device. Consequently removed
   2570 	  the delete function that cleaned the filetype assoc list.
   2571 	* examples/refactortest.c: reflect changes.
   2572 
   2573 2006-05-26  Dave Kelly <libmtp (a] ravelox.co.uk>
   2574 
   2575 	* src/libmtp.c: refactored object handling to be more generic
   2576 	* src/libmtp.h.in: ditto
   2577 	* examples/refactortest.c: Added simple example to use refactoring
   2578 	* examples/getplaylist.c: Added example to extract playlist data
   2579 	* src/ptp.c: Re-added ptp_get/set_objectreferences to allow 
   2580 	  for playlist handling
   2581 	* src/ptp.h: ditto
   2582 
   2583 2006-05-08  Linus Walleij  <triad (a] df.lth.se>
   2584 
   2585 	* src/libmtp.h.in: add simple detection function.
   2586 	* src/libusb-glue.c: implement MTP "OS descriptor" for
   2587 	  looking for MTP devices.
   2588 	* examples/detect.c: make it possible to do very 
   2589 	  rudimentary detection with "detect -p".
   2590 	* configure.ac: bump to 0.0.5.
   2591 
   2592 2006-05-07  Linus Walleij  <triad (a] df.lth.se>
   2593 
   2594 	* COPYING: since we no longer use any parts of libptp2
   2595 	  and only files from libgphoto2, we switch to the GNU
   2596 	  Lesser General Public License (GNU LGPL). libptp2 is
   2597 	  a derived work from libgphoto2, and so is libmtp, there
   2598 	  are no remnants of libptp2 in libmtp anymore.
   2599 
   2600 2006-05-04  Linus Walleij  <triad (a] df.lth.se>
   2601 
   2602 	* examples/sendfile.c: fixes some more filetypes.
   2603 	* src/libmtp.c: respectfully rearranged to use a filetype mapping 
   2604 	  table.
   2605 	* src/ptp-pack.c: real nasty unicode packing bug.
   2606 	* Release libmtp 0.0.4.
   2607 
   2608 2006-05-02  Linus Walleij  <triad (a] df.lth.se>
   2609 
   2610 	* src/libmtp.c: general shaping up for release. All track
   2611 	  and file sending functions now respects a parent ID to be
   2612 	  sent along with files and tracks.
   2613 	* src/libmtp.h.in: dito.
   2614 	* src/libusb-glue.c: dito.
   2615 	* examples/sendfile.c: interface dependency changes.
   2616 	* examples/sendtr.c: dito.
   2617 
   2618 2006-04-30  Linus Walleij  <triad (a] df.lth.se>
   2619 
   2620 	* src/ptp.c: sync upstream.
   2621 	* src/ptp.h: dito.
   2622 
   2623 2006-04-27  Linus Walleij  <triad (a] df.lth.se>
   2624 
   2625 	* examples/sendfile.c: first file sender program based
   2626 	  on API implementation and changes by Chris Allegretta.
   2627 	* examples/Makefile.am: new program, new entry.
   2628 	* src/libmtp.c: reflect this new functionality.
   2629 	* src/libmtp.h.in: dito.
   2630 	
   2631 2006-04-25  Linus Walleij  <triad (a] df.lth.se>
   2632 
   2633 	* Rebased the sources around libgphoto2 instead.
   2634 	  This was a major revision...
   2635 	* src/ptp.c: imported libgphoto2 version verbatim.
   2636 	* src/ptp.h: imported libgphoto2 version, minor patch.
   2637 	* src/ptp-pack.c: imported libgphoto2 version, minor patch.
   2638 	* src/ptp-pack.h: dropped, libgphoto2 does not use it.
   2639 	* src/mtp.c: dropped, since all functions are now in ptp.c
   2640 	* src/mtp-pack.c: dropped, same reason.
   2641 	* src/mtp.h: dropped, same reason.
   2642 	* src/mtp-pack.h: dropped, same reason.
   2643 
   2644 2006-04-21  Linus Walleij  <triad (a] df.lth.se>
   2645 
   2646 	* Released libmtp 0.0.3
   2647 	* Bumped source to 0.0.4
   2648 
   2649 2006-04-21  Linus Walleij  <triad (a] df.lth.se>
   2650 
   2651 	* src/ptp-pack.c: GCC 4.x compilation patch from
   2652 	  Diego Petten.
   2653 	* src/libusb-glue.c: New Samsung device and some
   2654 	  from libgphoto2.
   2655 	* src/ptp.h: some defines from libgphoto2 to get
   2656 	  a bit more compatible.
   2657 	* src/libmtp.c: Added a folder API implementation by
   2658 	  Dave "ravelox" Kelly.
   2659 	* src/libmtp.h.in: dito.
   2660 	* examples/folders.c: dito.
   2661 	* examples/newfolder.c: dito.
   2662 	* examples/trexist.c: dito.
   2663 	
   2664 2006-03-28  Linus Walleij  <triad (a] df.lth.se>
   2665 
   2666 	* m4/*: updated macros to work with GCC 4.1.0.
   2667 	* examples/hotplug.c: new program to create device
   2668 	  ID lists.
   2669 	* libmtp.rules: now an auto-generated file.
   2670 	* libmtp.usermap: now an auto-generated file.
   2671 
   2672 2006-03-24  Linus Walleij  <triad (a] df.lth.se>
   2673 
   2674 	* Beginning a file API, fixed some example program
   2675 	  names and such.
   2676 
   2677 2006-03-18  Linus Walleij  <triad (a] df.lth.se>
   2678 
   2679 	* Fixed up callback interface to a simpler version,
   2680 	  the old one was bloated stuff from libnjb anyway.
   2681 	  Bump to 0.0.2.
   2682 
   2683 2006-03-16  Linus Walleij  <triad (a] df.lth.se>
   2684 
   2685 	* Fixed the .h file and implementation so you really only
   2686 	  need this one .h file to interface the library.
   2687 
   2688 2006-03-15  Linus Walleij  <triad (a] df.lth.se>
   2689 
   2690 	* Added three device information retrieval functions.
   2691 
   2692 2006-03-06  Linus Walleij  <triad (a] df.lth.se>
   2693 
   2694 	* Moving some things around to structure the source. More
   2695 	  will be needed...
   2696 
   2697 2006-02-27  Linus Walleij  <triad (a] df.lth.se>
   2698 
   2699 	* Release libmtp 0.0.1 so people have something to play with,
   2700 	  what the heck. Probably saves someones day.
   2701 
   2702 2006-02-24  Linus Walleij  <triad (a] df.lth.se>
   2703 
   2704 	* Deltr example program to delete tracks, plus corresponding
   2705 	  interface call.
   2706 	
   2707 2006-02-23  Linus Walleij  <triad (a] df.lth.se>
   2708 
   2709 	* Fixed up sendtr program and metadata tagging function that is
   2710 	  used after sending files.
   2711 
   2712 2006-02-22  Linus Walleij  <triad (a] df.lth.se>
   2713 
   2714 	* Untested gettr.c and sendtr.c programs to get and send tracks
   2715 	  created.
   2716 	
   2717 2006-01-30  Linus Walleij  <triad (a] df.lth.se>
   2718 
   2719 	* Created the initial GNU source directory structure.
   2720 	* Added the most basic files.
   2721