settings/src/iLiadLanguageData.c File Reference

settings - Language settings data More...

#include <stdio.h>
#include <string.h>
#include <gtk/gtk.h>
#include <liberregxml/erregapi.h>
#include "setupLog.h"
#include "iLiadLanguageData.h"
#include "languages.h"
#include "settings.h"

Go to the source code of this file.

Functions

void iLiad_language_data_init (void)
void iLiad_language_data_destroy (void)
void iLiad_language_data_store (void)
void iLiad_language_data_set (const char *language)
char * iLiad_language_data_get (void)

Variables

static regUserSetting_tg_settings = NULL
static char * g_cur_language = NULL
static char * g_stored_language = NULL


Detailed Description

settings - Language settings data

Copyright (C) 2005-2008 iRex Technologies B.V. All rights reserved.

Providing language settings data functions.

Definition in file iLiadLanguageData.c.


Function Documentation

void iLiad_language_data_destroy ( void   ) 

Definition at line 78 of file iLiadLanguageData.c.

00079 {
00080      ST_LOGPRINTF("entry");
00081 
00082      if (g_settings)
00083      {
00084          erRegFreeUserSetting(g_settings);
00085          g_settings = NULL;
00086      }
00087 
00088      if (g_cur_language)
00089      {
00090          g_free(g_cur_language);
00091          g_cur_language = NULL;
00092      }
00093 
00094      if (g_stored_language)
00095      {
00096          g_free(g_stored_language);
00097          g_stored_language = NULL;
00098      }
00099 }

Here is the call graph for this function:

char* iLiad_language_data_get ( void   ) 

Definition at line 145 of file iLiadLanguageData.c.

00146 {
00147      ST_LOGPRINTF("entry");
00148 
00149      return g_cur_language;
00150 }

void iLiad_language_data_init ( void   ) 

Definition at line 48 of file iLiadLanguageData.c.

00049 {
00050     ST_LOGPRINTF("entry");
00051 
00052     // get settings from registry
00053     iLiad_language_data_destroy();
00054     g_settings = erRegGetUserSetting();
00055 
00056     if (g_settings == NULL)
00057     {
00058         ST_WARNPRINTF("use default values");
00059         
00060         g_settings = g_new0(regUserSetting_t, 1);
00061         g_settings->language = strdup(DEFAULT_LOCALE);
00062         g_settings->volume = 75;
00063         g_settings->keyBuffering = 0;
00064         g_settings->longkeypressTimeout = 500;
00065         g_settings->flipbarLeftIsDown = TRUE;
00066 
00067         g_cur_language = g_strdup(g_settings->language);
00068     }
00069     else
00070     {
00071         g_cur_language = g_strdup(g_settings->language);
00072         g_stored_language = g_strdup(g_cur_language);
00073     }
00074 
00075     ST_LOGPRINTF("current language is %s", g_cur_language);
00076 }

Here is the call graph for this function:

void iLiad_language_data_set ( const char *  language  ) 

Definition at line 136 of file iLiadLanguageData.c.

00137 {
00138      ST_LOGPRINTF("entry, change language from '%s' to be '%s'", 
00139              g_cur_language, language);
00140      
00141      g_free(g_cur_language);
00142      g_cur_language = strdup(language);
00143 }

void iLiad_language_data_store ( void   ) 

Definition at line 101 of file iLiadLanguageData.c.

00102 {
00103      ST_LOGPRINTF("entry");
00104 
00105      gboolean bNeedSave = FALSE;
00106      
00107      g_return_if_fail(g_cur_language);
00108      
00109      if ( (NULL == g_stored_language) || strcmp(g_cur_language, g_stored_language))
00110      {
00111          bNeedSave = TRUE;
00112      }
00113 
00114      ST_LOGPRINTF("Need save? %s.", bNeedSave ? "Yes":"No");
00115 
00116     if (bNeedSave)
00117     {         
00118         prepare_registry_write();
00119 
00120         // prepare g_settings
00121         g_free(g_settings->language);
00122         g_settings->language = g_strdup(g_cur_language);
00123 
00124         // store g_settings to registry
00125         ST_STOREPRINTF("calling erRegSetUserSetting");
00126         erRegSetUserSetting(g_settings);
00127 
00128         // update g_stored_language
00129         g_free(g_stored_language);
00130         g_stored_language = g_strdup(g_cur_language);
00131 
00132         do_registry_write();
00133     }
00134 }

Here is the call graph for this function:


Variable Documentation

char* g_cur_language = NULL [static]

Definition at line 45 of file iLiadLanguageData.c.

regUserSetting_t* g_settings = NULL [static]

Definition at line 43 of file iLiadLanguageData.c.

char* g_stored_language = NULL [static]

Definition at line 46 of file iLiadLanguageData.c.


Generated on Sun Dec 14 17:17:11 2008 by  doxygen 1.5.6