Is La open-source?
 
La is not open-source. Code to the plugins and command-line program has been released in order to encourage development, however the core engine is contained in a .dll, the API for which is included however the source is not. This means you can use this .dll in any programs you write with which you wish to use La, you will just not be able to view or change the source code the .dll is created from.

While La is not open-source it is free. Feel free to use the codec in any program, however please also inform me at least if you do so.

If La being closed-source offends the open-source zealots among you, then simply use one of the many available open-source alternatives (Flac, Wavpack, Monkey's Audio) and don't bug me. The development of La's state-of-the-art codec required a large investment in time and I have no desire at this point in time to simply give away the product of this time. If you think this is selfish I suggest you go live in Cuba as the society I live in is capitalist.


    
 
Using the La API
 
I've tried to put some thought into the design of the La API so that hopefully it will remain relatively stable. As its the first such .dll API I've created however, there may be some things I've simply done wrong which may require future changes. Please contact me if you have any suggestions. Further, if La is ever extended to support 24-bit files this change would require some changes to the API.

That said, the best way to understand the API is to look at the source to one of the plugins or to the command-line program. All sources are contained in the archive la-api.rar. The .dll provides the class LaCodec (defined in dllinterface.h) which contains the main interface. It serves as a factory, creating and destroying instances of the encoder and decoder objects (defined in encoderI.h and decoderI.h respectively). It additionally provides the getVersion() function to return the codec version of the .dll.

To see how to include the .dll in a project, again look at the examples. Basically, you need to include the relevant header files, and (in Visual Studio .NET at least) under Linker-Input add la-core.lib as an 'Additional Dependency'. I hope having all the projects as Visual Studio .NET (7.0) projects isn't too much of a bother for those still using 6.0 or other tools.


    
 
Helping out
 
One of the reasons I created the API is the hope that someone may take over work on the plugins, in particular the foobar2000 plugin, as foobar2000 tends to change its API rather too frequently for my liking. Also, the foobar2000 plugin could probably do with some work. I never found much documentation telling me how to do it properly so I just did what works. If you're interested in working on this then please contact me.

I personally have little time or interest to develop new plugins or update the existing plugins. The time I have I would rather spend on the compression engine. So any help in the plugins department would be appreciated.