Squeak and bluetooth
Davide Varvello
d.varvello at quinary.com
Wed Jan 11 14:03:44 UTC 2006
Hi John,
Thanks for explanations, I'll also download Tweak-Platforms to
understand more.
Thanks
Davide
On 10 Jan 2006, at 18:44, John M McIntosh wrote:
> Sure, you're missing the entire Sophie code base which uses this,
> however at the moment the implementation of the caller of this is via
>
> Tweak-Platforms from the impara tweak server.
>
> I had added these types (MacCFString, MacCFType, MacCFURL,
> MacCFURL), and the FFI interfaces to assist in getting the folder
> paths for known os-x folder locations, however I've not actually
> tested *all* the api calls yet.
>
> Usage is quite straightforward.
>
>
> buffer _ ByteArray new: 4096.
> error := self cFStringGetCString: possibleCFString buffer: buffer
> size: buffer size encoding: 0.
> self cFRelease: possibleCFString.
>
> Typically I've been copying the C definition into the method like
> so for documentation purposes.
>
> cFStringGetCString: aStringRef buffer: aBuffer size: aSize
> encoding: anEncoding
> <cdecl: bool 'CFStringGetCString' (MacCFString* char* long long)
> module:'Carbon.framework'>
> ^ self externalCallFailed
>
> "Boolean CFStringGetCString (
> CFStringRef theString,
> char *buffer,
> CFIndex bufferSize,
> CFStringEncoding encoding
> );"
>
> I'll note that I'm cheating and resolving CFIndes and
> CFStdringEncoding to long, but you could define a structured class
> with a long field for those.
>
> Save your image often, mistakes in coding the FFI logic will
> generally crash your VM.
>
> On 10-Jan-06, at 5:42 AM, Davide Varvello wrote:
>
>> Hi Bert,
>>
>>
>>> As for your questions, yes, FFI is just fine for this. And I'd
>>> recommend Carbon.
>>>
>>> For a bit of working recent Carbon FFI code have a look at
>>>
>>> http://source.impara.de/Sophie.html
>>>
>>> The "Files-Locations" package uses FFI calls to locate system
>>> folders
>>
>>
>> I downloaded the Files-Locations-bf.18.mcz it contains 4 classes:
>> MacCFString, MacCFType, MacCFURL, MacCFURL but there are no
>> methods that call os libraries. Am I missing something?
>> Thanks
>> Davide
>>
>>
>
> --
> ======================================================================
> =====
> John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
> Corporate Smalltalk Consulting Ltd. http://
> www.smalltalkconsulting.com
> ======================================================================
> =====
>
>
More information about the Squeak-dev
mailing list
|