Hi Valentin,

Sorry for my strange answer, not in the initiail thread, but for some reason, I didn't receive your mails in my [EMAIL PROTECTED] folder.


Valentin JANIAUT a écrit :
Hello,

I'm currently working about improve the scanner use for ooo mac porting. After few hard time to compile and have a look about previous solution I have some question about scanner implementation in ooo and the best way to realize my project.

Would be great :-)


I appreciate you finally posted on the list, asking for help. The bad news is : Philipp Lohmann, who implemented the scanner for all platforms, is on holidays, and will be back in september only.

So we'll have to find another solution than ask Philipp :-/


** How works scanner in ooo **

To resume shortly, there is a generic class : ScannerManager define in 
scanner.hxx (extensions/source/scanner). There is different kind of method :
Xinterface  wich probably define the interface (if I understand well).

Exact. There is an UNO service used. For further information about the interface, you can look in the interface definition in offapi/com/sun/star + the interface name + the filename you can read in the "#include ... " list.

The documents Serge Moutou translated recently in french (the one I pointed you), will explain you better.


XscannerManager, all this method will be define for each OS (for windows you 
can find the definition in scanwin.cxx)

Indeed.

Xbitmap which manage the bitmap object you get after the acquisition. Again 
this method are define for each OS.

And some misc method which are define in scanner.cxx

Yes.

Finally we have a XScannerManager to use a scanner with the normal method for 
an Xobject : queryInterface, acquire and release.

Yes, and I thik this is the one way to proceed. The problem we have here, is we use Image Capture API, and before to do anything, we havez to know what we can expect from Image Capture.


** A first solution to use scanner with MacOs **

My first idea was to use the same way than scanwin. But we should use a controller and a view write in Objective-C wich are using Cocoa. So we need two file ScanMacController and ScanMacView (with the .h and .mm corresponding). For the Controller we have already a good start with the Cocoa example.

Agreed. But we have to do a lot of modifications. e.g. all the awakeFromNib, IBAction, have to be transformed in void, and adapted (in the init mainly, but not only). Maybe we'll have to create our own NSDictionnary, and I think IBOutlet have to be either removed (if useless) or adapted too for own needs. Last, we'll probably have to implement other methods.

+ we would have to bind all objC methods, using the UNO thing.

What I did with the Apple Remote is not that far, but I think we must have a different approach here. More precisely, what I don't see in your page is the analysis of the existing ?

e.g. :

- describe the current behaviour on e.g. Linux ? (using SANE) or even Windows, both using OpenOffice.org - can a scanner be detected by OpenOffice.org in runtime, or must the scanner be on *before* OpenOffice.org starts ? (this is very important) - have a list of OpenOffice.org applications where the scanner is usable (e.g. : only Writer and Draw, and so on ) - how works the Image Capture blob with a scanner on Mac OS X ? (will provide the information: what can we expect ? )
- what API can we use ? ( describe some functions, what we cannot do .. etc)

IMHO, we cannot do anything before everything above is clear in our mind. A very good example of feature description, is the Presenter Screen feature (I'd suggest you to have a look at the nice code btw).

The URL : http://wiki.services.openoffice.org/wiki/Presenter_Screen

After we just need to write a scanmacos file with the definition of ScannerManager (XScannerManager and Xbitmap). With the small problem to convert a NSBitmap object in a Xbitmap.

If I'm not too wrong, I think Herbert, of Florian Heckl might help you there. Florian has a great knowledge for UNO + objectiveC association.

I tried a little bit this solution, but at this time I have some difficult to compile the ScanMacController with dmake. My objective-C method doesn't compile because : "ld:Undefined symbols".

Please, send me your code ...


** Anoter solution **

My second idea is to write a component in Objective-C. It looks more easy. I 
would like write XScannerManager in a componant.
So it need only  to write the method from ScannerManager. But can we overwrite 
an existing interface with a componant ?

I imagine we can probably define during the compilation to use the component 
instead of the normal Interface for macos.

I don't get what you mean here. If I'm not confused, the component is loaded at runtime, not at buildtime.


At this time I try to make the example with the counter (http://wiki.services.openoffice.org/wiki/Constructing_Components) in Objective-C instead of C++.

Do you think it's a better way than before ?

No idea, but I'd suggest to start answering the questions above, before doing anything else. To be honest, I'm not that familiar with "components", but one told me this is a working solution.

And if you have code, please send it to me + a short description of the build environment.

** To conclude **

It's stille quite dark in my mind.

What I'd suggest you is to maintain a page, where you notice everything you do ( tests, code , everything). Did you ?

It's defenitly hard to involve in the OpenOffice.org API.

This is not easy, indeed, but I think what is mainly missing, is the first step, with some pedagogical inside.


So I probably some big stupid things previously, but if you can give me some hints, or give some good link to help you're welcome !

There is no stupid question, and instead of laugh doing nothing, I prefer from far read your questions, and try to help you.


I'm writting a page on my wiki about this two way :  
http://wiki.valeuf.org/WayToSolveScannerUse
Thanks for your reading.


You're welcome :)

Eric

--
Education Project: http://wiki.services.openoffice.org/wiki/Education_Project

Blog : http://eric.bachard.free.fr/news


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to