diff options
author | seungho <seungho@samsung.com> | 2012-08-21 23:01:24 +0900 |
---|---|---|
committer | seungho <seungho@samsung.com> | 2012-08-21 23:01:24 +0900 |
commit | de0583fe580f60dbe6df346302d9b5a0d6d0bc5e (patch) | |
tree | b12a348a0746458acbe1f5142f07557070c90176 /include | |
parent | a567f8701cbb30a17da78748f90c4037e579e858 (diff) | |
download | pwlock-de0583fe580f60dbe6df346302d9b5a0d6d0bc5e.tar.gz pwlock-de0583fe580f60dbe6df346302d9b5a0d6d0bc5e.tar.bz2 pwlock-de0583fe580f60dbe6df346302d9b5a0d6d0bc5e.zip |
apps/home/pwlock
Diffstat (limited to 'include')
-rwxr-xr-x | include/langs.h | 53 | ||||
-rwxr-xr-x | include/pwlock.h | 135 | ||||
-rwxr-xr-x | include/tapi.h | 78 | ||||
-rwxr-xr-x | include/ui-callback.h | 37 | ||||
-rwxr-xr-x | include/ui.h | 55 | ||||
-rwxr-xr-x | include/util.h | 79 |
6 files changed, 304 insertions, 133 deletions
diff --git a/include/langs.h b/include/langs.h new file mode 100755 index 0000000..c37e55f --- /dev/null +++ b/include/langs.h @@ -0,0 +1,53 @@ +/* + * pwlock + * + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +enum { + _L_UNSPEC = -1, + _L_AUTO, + _L_EN, + _L_DE, + _L_NL, + _L_ES, + _L_PT, + _L_EL, + _L_IT, + _L_FR, + _L_TR, + _L_KO, + _L_CN, + _L_HK, + _L_TW, + _L_JP, + _L_RU, + _L_GR, + _L_MAX, +}; + +struct lang { + int value; + const char *name; + const char *code; + int ival; /* for VCONFKEY_SETAPPL_LANG_INT */ +}; + +extern struct lang langs[_L_MAX]; + +int set_lang(int v); +const char *get_lang_name(int v); +const char *get_lang_name_by_path(char *path); diff --git a/include/pwlock.h b/include/pwlock.h index 8723156..8e5cf91 100755 --- a/include/pwlock.h +++ b/include/pwlock.h @@ -1,19 +1,21 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - + * pwlock + * + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ #ifndef __PWLOCK_H__ #define __PWLOCK_H__ @@ -25,6 +27,7 @@ #include <sysman.h> #include "tapi.h" +#include "ui-gadget.h" #if !defined(PACKAGE) #define PACKAGE "org.tizen.pwlock" @@ -34,82 +37,106 @@ #define LOCALEDIR "/opt/apps/org.tizen.pwlock/res/locale" #endif +#if !defined(EDJDIR) +#define EDJDIR "/opt/apps/"PACKAGE"/res/edje" +#endif + +#if !defined(IMAGEDIR) +#define IMAGEDIR "/opt/apps/"PACKAGE"/res/images" +#endif + +#define EDJFILE EDJDIR"/"PACKAGE".edj" + +#define PWLOCK_DEVICE_NAME "db/setting/device_name" + +typedef enum _UG_BUTTON_STATE { + UG_BUTTON_STATE_NONE = 0, + UG_BUTTON_STATE_NEXT_CLICKED = 1, + UG_BUTTON_STATE_PREV_CLICKED = 2 +} UG_BUTTON_STATE; + struct appdata { Evas_Object *win; - Evas_Object *ly; - Evas_Object *navi; - Evas_Object *bg; + + Evas_Object *layout_main; + Evas_Object *layout_contents; + Evas_Object *layout_entry; + Evas_Object *layout_second_entry; + + Evas_Object *elm_bg; + Evas_Object *elm_navigation_frame; + Evas_Object *elm_button_dial; + Evas_Object *elm_button_done; + Evas_Object *elm_conform; int ui_type; int previous_ui_type; - Evas_Object *ly_main; - Evas_Object *entry_layout; - Evas_Object *entry_second_layout; - Evas_Object *button_dial; - Evas_Object *button_done; + int state; - int sub_state; + TelSimLockType_t sub_state; /* for lock sub state */ Ecore_Idler *idler; - int first_boot; - int running_status; - int alpha_window_status; - int keyboard_settings_loaded; + int is_first_boot; /* for checking first boot */ + int is_exec_after_bootup; /* for calling pwlock from other module */ + int is_no_sim; + + int alpha_window_status; /* for alpha */ int date_and_time_settings_loaded; - int language_settings_loaded; - int lock_view_loaded; + int language_settings_loaded; /* check the language ug first loaded or not */ + int lock_view_loaded; /* check the lock view loaded for sim card changed */ int lock_app_launched; char *entry_str; - char *pin_str; + char *pin_str; /* only for new pin */ char *msg; - Ecore_Timer *pTimerId; + Ecore_Timer *pTimerId; /* for vconf timer id */ int sim_changed; int pin_changed; enum sim_stat sim_status; struct tapi *t; - struct ui_gadget *dialer_ug; - struct ui_gadget *language_ug; - struct ui_gadget *keyboard_ug; - struct ui_gadget *date_ug; - struct ui_gadget *count_ug; - struct ui_gadget *current_ug; - int kill_ug; + ui_gadget_h dialer_ug; + ui_gadget_h language_ug; + ui_gadget_h connection_ug; + ui_gadget_h date_ug; + ui_gadget_h count_ug; + ui_gadget_h current_ug; + int kill_ug; /* If 1 killed by "previous", else killed by "next" button */ int date_and_time_previous; - int cancel_setup; + int cancel_setup; /* 1 means not show setup wizard,0 means show */ Evas_Object *popup; Evas_Object *waiting_popup; - int win_type; - int tapi_smc_sid; -}; + int win_type; /* it is set if pwlock is set to ECORE_X_WINDOW_TYPE_NOTIFICATION */ + int tapi_smc_sid; /* it is tapi resgistered sid for smc lab test */ + int tapi_init_retry_cnt; /* number of retry to tapi init */ -void do_state(struct appdata *ad); + UG_BUTTON_STATE ug_btn_evt_state; +}; enum { - STR_E_PW, + STR_E_PW, /* 0 */ STR_E_PIN, STR_E_NEW, STR_R_PIN, STR_E_PUK, - STR_I_PUN, + STR_I_PUN, /* 5 */ STR_I_PUK, STR_A_LEFT, STR_DONE, STR_DIAL, - STR_W_PW, + STR_W_PW, /* 10 */ STR_N_MAT, STR_LANG, STR_SET, STR_CANCEL, - STR_ERR_SIMLANG, + STR_ERR_SIMLANG, /* 15 */ STR_ERR_UNSUPP, STR_BLOCK, STR_SIM_LOCK, STR_NETWORK_LOCK_NCK, - STR_NETWORK_LOCK_NSCK, + STR_NETWORK_LOCK_NSCK, /* 20 */ STR_NETWORK_LOCK_SPCK, STR_NETWORK_LOCK_CCK, - STR_PW_LENGTH, + STR_PW_LENGTH, /* 23 */ }; enum { @@ -122,12 +149,18 @@ enum { _ST_NETWORK_LOCKCNF, _ST_EXIT, _ST_LANG, + _ST_NOSIM, _ST_TIME, - _ST_KEYBOARD, + _ST_GREETING, + _ST_CONNECTION, + _ST_TUTORIAL, + _ST_FINISH, _ST_MAX, }; extern const char *strtbl[]; void set_win_prop(struct appdata *ad, int type); +void do_state(struct appdata *ad); +void do_state_directly(int state, void *data); #endif /* __PWLOCK_H__ */ diff --git a/include/tapi.h b/include/tapi.h index 20d43a1..9f767d9 100755 --- a/include/tapi.h +++ b/include/tapi.h @@ -1,24 +1,28 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - + * pwlock + * + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ #ifndef __PWLOCK_TAPI_H__ #define __PWLOCK_TAPI_H__ -struct tapi; +#include <tapi_common.h> +#include <TapiUtility.h> +#include <ITapiSim.h> enum sim_stat { SIM_ERROR = -1, @@ -37,26 +41,42 @@ enum sim_stat { SIM_REQUIRED_EVENT }; -struct tapi_info { - enum sim_stat st; +struct pwlock_tapi_info { + enum sim_stat st; /* RETRY, OK, ERROR */ int retry_cnt; }; -struct tapi *tapi_init(void (*cb) (struct tapi_info *, void *), void *data); -void tapi_exit(struct tapi **t); +struct tapi { + TapiHandle *handle; + struct tapi_event *evt; + int evt_sz; + + void *cb_data; + void (*cb) (struct pwlock_tapi_info *, void *); +}; -int tapi_is_ready(void); -int tapi_ready_check(void); +struct tapi_event { + unsigned int sid; + char *event; + void (*tapi_notification_cb)(TapiHandle *handle, const char *noti_id, void *data, void *user_data); +}; -enum sim_stat tapi_check_sim(int *changed); +struct tapi *pwlock_tapi_init(void (*cb) (struct pwlock_tapi_info *, void *), void *data); +void pwlock_tapi_exit(struct tapi **t); +int pwlock_tapi_ready_check(void); -int tapi_verify_pins(char *code); -int tapi_verify_puks(char *code, char *newcode); -int tapi_verify_lock(char *code); -int tapi_disable_net_pers(char *code, int type); +enum sim_stat pwlock_tapi_check_sim(struct tapi *t, int *changed); -void enable_net_pers(); +/* tapi wrapper */ +int pwlock_tapi_verify_pins(struct tapi *t, char *code); +int pwlock_tapi_verify_puks(struct tapi *t, char *code, char *newcode); +int pwlock_tapi_verify_lock(struct tapi *t, char *code); +int pwlock_tapi_disable_net_pers(struct tapi *t, char *code, TelSimLockType_t type); -int tapi_get_language(int *v); +/* callbacks */ +void pwlock_tapi_noti_modem_power_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data); +void pwlock_tapi_noti_sim_status_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data); +void pwlock_tapi_verify_sim_pins_and_puks_cb(TapiHandle *handle, int result, void *data, void *user_data); +void pwlock_tapi_disable_sim_facility_cb(TapiHandle *handle, int result, void *data, void *user_data); #endif /* __PWLOCK_TAPI_H__ */ diff --git a/include/ui-callback.h b/include/ui-callback.h new file mode 100755 index 0000000..a7af470 --- /dev/null +++ b/include/ui-callback.h @@ -0,0 +1,37 @@ +/* + * pwlock + * + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef __PWLOCK_UI_CALLBACK_H__ +#define __PWLOCK_UI_CALLBACK_H__ + +void pwlock_greeting_next_cb(void *data, Evas_Object * obj, void *e); +void pwlock_nosim_skip_cb(void *data, Evas_Object * obj, void *e); +void pwlock_tutorial_prev_cb(void *data, Evas_Object * obj, void *e); +void pwlock_tutorial_next_cb(void *data, Evas_Object * obj, void *e); +void pwlock_ug_connection_layout_cb(ui_gadget_h ug, enum ug_mode mode, + void *priv); +void pwlock_ug_connection_result_cb(ui_gadget_h ug, service_h service, + void *priv); +void pwlock_ug_connection_destroy_cb(ui_gadget_h ug, void *priv); +void pwlock_popup_exit_ok_cb(void *data, Evas_Object * e, void *ei); +void pwlock_popup_exit_cancel_cb(void *data, Evas_Object * e, void *ei); +void pwlock_finish_prev_cb(void *data, Evas_Object * obj, void *e); +void pwlock_finish_cb(void *data, Evas_Object * obj, void *e); + +#endif /* __PWLOCK_UI_CALLBACK_H__ */ diff --git a/include/ui.h b/include/ui.h index dd08b6e..cdc060c 100755 --- a/include/ui.h +++ b/include/ui.h @@ -1,19 +1,21 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - + * pwlock + * + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ #ifndef __PWLOCK_UI_H__ #define __PWLOCK_UI_H__ @@ -35,21 +37,34 @@ enum { _UI_NETWORK_LOCK_NSCK, _UI_NETWORK_LOCK_SPCK, _UI_NETWORK_LOCK_CCK, - _UI_LANG, + _UI_LANG, //skipable view starts from here + _UI_NOSIM, _UI_TIME, _UI_KEYBOARD, + _UI_FACEBOOK, _UI_DIALER, + _UI_GREETING, + _UI_CONNECTION, + _UI_DATA_MIGRATION, + _UI_TUTORIAL, + _UI_FINISH, + /*_UI_POPUP,*/ }; +int show_splash_screen(struct appdata *ad); +int show_greeting(struct appdata *ad); +int show_connection(struct appdata *ad); +int show_tutorial(struct appdata *ad); void show_pin(struct appdata *ad); void show_puk(struct appdata *ad); void show_puk_pin(struct appdata *ad); void show_block(struct appdata *ad); void show_sim_lock(struct appdata *ad); int show_lang(struct appdata *ad); +int show_nosim(struct appdata *ad); int show_time(struct appdata *ad); -int show_account(struct appdata *ad); int show_keyboard_setting(struct appdata *ad); +int show_finish(struct appdata *ad); int show_dialer(struct appdata *ad); void pwlock_destroy(struct appdata *ad); @@ -58,8 +73,14 @@ void load_main(struct appdata *ad, int ui_type); void show_msg(struct appdata *ad, int strid); void clear_entry(struct appdata *ad); void _show_popup(void *data, char *msg_str); +void show_popup_accesibility(struct appdata *ad); void show_popup(struct appdata *ad, const char *mesg, Eina_Bool mode); +void show_popup_ask_exit(struct appdata *ad, const char *mesg); void show_waiting_popup(struct appdata *ad, const char *msg_str); void remove_waiting_popup(struct appdata *ad); Eina_Bool show_puk_do(void *data); +void update_pw_entry(struct appdata *ad, char *input_data); + +Evas_Object *pwlock_add_layout_from_edj(Evas_Object *parent, const char *file, + const char *group); #endif /* __PWLOCK_UI_H__ */ diff --git a/include/util.h b/include/util.h index 0700d02..3f30ab1 100755 --- a/include/util.h +++ b/include/util.h @@ -1,19 +1,21 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - + * pwlock + * + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ #ifndef __PWLOCK_UTIL_H__ #define __PWLOCK_UTIL_H__ @@ -30,6 +32,7 @@ #define ENABLE_LOG_SYSTEM +void pwlock_log(char *fmt, ...); void pwlock_log_t(char *fmt, ...); #ifdef ENABLE_LOG_SYSTEM @@ -50,14 +53,22 @@ void pwlock_log_t(char *fmt, ...); #define _DBG(...) #endif +#define PWLOCK_MEMFREE(ptr) \ + do { \ + if (ptr != NULL) { \ + free(ptr); \ + ptr = NULL; \ + } \ + } while(0); + enum { - IDS_COM_SK_SET = 0, - IDS_COM_SK_DONE, + IDS_COM_SK_DONE = 0, IDS_COM_BODY_ENTER_PASSWORD, IDS_COM_BODY_PREVIOUS, IDS_COM_SK_NEXT, IDS_COM_SK_OK, IDS_COM_SK_CANCEL, + IDS_COM_SK_START, IDS_PWLOCK_SYSTEM_STRING_MAX, }; @@ -65,7 +76,6 @@ enum { enum { IDS_IDLE_BODY_AUTOMATIC = IDS_PWLOCK_SYSTEM_STRING_MAX, IDS_IDLE_HEADER_NETWORK_LOCK, - IDS_IDLE_HEADER_PHONE_LOCK, IDS_IDLE_HEADER_PIN_LOCK, IDS_IDLE_HEADER_PUK_LOCK, IDS_IDLE_HEADER_SIM_BLOCKED, @@ -77,38 +87,33 @@ enum { IDS_IDLE_BODY_ENTER_PUK, IDS_IDLE_BODY_INCORRECT_PIN, IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN, - IDS_IDLE_BODY_INCORRECT_PUK, - IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED, IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY, IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY, - IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG, IDS_IDLE_BODY_PD_ATTEMPTS_LEFT, IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY, IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER, - IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE, IDS_IDLE_BODY_WRONG_PASSWORD, - IDS_IDLE_BUTTON_CANCEL, IDS_IDLE_BUTTON_DIALER, IDS_IDLE_HEADER_DISPLAY_LANGUAGE, IDS_IDLE_BODY_DO_YOU_WANT_TO_SKIP_SETUPWIZARD, IDS_IDLE_BODY_PASSWORD_EMPTY, IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED, - IDS_IDLE_BODY_NEW_PIN, - IDS_IDLE_BODY_PIN, - IDS_IDLE_BODY_PUK, - IDS_IDLE_POP_PIN_BLOCKED, - IDS_IDLE_POP_PIN_UNBLOCKED, - IDS_IDLE_BODY_CONFIRM_NEW_PIN, - IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT, - IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT, - IDS_IDLE_BODY_PD_TO_PD_DIGITS_OR_LETTERS_REQUIRED, IDS_IDLE_POP_PASSWORDS_NOT_MATCH, IDS_IDLE_POP_PIN_CHANGED, IDS_IDLE_POP_SIM_CARD_ERROR, - IDS_IDLE_BODY_TRY_LATER, - IDS_IDLE_BODY_INPUT_PASSWORD_AFTER_THIRTYSECONDS, - IDS_IDLE_BODY_CHECKING_SIM_STATUS, - + IDS_IDLE_POP_CHECKING_SIM_CARD_ING, + IDS_IDLE_BODY_GREETING_WELCOME, + IDS_SCM_BODY_WELCOME_E, + IDS_STU_BODY_SELECT_LANGUAGE, + IDS_ST_SK_EMERGENCY_CALL, + IDS_ST_BODY_TAP_TO_SET_UP, + IDS_IDLE_SK_SKIP, + IDS_ST_BODY_INSTALTAB_FINISH, + IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE, + IDS_STU_POP_SETUP_COMPLETE, + IDS_IDLE_HEADER_NOSIM, + IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG, + IDS_ST_BUTTON_TRY_AGAIN_ABB, IDS_PWLOCK_APP_STRING_MAX, }; @@ -116,4 +121,6 @@ char *pwlock_get_string(int id); Evas_Object *create_win(const char *name); Evas_Object *load_edj(Evas_Object * parent, const char *file, const char *group); +int pwlock_get_model_number(char *buf, int max_size); +void pwlock_tolower(char *src, char *dest); #endif /* __PWLOCK_UTIL_H__ */ |