Posted on Aug 29th 2009 by pieceofsummer.
I’ve just realized that foo_w7shell page was truncated when moving to another server. Actually I have no idea why it was the only page corrupted, but still hate MySql for such tricks.
And I was wondering why people are downloading old versions (0.2.7.0 and even 0.2.6.2). That’s because they simply had no actual links and used old ones cached by various search sites.
Sorry, ppl. And update it now.
Posted on Aug 20th 2009 by pieceofsummer.
Yay, moved to another hosting. The new one seems to be more stable and not so fucking slow.
Posted on Aug 12th 2009 by pieceofsummer.
If you really enjoy my work, you may now support future development by donating some money using PayPal or a credit card.
Posted on Aug 2nd 2009 by pieceofsummer.
My home Asus WL500gP router just fucked up. It turned on all LAN and WAN lights and did nothing more. A bit of googling – and I knew that power adapter is dead.
Luckily I had an old wall charger from some WinMobile device giving required 5 volts, but sitting with solderer at 5AM and replacing a mini-usb jack with another one is not fun.
Now it works, but I had to disable WiFi, ’cause the new power adapter is a twice less powerful than the original one and cannot make the router working stable. I’ll miss internet on my iPod…
Posted on Jul 1st 2009 by pieceofsummer.
It has a bit faster spotlight (they added some indexes, lol), that’s true.
But a bug with sorting non-english track names makes navigation completely unusable. All such tracks are put into “123″ section even though locale supports required symbols and they’re shown as jump letters.
I’m lucky iTunes allows upgrade to an older version, because I don’t have a copy of my library on a PC.
So waiting for next beta…
Posted on Jun 30th 2009 by pieceofsummer.
Works with firmware 3.0 both on Windows and Mac OS X (using Mono) – tested on iPod Touch 1g (Windows 7, Snow Leopard) and iPhone 3GS (Snow Leopard).
This is still experimental, so comments and bugreports are welcome!
Download: ArtDoctor2con.
Still have no time to make GUI, sorry.
Posted on May 25th 2009 by pieceofsummer.
I’ve just got why you should use new iTunes (8.2) since beta 5. They have replaced old iTunesDB library with new one based on SQLite, so sync is a bit odd thing now.
Device itself doesn’t use iTunesDB at all, but iTunes still does – I think it’s for compatibility reasons. When syncing, iTunes writes both iTunesDB and new library files to device. If there’s no iTunesDB file on device, iTunes will also purge new library and all your music will appear as “other” data.
I wonder whether new library will completely supersede iTunesDB or will they continue coexisting for compatibility reasons. But anyway, linux guys would be happy since SQLite format is open and much more clear for understanding.
Posted on May 9th 2009 by pieceofsummer.
Yeah, I’ve just found out how to handle this and terminate sync when user slides cancel switch.
We need following functions (meta-language):
ERROR AMDObserveNotification(HANDLE proxy, CFSTR notification);
ERROR AMDListenForNotifications(HANDLE proxy, NOTIFY_CALLBACK cb, USERDATA data);
and callback delegate:
typedef void (*NOTIFY_CALLBACK)(CFSTR notification, USERDATA data);
First, we need AMDObserveNotification to subscribe notifications about “com.apple.itunes-client.syncCancelRequest”. Then we should start listening for notifications (second function) until we get “AMDNotificationFaceplant”.
That’s it. When notification got, you should unlock and close lock file handle (don’t sure if you need to post “syncDidFinish” to proxy, seems it doesn’t matter) and terminate sync gracefully.
P.S. The same notification is also got when you unplug your device, so you should always be ready for errors.
Posted on May 6th 2009 by pieceofsummer.
Some time ago a Mac port of Mono was released, so it made completely possible to run .NET applications there. But ArtDoctor needs to operate directly with device and was strictly tied with iTunesMobileDevice.dll, which has no analog on a Mac.
And today I’ve managed to create a fully cross-platform .NET library to deal with Apple devices. It even works without re-compiling for target platform. The trick is to use MobileDevice (dll on Windows and framework on Mac OS X) instead and apply some dll redirections for Mono.
However, it’s not just to change referenced library name. Unlike iTunesMobileDevice, MobileDevice framework doesn’t use native threads on both platforms. Also it is more strict about strings, so hand-made CFStrings most likely won’t do.
P.S. I really have no idea why both of these libraries are included in Windows distribution of Apple Mobile Device Support, ’cause they don’t even reference each other.
Posted on May 1st 2009 by pieceofsummer.
Looking at Google Analytics I’ve found out that somebody came to this site looking for solution of WASAPI issue. Well, maybe it should be here
On builds before 7068 WASAPI was working as expected. But all newer builds (up to RC1 7100) cause it to throw “unrecoverable playback error: could not open device 88890020″.
I don’t know what exactly does it mean, but I know how to fix it. The default 1000 ms buffer size does not fit for some reason, so you should decrease it – 500 (and less) ms buffer is ok. Note that this number could vary for different hardware.
Well, maybe it’s not a perfect solution, but it does work for now!