settings/src/iLiadConfigData.c File Reference

setup application - E-reader config screen data handling (registry interaction) More...

#include <gtk/gtk.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/soundcard.h>
#include <unistd.h>
#include <liberregxml/erregapi.h>
#include <libergtk/ergtk.h>
#include <liberipc/eripc.h>
#include <liberipc/eripcbusyd.h>
#include <liberipc/eripccontentlister.h>
#include "setupLog.h"
#include "displayStatus.h"
#include "background.h"
#include "erbusy.h"
#include "iLiadUserScreen.h"
#include "iLiadConfigScreen.h"
#include "iLiadBgConnectScreen.h"
#include "iLiadPincodeScreen.h"
#include "iLiadConfigData.h"
#include "iLiadDateTimeScreen.h"
#include "iLiadPCConnectScreen.h"
#include "iLiadArcLocData.h"
#include "iLiadArcLocScreen.h"
#include "iLiadStartUpScreen.h"
#include "iLiadDeviceOverview.h"
#include "iLiadTimediDSScreen.h"
#include "languages.h"
#include "settings.h"

Go to the source code of this file.

Defines

#define MIXER   "/dev/mixer"
#define AUDIO_DEVICE   "/dev/dsp"

Functions

static regUserSetting_tuser_setting_dup (const regUserSetting_t *settings)
void iLiad_config_data_init (void)
void iLiad_config_data_destroy (void)
void iLiad_config_data_display (void)
gboolean iLiad_config_data_change_flipbar_direction ()
void on_keys_selection_update (erGtkSelectionGroup *selection, gpointer button, gpointer data)
void on_keybuffering_selection_update (erGtkSelectionGroup *selection, gpointer button, gpointer data)
void on_flipbar_direction_selection_update (erGtkSelectionGroup *selection, gpointer button, gpointer data)
void on_language_selection_update (erGtkSelectionGroup *selection, gpointer button, gpointer data)
void on_sound_selection_update (erGtkSelectionGroup *selection, gpointer button, gpointer data)
char * iLiad_config_data_get_language (void)
void iLiad_config_data_store (void)

Variables

static regUserSetting_tg_init_settings = NULL
static regUserSetting_tg_user_settings = NULL
static regUserSetting_tg_stored_settings = NULL
static erClientChannel_t contentListerChannel


Detailed Description

setup application - E-reader config screen data handling (registry interaction)

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

<File description>="">

Definition in file iLiadConfigData.c.


Define Documentation

#define AUDIO_DEVICE   "/dev/dsp"

Definition at line 68 of file iLiadConfigData.c.

#define MIXER   "/dev/mixer"

Definition at line 67 of file iLiadConfigData.c.


Function Documentation

gboolean iLiad_config_data_change_flipbar_direction (  ) 

Definition at line 188 of file iLiadConfigData.c.

00189 {
00190     gboolean ret = FALSE;
00191     
00192     if (g_init_settings && g_user_settings)
00193     {
00194         if (g_init_settings->flipbarLeftIsDown 
00195               == g_user_settings->flipbarLeftIsDown)
00196             ret = FALSE;
00197         else
00198             ret = TRUE;
00199     }
00200     
00201     return ret;
00202 }

void iLiad_config_data_destroy ( void   ) 

Definition at line 112 of file iLiadConfigData.c.

00113 {
00114     ST_LOGPRINTF("entry");
00115 
00116     if (g_user_settings)
00117     {
00118         erRegFreeUserSetting(g_user_settings);
00119         g_user_settings = NULL;
00120     }
00121 
00122     if (g_stored_settings)
00123     {
00124         erRegFreeUserSetting(g_stored_settings);
00125         g_stored_settings = NULL;
00126     }
00127 
00128     if (g_init_settings)
00129     {
00130         erRegFreeUserSetting(g_init_settings);
00131         g_init_settings = NULL;
00132     }
00133 }

Here is the call graph for this function:

void iLiad_config_data_display ( void   ) 

Definition at line 135 of file iLiadConfigData.c.

00136 {
00137     ST_LOGPRINTF("entry");
00138 
00139     g_return_if_fail(NULL != g_user_settings);
00140     g_assert(NULL != g_user_settings);
00141 
00142     //language
00143     if (g_user_settings->language)
00144     {
00145         iLiad_config_set_language(g_user_settings->language);
00146     }
00147     else
00148     {
00149         iLiad_config_set_language(DEFAULT_LOCALE);
00150     }
00151 
00152     //timeout value
00153     iLiad_config_set_keys(g_user_settings->longkeypressTimeout);
00154 
00155     // volume
00156     //iLiad_config_set_volume(g_user_settings->volume);
00157     if(g_user_settings->volume == 0)    
00158     {
00159         iLiad_config_set_volume(0);
00160     }
00161     else
00162     {
00163         iLiad_config_set_volume(1);
00164     }   
00165     
00166     // keybuffering value
00167     if(g_user_settings->keyBuffering == 0)    
00168     {
00169         iLiad_config_set_keybuffering(0);
00170     }   
00171     else
00172     {
00173         iLiad_config_set_keybuffering(1);
00174     }
00175     
00176     // flipbarLeftIsDown value
00177     if(g_user_settings->flipbarLeftIsDown == TRUE)    
00178     {
00179         iLiad_config_set_flipbar_direction(TRUE);
00180     }
00181     else
00182     {
00183         iLiad_config_set_flipbar_direction(FALSE);
00184     }
00185     display_update_request_screen_refresh(SETTING_ITEM_CHANGE, WAVEFORM_FULLSCREEN);
00186 }

Here is the call graph for this function:

char* iLiad_config_data_get_language ( void   ) 

Definition at line 311 of file iLiadConfigData.c.

00312 {
00313     g_return_val_if_fail(NULL != g_user_settings, NULL);
00314     g_return_val_if_fail(NULL != g_user_settings->language, NULL);
00315 
00316     return g_user_settings->language;
00317 }

void iLiad_config_data_init ( void   ) 

Definition at line 84 of file iLiadConfigData.c.

00085 {
00086     ST_LOGPRINTF("entry");
00087 
00088     iLiad_config_data_destroy();
00089 
00090     g_user_settings = erRegGetUserSetting();
00091 
00092     if (g_user_settings == NULL)
00093     {
00094         ST_WARNPRINTF("use default values");
00095         // default values from the er_registry.txt
00096         g_user_settings = g_new0(regUserSetting_t, 1);
00097         g_user_settings->language = strdup(DEFAULT_LOCALE);
00098         g_user_settings->volume = 75;
00099         g_user_settings->keyBuffering = 0;
00100         g_user_settings->longkeypressTimeout = 500;
00101         g_user_settings->flipbarLeftIsDown = TRUE;
00102     }
00103     else
00104     {
00105         g_stored_settings = user_setting_dup(g_user_settings);
00106     }
00107     g_init_settings = user_setting_dup(g_user_settings);
00108 
00109     erIpcStartClient(ER_CONTENTLISTER_CHANNEL, &contentListerChannel);
00110 }

Here is the call graph for this function:

void iLiad_config_data_store ( void   ) 

Definition at line 320 of file iLiadConfigData.c.

00321 {
00322     ST_LOGPRINTF("entry");
00323 
00324     g_return_if_fail(NULL != g_user_settings);
00325     g_assert(NULL != g_user_settings);
00326 
00327     if (   g_stored_settings != NULL
00328         && strcmp(g_user_settings->language, g_stored_settings->language) == 0
00329         && g_user_settings->volume              == g_stored_settings->volume
00330         && g_user_settings->keyBuffering        == g_stored_settings->keyBuffering
00331         && g_user_settings->longkeypressTimeout == g_stored_settings->longkeypressTimeout 
00332         && g_user_settings->flipbarLeftIsDown   == g_stored_settings->flipbarLeftIsDown)
00333     {
00334         // Nothing changed, nothing to save
00335         return;
00336     }
00337 
00338     prepare_registry_write();
00339 
00340     ST_STOREPRINTF("calling erRegSetUserSetting");
00341     erRegSetUserSetting(g_user_settings);
00342 
00343     g_stored_settings = user_setting_dup(g_user_settings);
00344 
00345     do_registry_write();
00346 }

Here is the call graph for this function:

void on_flipbar_direction_selection_update ( erGtkSelectionGroup selection,
gpointer  button,
gpointer  data 
)

Definition at line 238 of file iLiadConfigData.c.

00239 {
00240     ST_LOGPRINTF("entry");
00241 
00242     g_return_if_fail(NULL != g_user_settings);
00243     g_assert(NULL != g_user_settings);
00244 
00245     g_user_settings->flipbarLeftIsDown = iLiad_config_get_flipbar_direction();
00246 
00247     ST_LOGPRINTF("flipbarLeftIsDown %s", g_user_settings->flipbarLeftIsDown == TRUE ? "LEFT" : "RIGHT");
00248 
00249     display_update_request_screen_refresh(SETTING_ITEM_CHANGE, WAVEFORM_TYPING);
00250 }

Here is the call graph for this function:

void on_keybuffering_selection_update ( erGtkSelectionGroup selection,
gpointer  button,
gpointer  data 
)

Definition at line 218 of file iLiadConfigData.c.

00219 {
00220     ST_LOGPRINTF("entry");
00221 
00222     g_return_if_fail(NULL != g_user_settings);
00223     g_assert(NULL != g_user_settings);
00224 
00225     g_user_settings->keyBuffering = iLiad_config_get_keybuffering();
00226 
00227     // TODO: Fix when user can input the number of keys if enbale keybuffering    
00228     if (g_user_settings->keyBuffering != 0)
00229     {
00230         g_user_settings->keyBuffering = 12;
00231     }
00232 
00233     ST_LOGPRINTF("KeyBuffering %s", g_user_settings->keyBuffering == 0 ? "OFF" : "ON");
00234 
00235     display_update_request_screen_refresh(SETTING_ITEM_CHANGE, WAVEFORM_TYPING);
00236 }

Here is the call graph for this function:

void on_keys_selection_update ( erGtkSelectionGroup selection,
gpointer  button,
gpointer  data 
)

Definition at line 204 of file iLiadConfigData.c.

00205 {
00206     ST_LOGPRINTF("entry");
00207 
00208     g_return_if_fail(NULL != g_user_settings);
00209     g_assert(NULL != g_user_settings);
00210 
00211     g_user_settings->longkeypressTimeout = iLiad_config_get_keys();
00212 
00213     ST_LOGPRINTF("longkeypressTimeout = %d", g_user_settings->longkeypressTimeout);
00214 
00215     display_update_request_screen_refresh(SETTING_ITEM_CHANGE, WAVEFORM_TYPING);
00216 }

Here is the call graph for this function:

static void on_language_selection_update ( erGtkSelectionGroup selection,
gpointer  button,
gpointer  data 
)

Definition at line 252 of file iLiadConfigData.c.

00253 {
00254     g_assert(NULL != g_user_settings);
00255     g_assert(NULL != g_user_settings->language);
00256 
00257     ST_LOGPRINTF("entry");
00258 
00259     const gchar *theLanguage = iLiad_config_get_language();
00260 
00261     if ( strcmp(theLanguage, g_user_settings->language) != 0 )
00262     {
00263         erbusy_blink();
00264 
00265         g_free(g_user_settings->language);
00266         g_user_settings->language = strdup(theLanguage);
00267         ST_LANGUAGEPRINTF("language [%s]", g_user_settings->language);
00268 
00269         // update languages 
00270         languagesInit();
00271         bg_set_text();
00272         iLiad_startup_screen_set_text();
00273         iLiad_config_set_text();
00274         iLiad_archive_location_set_text();
00275         iLiad_user_set_text();
00276         iLiad_pincode_set_text();
00277         iLiad_pc_connect_screen_set_text();
00278         iLiad_autoconnect_set_text();
00279         iLiad_timedids_screen_set_text();
00280         iLiad_date_time_set_text();
00281         iLiad_device_overview_set_text();
00282 
00283         display_update_request_screen_refresh(SETTING_ITEM_CHANGE, WAVEFORM_FULLSCREEN);
00284     }
00285 
00286     ST_LOGPRINTF("done");
00287 }

Here is the call graph for this function:

void on_sound_selection_update ( erGtkSelectionGroup selection,
gpointer  button,
gpointer  data 
)

Definition at line 289 of file iLiadConfigData.c.

00290 {
00291     ST_LOGPRINTF("entry");
00292 
00293     g_return_if_fail(NULL != g_user_settings);
00294     g_assert(NULL != g_user_settings);
00295 
00296     g_user_settings->volume = iLiad_config_get_volume();
00297 
00298     // TODO: Fix when selection becomes a slider     
00299     if (g_user_settings->volume != 0)
00300     {
00301         g_user_settings->volume = 75;
00302     }
00303 
00304     ST_LOGPRINTF("sound %s", g_user_settings->volume == 0 ? "OFF" : "ON");
00305 
00306     display_update_request_screen_refresh(SETTING_ITEM_CHANGE, WAVEFORM_TYPING);
00307 
00308     clEnableAudio(contentListerChannel, g_user_settings->volume);
00309 }

Here is the call graph for this function:

static regUserSetting_t * user_setting_dup ( const regUserSetting_t settings  )  [static]

Definition at line 349 of file iLiadConfigData.c.

00350 {
00351     regUserSetting_t* dup = NULL;
00352    
00353     if (settings)
00354     {
00355         dup = g_new0(regUserSetting_t, 1);
00356         dup->language            = strdup(settings->language);
00357         dup->volume              = settings->volume;
00358         dup->longkeypressTimeout = settings->longkeypressTimeout;
00359         dup->keyBuffering        = settings->keyBuffering;
00360         dup->flipbarLeftIsDown   = settings->flipbarLeftIsDown;
00361     }
00362 
00363     return dup;
00364 }


Variable Documentation

Definition at line 82 of file iLiadConfigData.c.

Definition at line 76 of file iLiadConfigData.c.

Definition at line 78 of file iLiadConfigData.c.

Definition at line 77 of file iLiadConfigData.c.


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