Installer for TurboFloat server

Hi There!

So, I'm now back at implementing TurboFloat for my app. The introduction on the help page states:

"However, if you're releasing TurboFloat Server for end users you might consider wrapping this entire process in an installer so your user only has to enter some text in and installer and then click the install button."

My question is what is "some text" in the context of the installer? Is it just their product key? I use InnoSetup to script my installer. Is it possible to call the install command line specified in the help files from the script itself?

Thanks,Arie

My question is what is "some text" in the context of the installer? Is it just their product key?

Yes, and optionally letting a customer configure the server from the installer (and write that coniguration to the XML file). However, it's completely up to you.

Is it possible to call the install command line specified in the help files from the script itself?

Yes, you can do that from any installer. A quick google search for "inno setup execute return code" lead me here: http://www.jrsoftware.org/ishelp/index.php?topic=isxfunc_exec

Thanks Wyatt,

Another question about this. I'd like to use the same method of having the user enter the product key in the installer. I'm taking a look at the TurboActivate functions in the InnoSetup tutorial you have. It looks like:

[Files]; Install TurboActivate to {app} so we can access it at uninstall time; Also, notice we're putting the TurboActivate files at the top of the file; list. This is so that if you're using "SolidCompression=yes" your installer; can still start relatively quickly.Source: "TurboActivate.dll"; DestDir: "{app}"Source: "TurboActivate.dat"; DestDir: "{app}"

If we're doing this with TurboFloat, should we use TurboFloat.dll rather than TurboActivate.dll? The reason I ask is because it looks like later on in the example, you are calling a function from within that library. I'm wondering if TurboFloat.dll contains those same functions. Here is what I'm referring to specifically:

// functions for activationfunction IsActivated(versionGUID: WideString): longint;external 'IsActivated@files:TurboActivate.dll,TurboActivate.dat cdecl setuponly';

function CheckAndSavePKey(productKey: WideString; flags: UINT): longint;external 'CheckAndSavePKey@files:TurboActivate.dll,TurboActivate.dat cdecl setuponly';

function Activate(): longint;external 'Activate@files:TurboActivate.dll,TurboActivate.dat cdecl setuponly';

For TurboFloat, I'm thinking that I would only use "CheckAndSavePKey" but I may be wrong. Are all of those functions still relevant for setting up an installer for TurboFloat? Any help you can provide is appreciated.

Thanks,Arie

You wouldn't use any of those TurboActivate functions at all. To install and activate the TurboFloat Server it's all done by commandline (not by TurboActivate). See: http://wyday.com/limelm/help/turbofloat-server/#activate

When I originally started this thread, I didn't understand the full conceptual model of TurboFloat, but now, I'm ready to make an installer for my application, not for the TurboFloat server.

Is it possible to call TF_SaveServer() from an inno setup script? If so, how would I go about pulling that off since it seems to require a data types that are part of the C language.

Thanks,Arie

Hey Arie,

You'll want to use the TurboActivate.iss file in Installers\Inno Setup folder as a good place to start. Obviously you won't be using the TurboActivate functions. But you can see how we use those functions and do the same thing with TurboFloat.

Also, this is a good reference for data types in Inno Setup: http://wiki.freepascal.org/Pascal_for_C_users

So, you need to use 2 functions: TF_GetHandle() and TF_SaveServer().

The function definition would look something like this:

//TODO: go to the version page in your LimeLM account and paste this GUID hereconst  VERSION_GUID = '18324776654b3946fc44a5f3.49025204';


// functions for activationfunction TF_GetHandle(versionGUID: WideString): UINT;external 'TF_GetHandle@files:TurboFloat.dll,TurboActivate.dat cdecl setuponly';


function TF_SaveServer(handle: UINT; host_address: WideString; port: Word; flags: UINT): longint;external 'TF_SaveServer@files:TurboFloat.dll,TurboActivate.dat cdecl setuponly';

Then you'd call TF_GetHandle() to get the handle (like in Example.C), and pass that handle, and the server address information to TF_SaveServer().

Does that make sense?

Yes, that makes sense. I will try to implement and post to this thread with more questions if I run into any issues. Thanks for your help and guidance.