12009-09-12  Linus Walleij <triad@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
62009-09-11  Linus Walleij <triad@df.lth.se>
7
8	* src/music-players.h: tag all SONY NWZ walkmen with
9	  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST.
10
112009-08-27  Linus Walleij <triad@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
192009-08-27  Linus Walleij <triad@df.lth.se>
20
21	* src/libmtp.c: bugfixes again...
22
232009-08-25  Linus Walleij <triad@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
282009-08-23  Linus Walleij <triad@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
412009-08-12  Linus Walleij <triad@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
492009-08-02  Linus Walleij <triad@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
562009-07-24  Linus Walleij <triad@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
622009-07-24  Linus Walleij <triad@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
692009-06-24  Linus Walleij <triad@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
752009-06-20  Linus Walleij <triad@df.lth.se>
76
77	* examples/pathutils.c: detect VCF files too.
78
792009-06-15  Marcus Meissner <meissner@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
902009-06-15  Linus Walleij <triad@df.lth.se>
91
92	* configure.ac: some buildsystem updates.
93	* INSTALL: some doc updates.
94
952009-06-15  Marcus Meissner <meissner@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
1712009-06-02  Linus Walleij <triad@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
1792009-05-09  Linus Walleij <triad@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
1892009-05-06  Linus Walleij <triad@df.lth.se>
190
191	* src/ptp.h: sync to upstream.
192	* src/ptp.c: dito.
193	* src/ptp-pack.c: dito.
194
1952009-05-06  Linus Walleij <triad@df.lth.se>
196
197	A host of Windows fixes from
198	Carlo Bramini <carlo_bramini@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
2412009-05-03  Richard Low <richard@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
2572009-05-02 Richard Low <richard@wentnet.com>
258
259	* src/ptp-pack.c: add a NULL check
260
2612009-04-18  Richard Low <richard@wentnet.com>
262
263	* src/ptp-pack.c: add terminating NULL character
264
2652009-04-11  Richard Low <richard@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
2792009-03-17  Linus Walleij <triad@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
2902009-03-08  Linus Walleij <triad@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
2962009-03-04  Linus Walleij <triad@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
3012009-02-21  Linus Walleij <triad@df.lth.se>
302
303	* src/libmtp.c: some additional NULL checks from
304	  Florent Pillet.
305
3062009-02-18  Linus Walleij <triad@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
3142009-01-30  Linus Walleij <triad@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
3202009-01-22  Linus Walleij <triad@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	
3252009-01-16  Linus Walleij <triad@df.lth.se>
326
327	* src/ptp.c: sync to upstream.
328	* src/ptp.h: dito.
329
3302009-01-15  Linus Walleij <triad@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
3362009-01-14  Linus Walleij <triad@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
3442009-01-10  Linus Walleij <triad@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
3512009-01-06  Linus Walleij <triad@df.lth.se>
352
353	* src/Makefile.am: patch from Rafael Laboissiere removing a
354	  build artifact in distclean.
355
3562009-01-02  Linus Walleij <triad@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
3672008-12-21  Linus Walleij <triad@df.lth.se>
368
369	* Release libmtp 0.3.5.
370
3712008-12-15  Nathan Bullock <nathanbullock@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
3762008-12-13  Linus Walleij <triad@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
3922008-12-02  Linus Walleij <triad@df.lth.se>
393
394	* examples/util.c: another NULL check.
395
3962008-11-25  Linus Walleij <triad@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
4022008-11-17  Alistair Boyle <alistair.js.boyle@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
4092008-11-11  Linus Walleij <triad@df.lth.se>
410
411	* src/libmtp.c: allow for playlists with zero tracks on them,
412	  also in update.
413
4142008-11-09  Linus Walleij <triad@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
4202008-11-07  Linus Walleij <triad@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	
4262008-11-05  Linus Walleij <triad@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
4322008-11-01  Linus Walleij <triad@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
4412008-10-21  Linus Walleij <triad@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
4502008-10-16  Linus Walleij <triad@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
4592008-09-28  Alvin <alvinbeach@gmail.com>
460
461	* src/libmtp.c: fix several bugs in Ogg filetype support.
462
4632008-09-26  Richard Low <richard@wentnet.com>
464
465	* src/libmtp.c: check propdesc before setting props in
466	  create_new_abstract_list()
467
4682008-09-25  Linus Walleij <triad@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	
4742008-09-24  Linus Walleij <triad@df.lth.se>
475
476	* src/libmtp.h.in: add new filename setting functions, patch
477	  from Florent Mertens <flomertens@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
4842008-09-23  Richard Low <richard@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
4902008-09-22  Linus Walleij <triad@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
4962008-09-20  Joe Nahmias <joe@nahmias.net>
497
498	* examples/sendtr.c: added option to specify which 
499	  storage_id the track should be copied.
500
5012008-09-20  Linus Walleij <triad@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
5082008-09-17  Linus Walleij <triad@df.lth.se>
509
510	* src/libmtp.h.in: new helper macros from
511	  Alvin <alvinbeach@gmail.com> plus some docs.
512
5132008-09-12  Linus Walleij <triad@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
5192008-09-07  Richard Low <richard@wentnet.com>
520
521	* src/music-players.h: added Panasonic P905i
522
5232008-09-05  Marcus Meissner <meissner@suse.de>
524
525	* src/libmtp.sym: update symbol export table.
526	* src/Makefile.am: fix up some magic for symbol export.
527
5282008-09-04  Linus Walleij <triad@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
5362008-08-31  Linus Walleij <triad@df.lth.se>
537
538	* src/ptp.h: sync to upstream.
539	* src/ptp.c: sync to upstream.
540
5412008-08-30  Chris Bagwell <chris@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
5522008-08-30  Linus Walleij <triad@df.lth.se>
553
554	* src/ptp.c: sync to upstream.
555
5562008-08-28  Linus Walleij <triad@df.lth.se>
557
558	* examples/sendtr.c: fix non-strdup():ed strings to be
559	  copied, patch courtesy of Juanan Pereira.
560
5612008-08-25  Linus Walleij <triad@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
5682008-08-18  Linus Walleij <triad@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
5742008-08-17  Linus Walleij <triad@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
5842008-08-15  Alistair Boyle <alistair.js.boyle@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
5942008-08-15  Linus Walleij <triad@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
6042008-08-14  Linus Walleij <triad@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
6112008-07-31  Linus Walleij <triad@df.lth.se>
612
613	* src/music-players.h: several new devices and flags.
614
6152008-06-24  Linus Walleij <triad@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	
6232008-06-22  Linus Walleij <triad@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
6532008-06-15  Linus Walleij <triad@df.lth.se>
654
655	* src/libmtp.c: only look for default folders in the
656	  root folder on the primary storage, even.
657
6582008-06-14  Linus Walleij <triad@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	
6642008-06-08  Linus Walleij <triad@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	
6712008-06-03  Linus Walleij <triad@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
6842008-06-02  Linus Walleij <triad@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	
6952008-06-01  Linus Walleij <triad@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
7042008-05-30  Linus Walleij <triad@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
7102008-05-28  Linus Walleij <triad@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
7262008-05-23  Linus Walleij <triad@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
7442008-05-18  Richard Low <richard@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
7542008-05-05  Linus Walleij <triad@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
7602008-05-04  Linus Walleij <triad@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
7682008-05-03  Johannes Huber <johub1180@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
7792008-04-27  Linus Walleij <triad@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
7862008-04-24  Linus Walleij <triad@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	
7952008-03-26  Linus Walleij <triad@df.lth.se>
796
797	* examples/pathutils.c: fix a folder identification bug,
798	  courtesy of Dr Nicholas Jacobs.
799
8002008-03-12  Linus Walleij <triad@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
8142008-03-08  Linus Walleij <triad@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
8202008-03-02  Linus Walleij <triad@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	
8292008-02-24  Richard Low <richard@wentnet.com>
830
831	* src/music-players.h: add DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL
832	  for a broken Philips player.
833
8342008-02-18  Linus Walleij <triad@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
8412008-02-12  Nicolas Pennequin <nicolas.pennequin@free.fr>
842
843	* examples/sendtr.c: add transferred tracks to albums if possible.
844
8452008-02-10  Scott Snyder <snyder@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
8522008-02-06  Linus Walleij <triad@df.lth.se>
853
854	* src/libusb-glue.c: wait for response > 0 instead of > 2.
855
8562008-01-28  Linus Walleij <triad@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
8652008-01-28  Linus Walleij <triad@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
8722008-01-27  Linus Walleij <triad@df.lth.se>
873
874	* src/libmtp.c: fix up some minor things and documentation on
875	  the object handling functions.
876
8772008-01-27  Florent Mertens <flomertens@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
8852008-01-27  Linus Walleij <triad@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
8912008-01-21  Richard Low <richard@wentnet.com>
892
893	* src/music-players.h: add Thomson Lyrca HC308A, remove
894	  incorrect ID for Creative Zen 8GB
895
8962008-01-20  Richard Low <richard@wentnet.com>
897
898	* src/libmtp.c: add LIBMTP_Get_Representative_Sample()
899	* src/libmtp.h.in: ditto
900
9012008-01-14  Linus Walleij <triad@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
9102008-01-11  Linus Walleij <triad@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	
9162008-01-08  Linus Walleij <triad@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
9232007-12-28  Linus Walleij <triad@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
9312007-11-30  Linus Walleij <triad@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
9392007-11-22  Linus Walleij <triad@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
9452007-11-09  Linus Walleij <triad@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@sensi.org>.
950	* examples/albumart.c: patch from Chris Waters <xtifr@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
9592007-11-05  Linus Walleij <triad@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
9652007-11-02  Linus Walleij <triad@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
9732007-10-31  Linus Walleij <triad@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
9792007-10-30  Linus Walleij <triad@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
9912007-10-25  Linus Walleij <triad@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
9962007-10-23  Linus Walleij <triad@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
10022007-10-19  Linus Walleij <triad@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
10102007-10-18  Linus Walleij <triad@df.lth.se>
1011
1012	* src/libmtp.c: fix the deletion of cached properties when
1013	  removing objects. This code was seriously broken.
1014
10152007-10-16  Jeff Mitchell <kde-dev@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
10242007-10-15  Linus Walleij <triad@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	
10322007-10-09  Jeff Mitchell <kde-dev@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
10382007-10-04  Linus Walleij <triad@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	
10472007-10-03  Linus Walleij <triad@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
10552007-10-02  Linus Walleij <triad@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
10682007-09-29  Richard Low <richard@wentnet.com>
1069
1070	* src/libmtp.c: avoid crash on failed connect
1071
10722007-09-28  Linus Walleij <triad@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
10802007-09-25  Linus Walleij <triad@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
10872007-09-23  Richard Low <richard@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
10932007-09-23  Linus Walleij <triad@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
11002007-09-21  Linus Walleij <triad@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	
11062007-09-18  Linus Walleij <triad@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
11122007-09-17  Linus Walleij <triad@df.lth.se>
1113
1114	* src/libusb-glue.c: silenced weirdo error message.
1115
11162007-09-16  Linus Walleij <triad@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
11252007-09-16  Richard Low <richard@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
11312007-09-15  Linus Walleij <triad@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
11382007-09-14  Linus Walleij <triad@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
11442007-09-12  Marcus Meissner <meissner@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	
11522007-09-06  Linus Walleij <triad@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
11592007-09-05  Richard Low <richard@wentnet.com>
1160
1161	* src/libmtp.c: album fixups
1162
11632007-09-05  Linus Walleij <triad@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
11682007-09-04  Linus Walleij <triad@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
11752007-09-01  Linus Walleij <triad@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	
11822007-08-29  Linus Walleij <triad@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@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
11932007-08-28  Linus Walleij <triad@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
12032007-08-24  Linus Walleij <triad@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
12132007-08-22  Linus Walleij <triad@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
12222007-08-16  Richard Low <richard@wentnet.com>
1223
1224	* src/ptp-pack.c: allow packing of NULL strings
1225
12262007-08-15  Robert Reardon <rreardon@monkshatch.vispa.com>
1227
1228	* src/libmtp.c: return device max values for representative
1229	  samples.
1230
12312007-08-15  Richard Low <richard@wentnet.com>
1232
1233	* src/libusb-glue.c: added Philips Shoqbox
1234
12352007-08-13  Linus Walleij <triad@df.lth.se>
1236
1237	* src/ptp.c: sync to upstream.
1238
12392007-08-07  Linus Walleij <triad@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
12452007-08-06  Linus Walleij <triad@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
12572007-08-06  Linus Walleij <triad@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
12632007-08-05  Richard Low <richard@wentnet.com>
1264
1265	* src/libmtp.c: send 64 bit filesize
1266
12672007-08-04  Linus Walleij <triad@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
12772007-08-04  Richard Low <richard@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
12832007-08-03  Marcus Meissner <meissner@suse.de>
1284
1285	* m4/byteorder.m4: byteorder fixes.
1286
12872007-07-30  Richard Low <richard@wentnet.com>
1288
1289	* src/ptp-pack.c: fix up array packing
1290
12912007-07-30  Linus Walleij <triad@df.lth.se>
1292
1293	* src/ptp-pack.c: try to get a uniform 64 bit
1294	  support, use some old macro code.
1295
12962007-07-29  Richard Low <richard@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
13022007-07-27  Richard Low <richard@wentnet.com>
1303
1304	* src/libmtp.c: Some better NULL checks
1305
13062007-07-27  Linus Walleij <triad@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
13112007-07-21  Richard Low <richard@wentnet.com>
1312
1313	* src/libmtp.c: Correctly bail out of LIBMTP_Get_Storage
1314
13152007-07-17  Linus Walleij <triad@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
13232007-07-17  Richard Low <richard@wentnet.com>
1324
1325	* src/libmtp.c: Added some more (paranoid) NULL checks
1326
13272007-07-14  Richard Low <richard@wentnet.com>
1328
1329	* src/libmtp.c: Add a NULL check
1330
13312007-07-13  Richard Low <richard@wentnet.com>
1332
1333	* src/libusb-glue.c: add Disney MixMax
1334
13352007-07-11  Linus Walleij <triad@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
13412007-07-10  Linus Walleij <triad@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
13472007-07-07  Linus Walleij <triad@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
13552007-07-05  Tero Saarni <tero.saarni@gmail.com>
1356
1357	* src/libmtp.c: update cache when manipulating objects instead of
1358	  always flushing the whole cache.
1359
13602007-07-03  Linus Walleij <triad@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
13662007-07-01  Linus Walleij <triad@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
13772007-05-29  Linus Walleij <triad@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
13832007-05-24  Jeff Mitchell <kde-dev@emailgoeshere.com>
1384
1385	* hotplug.sh.in: Properly install the HAL FDI rules if
1386	  the user so chooses to when prompted.
1387
13882007-05-24  Jeff Mitchell <kde-dev@emailgoeshere.com>
1389
1390	* examples/hotplug.c: Fix/update HAL output to conform
1391	  to new specs. Fix whitespacing to be consistent.
1392
13932007-05-17  Richard Low <richard@wentnet.com>
1394
1395	* src/libusb-glue.c: added Samsung YH-920
1396
13972007-05-11  Linus Walleij <triad@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
14052007-05-10  Linus Walleij <triad@df.lth.se>
1406
1407	* src/libusb-glue.c: some new devices, some rewording etc.
1408
14092007-05-05  Linus Walleij <triad@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
14162007-05-05  Richard Low <richard@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
14232007-04-28  Richard Low <richard@wentnet.com>
1424
1425	* src/libusb-glue.c: new device
1426
14272007-04-26  Linus Walleij <triad@df.lth.se>
1428
1429	* src/libusb-glue.c: memory leak: dangling, unused pointer killed.
1430
14312007-04-23  Linus Walleij <triad@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
14382007-04-18  Linus Walleij <triad@df.lth.se>
1439
1440	* src/ptp.c: sync to upstream gPhoto source.
1441	* src/ptp.h: dito.
1442	
14432007-04-17  Richard Low <richard@wentnet.com>
1444
1445	* src/libusb-glue.c: new device
1446
14472007-04-13  Richard Low <richard@wentnet.com>
1448
1449	* src/libusb-glue.c: new devices
1450
14512007-04-12  Linus Walleij <triad@df.lth.se>
1452
1453	* examples/hotplug.c: fix GOTO style in udev map.
1454
14552007-04-02  Linus Walleij <triad@df.lth.se>
1456
1457	* examples/files.c: some WIN32 64bit prefix fixup.
1458	* examples/tracks.c: dito.
1459	
14602007-03-28  Ted Bullock <tbullock@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
14652007-03-26  Linus Walleij <triad@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
14712007-03-24  Richard Low <richard@wentnet.com>
1472
1473	* src/libusb-glue.c: fixed bug in zero read code
1474
14752007-03-23  Linus Walleij <triad@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
14902007-03-22  Richard Low <richard@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
14972007-03-18  Richard Low <richard@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
15032007-03-16  Linus Walleij <triad@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
15122007-03-12  Linus Walleij <triad@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
15212007-03-07  Linus Walleij <triad@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
15322007-03-06  Linus Walleij <triad@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	
15382007-03-05  Linus Walleij <triad@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	
15492007-03-04  Linus Walleij <triad@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	
15552007-03-03  Ted Bullock  <tbullock@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
15672007-03-03  Linus Walleij <triad@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
15762007-03-03  Richard Low <richard@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
15832007-02-28  Linus Walleij <triad@df.lth.se>
1584
1585	* src/ptp.h: Upstream accepted our patch so synced it in.
1586	
15872007-02-27  Linus Walleij <triad@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	
15952007-02-22  Ted Bullock  <tbullock@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
16012007-02-26  Linus Walleij <triad@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
16102007-02-24  Richard Low <richard@wentnet.com>
1611
1612	* src/libusb-glue.c: Fix incorrect transfer sizes causing zero
1613	  write issues
1614
16152007-02-23  Linus Walleij <triad@df.lth.se>
1616
1617	* src/libmtp.c: Undeprecate getting first device code.
1618	
16192007-02-23  Richard Low <richard@wentnet.com>
1620
1621	* src/libmtp.c: Fix crash when no devices connected
1622
16232007-02-23  Ted Bullock  <tbullock@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	
16312007-02-22  Ted Bullock  <tbullock@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
16372007-02-18  Ted Bullock  <tbullock@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
16432007-02-17  Richard Low <richard@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
16502007-02-15  Robert Reardon <rreardon@monkshatch.vispa.com>
1651
1652	* src/libmtp.c: Fix a segfault in new error handling code.
1653
16542007-02-15  Linus Walleij <triad@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
16662007-02-15  Ted Bullock  <tbullock@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
16732007-02-14  Ted Bullock  <tbullock@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
16822007-02-12  Ted Bullock  <tbullock@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
16922007-02-09  Ted Bullock  <tbullock@canada.com>
1693
1694	* src/libusb-glue.c: Addressed a number of potential memory leaks in
1695	  the new multiple device code
1696
16972007-02-05  Linus Walleij <triad@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
17202007-02-02  Linus Walleij <triad@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
17332007-01-24  Ted Bullock <tbullock@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
17402007-01-22  Linus Walleij <triad@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	
17642007-01-22  Ted Bullock <tbullock@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
17702007-01-21  Richard Low <richard@wentnet.com>
1771
1772	* src/libusb-glue.c: more new devices
1773
17742007-01-20  Linus Walleij <triad@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	
17832007-01-20  Richard Low <richard@wentnet.com>
1784
1785	* src/libusb-glue.c: new device 'Philips PSA235'
1786
17872007-01-16  Linus Walleij <triad@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
17932007-01-11  Linus Walleij <triad@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
18002007-01-11  Richard Low <richard@wentnet.com>
1801
1802	* src/libusb-glue.c: a zero read fix
1803	* src/libmtp.c: fix spelling mistake
1804
18052007-01-09  Linus Walleij <triad@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	
18122007-01-07  Orson Teodoro <orsonteodoro@yahoo.com>
1813
1814	* src/ptp.h: Encoding profile.
1815	* src/ptp.c: Dito.
1816
18172006-01-07  Linus Walleij <triad@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
18242006-01-07  Marcus Meissner <meissner@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
18352007-01-03  Richard Low <richard@wentnet.com>
1836
1837	* src/libusb-glue.c: fix zero write bug
1838	* src/ptp.c: ditto
1839
18402007-01-02  Linus Walleij <triad@df.lth.se>
1841
1842	* src/libusb-glue.c: fix up comments, remove things 
1843	  refering to stuff we don't have.
1844
18452007-01-02  Richard Low <richard@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
18512007-01-01  Linus Walleij <triad@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
18572007-01-01  Richard Low <richard@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
18642007-01-01  Orson Teodoro <orsonteodoro@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
18702006-12-31  Linus Walleij <triad@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
18762006-12-30  Linus Walleij <triad@df.lth.se>
1877
1878	* examples/pathutils.c: reflect new filetypes.
1879	* examples/sendtr.c: dito.
1880
18812006-12-30  Orson Teodoro <orsonteodoro@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
19002006-12-30  Richard Low <richard@wentnet.com>
1901
1902	* src/libusb-glue.c: fixed bug in debug printing
1903
19042006-12-29  Richard Low <richard@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
19112006-12-29  Marcus Meissner <meissner@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
19192006-12-28  Linus Walleij <triad@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
19252006-12-19  Matthew Wilcox <matthew@wil.cx>
1926
1927	* src/ptp.c: fix a (serious) short file bug.
1928
19292006-12-17  Richard Low <richard@wentnet.com>
1930
1931	* src/libmtp.c: don't bail out on failures when setting
1932	  metadata.
1933
19342006-12-16  Linus Walleij <triad@df.lth.se>
1935
1936	* src/ptp.c: sync to upstream.
1937	* src/ptp.h: dito.
1938	* src/ptp-pack.c: dito.
1939	
19402006-12-15  Linus Walleij <triad@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
19482006-12-14  Linus Walleij <triad@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	
19542006-12-13  Linus Walleij <triad@df.lth.se>
1955
1956	* src/libusb-glue.c: one more device.
1957	* examples/detect.c: compilation warnings fixed.
1958
19592006-12-13  Robert Reardon <rreardon@monkshatch.vispa.com>
1960
1961	* src/ptp.c: add 0xD901 flag as BuyNow property of objects.
1962	* src/ptp.h: ditto.
1963
19642006-12-12  Daniel Williams <danielw@iinet.net.au>
1965
1966	* src/libmtp.h.in: revamped storage API.
1967	* src/libmtp.c: dito.
1968	* examples/detect.c: dito.
1969
19702006-12-12  Robert Reardon <rreardon@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
19752006-12-07  Linus Walleij <triad@df.lth.se>
1976
1977	* src/libmtp.h.in: support firmware object type. (Dangerous.)
1978	* src/libmtp.c: dito.
1979
19802006-12-07  Linus Walleij <triad@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
19872006-12-06  Linus Walleij <triad@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
19952006-12-04  Linus Walleij <triad@df.lth.se>
1996
1997	* src/ptp.c: enable split headers on sending object lists again.
1998
19992006-12-04  Robert Reardon <rreardon@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
20082006-12-03  Linus Walleij <triad@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
20172006-12-02  Marcus Meissner <meissner@suse.de>
2018
2019	* examples/Makefile.am: make sure symlinks really end
2020	  up in the correct dir.
2021
20222006-11-30  Linus Walleij <triad@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
20282006-11-30  Richard Low <richard@wentent.com>
2029
2030	* src/libmtp.c: memset PTPObjectInfo structs to 0
2031
20322006-11-30  Matthew Wilcox <matthew@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
20422006-11-30  Linus Walleij <triad@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	
20512006-11-29  Richard Low <richard@wentnet.com>
2052
2053	* src/libusb-glue.c: added new devices
2054
20552006-11-29  Linus Walleij <triad@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
20652006-11-28  Linus Walleij <triad@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
20712006-11-27  Linus Walleij <triad@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
20772006-11-26  Richard Low <richard@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
20842006-11-25  Marcus Meissner <marcus@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
20932006-11-23  Linus Walleij <triad@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
21012006-11-21  Robert Reardon <rreardon@monkshatch.vispa.com>
2102
2103	* src/libmtp.c: set handle ids for new objects to 0 when
2104	  creating new albums and playlists.
2105
21062006-11-21  Linus Walleij <triad@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
21132006-11-20  Linus Walleij <triad@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
21202006-11-20  Andy Kelk <andy@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
21272006-11-19  Robert Reardon <rreardon@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
21342006-11-19  Daniel Williams <danielw@iinet.net.au>
2135
2136	* src/libusb-glue.c: fix error on reconnect.
2137	
21382006-11-18  Richard Low <richard@wentnet.com>
2139
2140	* src/ptp.c: tidy up ptp_usb_getdata
2141
21422006-11-17  Richard Low <richard@wentnet.com>
2143
2144	* src/libmtp.c: fixed parent handle for uploaded tracks
2145
21462006-11-17  Robert Reardon <rreardon@monkshatch.vispa.com>
2147
2148	* src/libmtp.c: fixed up album art using enhanced commands.
2149
21502006-11-16  Richard Low <richard@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
21572006-11-16  Robert Reardon <rreardon@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	
21632006-11-15  Richard Low <richard@wentnet.com>
2164
2165	* src/ptp-pack.c: set string buffer to correct size.
2166
21672006-11-14  Richard Low <richard@wentnet.com>
2168	
2169	* examples/tracks.c: really use undeprecated API entry.
2170
21712006-11-13  Richard Low <richard@wentnet.com>, Linus Walleij <triad@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
21842006-11-12  Richard Low <richard@wentnet.com>
2185
2186	* src/libusb-glue.c: added Zen Vision W to devices
2187
21882006-11-07  Richard Low <richard@wentnet.com>
2189
2190	* src/libmtp.c: added checks for supported properties
2191
21922006-11-06  Richard Low <richard@wentnet.com>
2193
2194	* src/libmtp.c: added a check for NULL filenames in
2195	  LIBMTP_Get_Folder_List.
2196
21972006-11-01  Linus Walleij <triad@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
22052006-10-29  Andy Kelk <andy@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
22112006-10-27  Linus Walleij <triad@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
22172006-10-27  Andy Kelk <andy@mopoke.co.uk>
2218
2219	* src/libmtp.c: add support form abstract audio/video albums.
2220	* src/libmtp.h.in: dito.
2221
22222006-10-23  Linus Walleij <triad@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
22292006-10-20  Linus Walleij <triad@df.lth.se>
2230
2231	* Release 0.0.21 to get all the new device support out.
2232	
22332006-10-16  Linus Walleij <triad@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
22402006-10-11  Linus Walleij <triad@df.lth.se>
2241
2242	* examples/delfile.c: patch from Chris Debenham 
2243	  straingtening out the command-line interface a bit
2244	  more.
2245
22462006-10-10  Linus Walleij <triad@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
22522006-09-26  Linus Walleij <triad@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
22572006-09-25  Linus Walleij <triad@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
22632006-09-19  Linus Walleij <triad@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
22692006-09-16  Linus Walleij <triad@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
22752006-09-13  Linus Walleij <triad@df.lth.se>
2276
2277	* examples/format.c: formatting test program.
2278	* examples.Makefile.am: added format.
2279
22802006-09-13  Andy Kelk <andy@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
22872006-09-12  Linus Walleij <triad@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
22942006-09-11  Linus Walleij <triad@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
23102006-09-07  Linus Walleij <triad@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
23212006-09-06  Richard Low <richard@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
23292006-09-06  Linus Walleij <triad@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
23362006-09-04  Linus Walleij <triad@df.lth.se>
2337
2338	* src/libmtp.c: bug in streaming code, use defined USB_BULK_HDR_SIZE
2339	  instead of magic values.
2340
23412006-09-02  Linus Walleij <triad@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
23502006-08-30  Linus Walleij <triad@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
23572006-08-28  Linus Walleij <triad@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
23712006-08-27  Linus Walleij <triad@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
23852006-08-26  Linus Walleij <triad@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
23922006-08-25  Linus Walleij <triad@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
23992006-08-22  Linus Walleij <triad@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
24062006-08-22  Linus Walleij <triad@df.lth.se>
2407
2408	* configure.ac: bump to 0.0.13, also released 0.0.12 now.
2409	
24102006-08-21  Linus Walleij <triad@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
24242006-08-20  Linus Walleij <triad@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	
24322006-08-19  Linus Walleij <triad@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
24402006-08-17  Linus Walleij <triad@df.lth.se>
2441
2442	* configure.ac: bump to 0.0.12 and require iconv.h.
2443
24442006-08-16  Linus Walleij <triad@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	
24512006-08-09  Linus Walleij <triad@df.lth.se>
2452
2453	* Release libmtp 0.0.11.
2454
24552006-08-04  Linus Walleij <triad@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
24632006-07-27  Linus Walleij <triad@df.lth.se>
2464	
2465	* Release libmtp 0.0.10.
2466
24672006-07-26  Linus Walleij <triad@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
24762006-06-22  Linus Walleij <triad@df.lth.se>
2477
2478	* Release libmtp 0.0.9.
2479
24802006-06-21  Linus Walleij <triad@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
24872006-06-19  Linus Walleij <triad@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	
24982006-06-16  Linus Walleij <triad@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
25072006-06-13  Linus Walleij <triad@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
25172006-06-07  Linus Walleij <triad@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	
25272006-06-05  Linus Walleij <triad@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
25342006-06-03  Linus Walleij <triad@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
25392006-06-01  Linus Walleij <triad@df.lth.se>
2540
2541	* Released libmtp 0.0.6.
2542
25432006-05-31  Linus Walleij <triad@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
25492006-05-30  Flavien Lebarbe <flavien+libmtp@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	
25562006-05-29  Linus Walleij <triad@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
25732006-05-26  Dave Kelly <libmtp@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
25832006-05-08  Linus Walleij  <triad@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
25922006-05-07  Linus Walleij  <triad@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
26002006-05-04  Linus Walleij  <triad@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
26082006-05-02  Linus Walleij  <triad@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
26182006-04-30  Linus Walleij  <triad@df.lth.se>
2619
2620	* src/ptp.c: sync upstream.
2621	* src/ptp.h: dito.
2622
26232006-04-27  Linus Walleij  <triad@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	
26312006-04-25  Linus Walleij  <triad@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
26442006-04-21  Linus Walleij  <triad@df.lth.se>
2645
2646	* Released libmtp 0.0.3
2647	* Bumped source to 0.0.4
2648
26492006-04-21  Linus Walleij  <triad@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	
26642006-03-28  Linus Walleij  <triad@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
26722006-03-24  Linus Walleij  <triad@df.lth.se>
2673
2674	* Beginning a file API, fixed some example program
2675	  names and such.
2676
26772006-03-18  Linus Walleij  <triad@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
26832006-03-16  Linus Walleij  <triad@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
26882006-03-15  Linus Walleij  <triad@df.lth.se>
2689
2690	* Added three device information retrieval functions.
2691
26922006-03-06  Linus Walleij  <triad@df.lth.se>
2693
2694	* Moving some things around to structure the source. More
2695	  will be needed...
2696
26972006-02-27  Linus Walleij  <triad@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
27022006-02-24  Linus Walleij  <triad@df.lth.se>
2703
2704	* Deltr example program to delete tracks, plus corresponding
2705	  interface call.
2706	
27072006-02-23  Linus Walleij  <triad@df.lth.se>
2708
2709	* Fixed up sendtr program and metadata tagging function that is
2710	  used after sending files.
2711
27122006-02-22  Linus Walleij  <triad@df.lth.se>
2713
2714	* Untested gettr.c and sendtr.c programs to get and send tracks
2715	  created.
2716	
27172006-01-30  Linus Walleij  <triad@df.lth.se>
2718
2719	* Created the initial GNU source directory structure.
2720	* Added the most basic files.
2721