#include <strings.h>
#include <stdio.h>
#include <dos/dos.h>
#include <exec/execbase.h>
#include <exec/ports.h>
#include "structs.h"

extern struct tm_settings dftm;

ULONG BtoCStr(char *cstr, BSTR bstr, LONG maxlen)
{
        char *astr;
        int i;
        astr = (char *)(bstr << 2);

        for ( i=1; i <= astr[0] && i <= maxlen; i++)
                cstr[i-1] = astr[i];
        cstr[i-1] = '\0';
        return((ULONG)(i-1));
}

ULONG CtoBStr(char *cstr, BSTR bstr, LONG maxlen)
{
        char *astr;
        int i,l;
        astr = (char *)(bstr << 2);

        for ( i=0,l=strlen(cstr); i < l && i < maxlen && i < 255; i++)
                astr[i+1] = cstr[i];
        astr[0] = i;
        return((ULONG)(i));
}

load_settings()
{
    UBYTE   *my_file;
    my_file=(UBYTE *)Open("ENV:TinyMeter",MODE_OLDFILE);
    if(my_file)
    {
        Read(my_file,&dftm,(long)sizeof(struct tm_settings));
        Close(my_file);
    }
}
save_settings(int which)
{
    UBYTE   *my_file;
    if(which==1)
    {
        my_file=(UBYTE *)Open("ENVARC:TinyMeter",MODE_NEWFILE);
        if(my_file)
        {
            Write(my_file,&dftm,(long)sizeof(struct tm_settings));
            Close(my_file);
        }
    }
    my_file=(UBYTE *)Open("ENV:TinyMeter",MODE_NEWFILE);
    if(my_file)
    {
        Write(my_file,&dftm,(long)sizeof(struct tm_settings));
        Close(my_file);
    }
}

