I would like to make some comments on the Eseries plugin that has been released a couple of days ago, and in particular on the printing API.
1) The decision to provide an ECom plugin to hide the availability or not of the printing subsystem is in itself a good one. What's not good is the decision to only do this for FP1 and higher. At this moment the number of 3rd ed FP1 Eseries devices is dwarfed by the number of 3rd ed Eseries. So making the plugin available as a sis file would have been an obvious idea, Iw ould say. Even though S60 3rd ed doesn't handle handle embedded sis file sproperly at deinstallation, we could always have told the user to install the printer ecom plugin separately.
2) So what does a developer do in such a case: he creates his own plugin. I mean, a couple of million E61(i) users are not the kind of people I want to abandon.
Creating a wrapper around CPrintingAPI on the FP1 hand, and around CPrintJob/CPrintUi on the other hand isn't exactly very taxing. What was taxing though was the behaviour of my CPrintJob object after the print was done. As far as I can see, it gets deleted before MPrintJobObserver::NotifyPrintEnded() is called. I have a CPrintJob member var in the Observer, and deleting the CPrintJob panics with a kern-exec, and the implementation pointer in CPrintJob has the dead-pointer bit pattern at that point.
Problem is, I am using CPrintUi::PrintDialogLD(CPrintJob& aPrintJob), where the print job is passed by reference. This should mean that ownership of the print job isn't transferred.
I would like some explanation on this as the docs do not say anything at all about it.
3) Testing for Eseries devices like is done in the plugin user manual seems a bit strange. What happens when other manufacturers also starts to make Eseries-like devices? I would say that testing the availability of the printer subsystem would be more future proof. Either by testing on a given file (like the plugin resource file) or by adding a PRINTER attribute.
But apart from that, well done releasing this plugin
Sander van der Wal