app_guiobj_menutree.h 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780
  1. //**************************************************************************************************
  2. // (c) Copyright S2 Software Ltd. - ALL RIGHTS RESERVED
  3. // This document is the CONFIDENTIAL property of S2 Software Ltd.
  4. //**************************************************************************************************
  5. //
  6. // File Name: sc_menu.h
  7. //
  8. // Description: The tree of main menu screens
  9. //
  10. // Project:
  11. //
  12. // Creation Date: 2014/5/21 Add by Gordon
  13. //
  14. //**************************************************************************************************
  15. #ifndef __APP_MEMU_TREE_H__
  16. #define __APP_MEMU_TREE_H__
  17. #include "app_gui.h"
  18. #include "app_guiobj_adjust.h"
  19. #include "app_guiobj_popmsg.h"
  20. #ifdef CONFIG_ATV_SUPPORT
  21. #include "al_cc.h"
  22. #include "al_parent_control.h"
  23. #endif
  24. #ifdef CONFIG_BT_RDA5856
  25. #include "al_bluetooth_ctrl.h"
  26. #endif
  27. typedef unsigned char U8BIT;
  28. typedef signed char S8BIT;
  29. typedef unsigned short U16BIT;
  30. typedef signed short S16BIT;
  31. typedef unsigned int U32BIT;
  32. typedef signed int S32BIT;
  33. typedef U8BIT BOOLEAN;
  34. #ifndef BOOL
  35. #define BOOL unsigned char
  36. #endif
  37. typedef void (*MenuSettingFunc_PTR) (BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  38. /**************************************** Node define**************************************/
  39. typedef enum _MENU_NODE_ID_ {
  40. ID_Root,
  41. ID_Luminance,
  42. ID_ImageSetup,
  43. ID_ColorTempSetup,
  44. ID_ColorBoost,
  45. ID_OSDSetup,
  46. ID_Extra,
  47. /****** Luminance ******/
  48. //layer1
  49. //layer2
  50. ID_Contrast,
  51. ID_Brightness,
  52. ID_EcoMode,
  53. ID_DynamicContrast,
  54. ID_BlueLight,
  55. /****** ImageSetup ******/
  56. //layer1
  57. //layer2
  58. ID_Clock,
  59. ID_Phase,
  60. ID_ImageHPosition,
  61. ID_ImageVPosition,
  62. ID_ImageRatio,
  63. /****** ID_ColorTempSetup ******/
  64. //layer1
  65. //layer2
  66. ID_ColorTemp,
  67. ID_ColorTemp_Red,
  68. ID_ColorTemp_Green,
  69. ID_ColorTemp_Blue,
  70. /****** ColorBoost ******/
  71. //layer1
  72. //layer2
  73. ID_FullEnhance,
  74. ID_NatureSkin,
  75. ID_GreenField,
  76. ID_SkyBlue,
  77. ID_AutoDetect,
  78. //ID_Demo,
  79. /****** OSDSetup ******/
  80. //layer1
  81. //layer2
  82. ID_Volume,
  83. ID_OsdHPosition,
  84. ID_OsdVPosition,
  85. ID_OsdTimeout,
  86. ID_OsdLanguage,
  87. /****** Extra ******/
  88. //layer1
  89. //layer2
  90. ID_InputSelect,
  91. ID_DDCCI,
  92. ID_OffTimer,
  93. ID_Reset,
  94. ID_Infomation,
  95. //layer3
  96. ID_Reset_No,
  97. ID_Reset_Yes,
  98. ID_Infomation_detail,
  99. MENU_NODE_NUM,
  100. ID_NULL = 0xffff
  101. } MENU_NODE_ID;
  102. #define FIRST_ENTER_FROM_MENUHOME (0x1 << 0x10)
  103. /**************************************** Type Definition**************************************/
  104. #define MENU_CTRL_TYPE_NONE 0 // type none
  105. #define MENU_CTRL_TYPE_PUSHBUTTON 1 // push to the another ui or execute the function
  106. #define MENU_CTRL_TYPE_RADIOBUTTON 2 // node have one more leave can be selected
  107. #define MENU_CTRL_TYPE_SLIDER 3 //slider type
  108. #define MENU_CTRL_TYPE_PASSWD_INPUT 4 //only for enterpassword or new password
  109. #define MENU_CTRL_TYPE_DATETIME 5 //datetime node
  110. #define MENU_CTRL_TYPE_SLIDER_LEAVE 6 // slider and switch the other ui
  111. #define MENU_CTRL_TYPE_POPBUTTON 7 //pop out a confirm dialog to choice
  112. #define MENU_CTRL_TYPE_CHOICEINPUT 8 //
  113. #define MENU_NODE_TYPE_CHOICE 9
  114. #define MENU_CTRL_TYPE_DATESETTING 10
  115. #define MENU_CTRL_TYPE_TIMESETTING 11
  116. #define MENU_CTRL_TYPE_CUSTOMIZED_CEC 12
  117. #define MENU_CTRL_TYPE_SILDERNUMBERINPUT 13
  118. #define MENU_CTRL_TYPE_DAYNAMICSTRING 14
  119. /**************************************** leave Structure**************************************/
  120. typedef enum {
  121. PUSH_NONE = 0x10,
  122. PUSH_DESTROY_MENU,
  123. PUSH_NON_DESTROY_MENU,
  124. PUSH_MAX
  125. } MENU_PUSH_TYPE;
  126. typedef struct {
  127. U32BIT strID;
  128. int value;
  129. U32BIT bIsDefault;
  130. } MENU_RADIO_BUTTON;
  131. typedef struct {
  132. U16BIT strID;
  133. MENU_PUSH_TYPE Push_Type;
  134. } MENU_PUSH_BUTTON;
  135. typedef struct {
  136. PopmsgType_t poptype;
  137. int subtype;
  138. UINT16 exitkey;
  139. } MENU_POP_BUTTON;
  140. typedef struct {
  141. U16BIT strID;
  142. int nMin;
  143. int nMax;
  144. int nValue;
  145. int AdjustItem;
  146. } MENU_SLIDER;
  147. typedef struct {
  148. U16BIT strID;
  149. int nMax;
  150. int nMin;
  151. int nStep;
  152. int nValue;
  153. } MENU_COMBO_BUTTON;
  154. typedef struct {
  155. U16BIT strID;
  156. } MENU_PASSWORD_INPUT;
  157. typedef struct {
  158. U32BIT strID;
  159. int min;
  160. int max;
  161. int digitMin;
  162. int digitMax;
  163. int mode;
  164. } MENU_CHOICE_INPUT;
  165. typedef struct {
  166. U16BIT strID;
  167. int min, max, step;
  168. } MENU_CHOICEBTN;
  169. typedef struct {
  170. U16BIT str;
  171. } MENU_DYNAMIC_STRING;
  172. typedef struct {
  173. MenuSettingFunc_PTR MenuSettingFun;
  174. U32BIT type;
  175. U32BIT nItems;
  176. void *leaves;
  177. } NODE_FUNCTION;
  178. typedef struct {
  179. U32BIT strID;
  180. U32BIT parentID;
  181. U32BIT nextID;
  182. U32BIT childID;
  183. NODE_FUNCTION *pThis;
  184. } MENU_NODE;
  185. /**************************************** Leave Structure**************************************/
  186. #ifdef DECLARE_MENU_NODE
  187. //layer2-Luminance ParenetId:ID_Luminance
  188. //ID_Contrast
  189. void Menu_Contrast(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  190. static MENU_SLIDER L_Contrast[] = {
  191. {TV_IDS_String_NULL, 0, 100, 0, ADJUST_CONTRAST}
  192. };
  193. static NODE_FUNCTION Fun_Contrast = {
  194. Menu_Contrast,
  195. MENU_CTRL_TYPE_SLIDER_LEAVE,
  196. sizeof(L_Contrast) / sizeof(MENU_SLIDER),
  197. L_Contrast
  198. };
  199. //ID_Brightness,
  200. void Menu_Brightness(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  201. static MENU_SLIDER L_Brightness[] = {
  202. {TV_IDS_String_NULL, 0, 100, 0, ADJUST_BRIGHTNESS}
  203. };
  204. static NODE_FUNCTION Fun_Brightness = {
  205. Menu_Brightness,
  206. MENU_CTRL_TYPE_SLIDER_LEAVE,
  207. sizeof(L_Brightness) / sizeof(MENU_SLIDER),
  208. L_Brightness
  209. };
  210. //ID_EcoMode,
  211. void Menu_EcoMode(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  212. static MENU_RADIO_BUTTON L_EcoMode[] = {
  213. {TV_IDS_String_Standard, APP_VIDEO_PQ_MODE_STANDARD, 1},
  214. {TV_IDS_String_Text, APP_VIDEO_PQ_MODE_TEXT, 0},
  215. {TV_IDS_String_Internet, APP_VIDEO_PQ_MODE_INTERNET, 0},
  216. {TV_IDS_String_Game, APP_VIDEO_PQ_MODE_GAME, 0},
  217. {TV_IDS_String_Movie, APP_VIDEO_PQ_MODE_MOVIE, 0},
  218. {TV_IDS_String_Sports, APP_VIDEO_PQ_MODE_SPORTS, 0},
  219. };
  220. static NODE_FUNCTION Fun_EcoMode = {
  221. Menu_EcoMode,
  222. MENU_CTRL_TYPE_RADIOBUTTON,
  223. sizeof(L_EcoMode) / sizeof(MENU_RADIO_BUTTON),
  224. L_EcoMode
  225. };
  226. //ID_DynamicContrast,
  227. void Menu_DynamicContrast(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  228. static MENU_RADIO_BUTTON L_DynamicContrast[] = {
  229. {TV_IDS_String_Off, MID_OFF, 1},
  230. {TV_IDS_String_On, MID_ON, 0},
  231. };
  232. static NODE_FUNCTION Fun_DynamicContrast = {
  233. Menu_DynamicContrast,
  234. MENU_CTRL_TYPE_RADIOBUTTON,
  235. sizeof(L_DynamicContrast) / sizeof(MENU_RADIO_BUTTON),
  236. L_DynamicContrast
  237. };
  238. //ID_BlueLight,
  239. void Menu_BlueLight(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  240. static MENU_RADIO_BUTTON L_BlueLight[] = {
  241. {TV_IDS_String_Off, MID_BL_OFF, 1},
  242. {TV_IDS_String_50_Percent, MID_BL_50, 0},
  243. {TV_IDS_String_60_Percent, MID_BL_60, 0},
  244. {TV_IDS_String_70_Percent, MID_BL_70, 0},
  245. {TV_IDS_String_80_Percent, MID_BL_80, 0},
  246. };
  247. static NODE_FUNCTION Fun_BlueLight = {
  248. Menu_BlueLight,
  249. MENU_CTRL_TYPE_RADIOBUTTON,
  250. sizeof(L_BlueLight) / sizeof(MENU_RADIO_BUTTON),
  251. L_BlueLight
  252. };
  253. //layer2-ImageSetup ParenetId:ID_ImageSetup
  254. //ID_Clock
  255. void Menu_PcClock(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  256. static MENU_SLIDER L_Clock[] = {
  257. {TV_IDS_String_NULL, -30, 30, 50, ADJUST_PC_CLOCK}
  258. };
  259. static NODE_FUNCTION Fun_Clock = {
  260. Menu_PcClock,
  261. MENU_CTRL_TYPE_SLIDER_LEAVE,
  262. sizeof(L_Clock) / sizeof(MENU_SLIDER),
  263. L_Clock
  264. };
  265. //ID_Phase
  266. void Menu_PcPhase(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  267. static MENU_SLIDER L_Phase[] = {
  268. {TV_IDS_String_NULL, 0, 31, 0, ADJUST_PC_PHASE}
  269. };
  270. static NODE_FUNCTION Fun_Phase = {
  271. Menu_PcPhase,
  272. MENU_CTRL_TYPE_SLIDER_LEAVE,
  273. sizeof(L_Phase) / sizeof(MENU_SLIDER),
  274. L_Phase
  275. };
  276. //ID_ImageHPosition
  277. void Menu_ImageHPosition(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  278. static MENU_SLIDER L_ImageHPosition[] = {
  279. {TV_IDS_String_NULL, 0, 100, APP_PC_HPOS_DEF, ADJUST_PC_HPOSITION}
  280. };
  281. static NODE_FUNCTION Fun_ImageHPosition = {
  282. Menu_ImageHPosition,
  283. MENU_CTRL_TYPE_SLIDER_LEAVE,
  284. sizeof(L_ImageHPosition) / sizeof(MENU_SLIDER),
  285. L_ImageHPosition
  286. };
  287. //ID_ImageVPosition
  288. void Menu_ImageVPosition(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  289. static MENU_SLIDER L_ImageVPosition[] = {
  290. {TV_IDS_String_NULL, 0, 100, APP_PC_VPOS_DEF, ADJUST_PC_VPOSITION}
  291. };
  292. static NODE_FUNCTION Fun_ImageVPosition = {
  293. Menu_ImageVPosition,
  294. MENU_CTRL_TYPE_SLIDER_LEAVE,
  295. sizeof(L_ImageVPosition) / sizeof(MENU_SLIDER),
  296. L_ImageVPosition
  297. };
  298. //ID_ImageRatio
  299. void Menu_ImageRatio(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  300. static MENU_RADIO_BUTTON L_ImageRatio[] = {
  301. {TV_IDS_String_43, APP_VIDEO_ASPECT_RATIO_4_3, 0},
  302. {TV_IDS_String_Wide, APP_VIDEO_ASPECT_RATIO_REAL, 1},
  303. };
  304. static NODE_FUNCTION Fun_ImageRatio = {
  305. Menu_ImageRatio,
  306. MENU_CTRL_TYPE_RADIOBUTTON,
  307. sizeof(L_ImageRatio) / sizeof(MENU_RADIO_BUTTON),
  308. L_ImageRatio
  309. };
  310. //layer2-ColorTempSetup ParenetId:ID_ColorTempSetup
  311. //ID_ColorTemp,
  312. void Menu_ColorTemp(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  313. static MENU_RADIO_BUTTON L_ColorTemp[] = {
  314. {TV_IDS_String_Warm, MID_COLORTEMP_WARM, 0},
  315. {TV_IDS_String_Normal, MID_COLORTEMP_STD, 1},
  316. {TV_IDS_String_Cool, MID_COLORTEMP_COOL, 0},
  317. {TV_IDS_String_sRGB, MID_COLORTEMP_sRGB, 0},
  318. {TV_IDS_String_User, MID_COLORTEMP_USER, 0},
  319. };
  320. static NODE_FUNCTION Fun_ColorTemp = {
  321. Menu_ColorTemp,
  322. MENU_CTRL_TYPE_RADIOBUTTON,
  323. sizeof(L_ColorTemp) / sizeof(MENU_RADIO_BUTTON),
  324. L_ColorTemp
  325. };
  326. //ID_ColorTemp_Red
  327. void Menu_ColorTemp_Red(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  328. static MENU_SLIDER L_ColorTemp_Red[] = {
  329. {TV_IDS_String_NULL, 0, 100, 50, ADJUST_COLORTEMP_RED}
  330. };
  331. static NODE_FUNCTION Fun_ColorTemp_Red = {
  332. Menu_ColorTemp_Red,
  333. MENU_CTRL_TYPE_SLIDER_LEAVE,
  334. sizeof(L_ColorTemp_Red) / sizeof(MENU_SLIDER),
  335. L_ColorTemp_Red
  336. };
  337. //ID_ColorTemp_Green
  338. void Menu_ColorTemp_Green(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  339. static MENU_SLIDER L_ColorTemp_Green[] = {
  340. {TV_IDS_String_NULL, 0, 100, 50, ADJUST_COLORTEMP_GREEN}
  341. };
  342. static NODE_FUNCTION Fun_ColorTemp_Green = {
  343. Menu_ColorTemp_Green,
  344. MENU_CTRL_TYPE_SLIDER_LEAVE,
  345. sizeof(L_ColorTemp_Green) / sizeof(MENU_SLIDER),
  346. L_ColorTemp_Green
  347. };
  348. //ID_ColorTemp_Blue
  349. void Menu_ColorTemp_Blue(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  350. static MENU_SLIDER L_ColorTemp_Blue[] = {
  351. {TV_IDS_String_NULL, 0, 100, 50, ADJUST_COLORTEMP_BLUE}
  352. };
  353. static NODE_FUNCTION Fun_ColorTemp_Blue = {
  354. Menu_ColorTemp_Blue,
  355. MENU_CTRL_TYPE_SLIDER_LEAVE,
  356. sizeof(L_ColorTemp_Blue) / sizeof(MENU_SLIDER),
  357. L_ColorTemp_Blue
  358. };
  359. //layer2-ColorBoost ParenetId:ID_ColorBoost
  360. //ID_FullEnhance
  361. void Menu_FullEnhance(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  362. static MENU_RADIO_BUTTON L_FullEnhance[] = {
  363. {TV_IDS_String_Off, MID_OFF, 1},
  364. {TV_IDS_String_On, MID_ON, 0},
  365. };
  366. static NODE_FUNCTION Fun_FullEnhance = {
  367. Menu_FullEnhance,
  368. MENU_CTRL_TYPE_RADIOBUTTON,
  369. sizeof(L_FullEnhance) / sizeof(MENU_RADIO_BUTTON),
  370. L_FullEnhance
  371. };
  372. //ID_NatureSkin
  373. void Menu_NatureSkin(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  374. static MENU_RADIO_BUTTON L_NatureSkin[] = {
  375. {TV_IDS_String_Off, MID_OFF, 1},
  376. {TV_IDS_String_On, MID_ON, 0},
  377. };
  378. static NODE_FUNCTION Fun_NatureSkin = {
  379. Menu_NatureSkin,
  380. MENU_CTRL_TYPE_RADIOBUTTON,
  381. sizeof(L_NatureSkin) / sizeof(MENU_RADIO_BUTTON),
  382. L_NatureSkin
  383. };
  384. //ID_GreenField
  385. void Menu_GreenField(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  386. static MENU_RADIO_BUTTON L_GreenField[] = {
  387. {TV_IDS_String_Off, MID_OFF, 1},
  388. {TV_IDS_String_On, MID_ON, 0},
  389. };
  390. static NODE_FUNCTION Fun_GreenField = {
  391. Menu_GreenField,
  392. MENU_CTRL_TYPE_RADIOBUTTON,
  393. sizeof(L_GreenField) / sizeof(MENU_RADIO_BUTTON),
  394. L_GreenField
  395. };
  396. //ID_SkyBlue
  397. void Menu_SkyBlue(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  398. static MENU_RADIO_BUTTON L_SkyBlue[] = {
  399. {TV_IDS_String_Off, MID_OFF, 1},
  400. {TV_IDS_String_On, MID_ON, 0},
  401. };
  402. static NODE_FUNCTION Fun_SkyBlue = {
  403. Menu_SkyBlue,
  404. MENU_CTRL_TYPE_RADIOBUTTON,
  405. sizeof(L_SkyBlue) / sizeof(MENU_RADIO_BUTTON),
  406. L_SkyBlue
  407. };
  408. //ID_AutoDetect
  409. void Menu_AutoDetect(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  410. static MENU_RADIO_BUTTON L_AutoDetect[] = {
  411. {TV_IDS_String_Off, MID_OFF, 1},
  412. {TV_IDS_String_On, MID_ON, 0},
  413. };
  414. static NODE_FUNCTION Fun_AutoDetect = {
  415. Menu_AutoDetect,
  416. MENU_CTRL_TYPE_RADIOBUTTON,
  417. sizeof(L_AutoDetect) / sizeof(MENU_RADIO_BUTTON),
  418. L_AutoDetect
  419. };
  420. #if 0
  421. //ID_Demo
  422. void Menu_Demo(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  423. static MENU_RADIO_BUTTON L_Demo[] = {
  424. {TV_IDS_String_Off, MID_OFF, 1},
  425. {TV_IDS_String_On, MID_ON, 0},
  426. };
  427. static NODE_FUNCTION Fun_Demo = {
  428. Menu_Demo,
  429. MENU_CTRL_TYPE_RADIOBUTTON,
  430. sizeof(L_Demo) / sizeof(MENU_RADIO_BUTTON),
  431. L_Demo
  432. };
  433. #endif
  434. //layer2-OSD Setup ParenetId:ID_OSDSetup
  435. //ID_Volume
  436. void Menu_Volume(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  437. static MENU_SLIDER L_Volume[] = {
  438. {TV_IDS_String_NULL, 0, 100, 50, ADJUST_VOLUME}
  439. };
  440. static NODE_FUNCTION Fun_Volume = {
  441. Menu_Volume,
  442. MENU_CTRL_TYPE_SLIDER_LEAVE,
  443. sizeof(L_Volume) / sizeof(MENU_SLIDER),
  444. L_Volume
  445. };
  446. //ID_OsdHPosition
  447. void Menu_OsdHPosition(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  448. static MENU_SLIDER L_OsdHPosition[] = {
  449. {TV_IDS_String_NULL, 0, 100, 50, ADJUST_OSD_HPOSITION}
  450. };
  451. static NODE_FUNCTION Fun_OsdHPosition = {
  452. Menu_OsdHPosition,
  453. MENU_CTRL_TYPE_SLIDER_LEAVE,
  454. sizeof(L_OsdHPosition) / sizeof(MENU_SLIDER),
  455. L_OsdHPosition
  456. };
  457. //ID_OsdVPosition
  458. void Menu_OsdVPosition(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  459. static MENU_SLIDER L_OsdVPosition[] = {
  460. {TV_IDS_String_NULL, 0, 100, 50, ADJUST_OSD_VPOSITION}
  461. };
  462. static NODE_FUNCTION Fun_OsdVPosition = {
  463. Menu_OsdVPosition,
  464. MENU_CTRL_TYPE_SLIDER_LEAVE,
  465. sizeof(L_OsdVPosition) / sizeof(MENU_SLIDER),
  466. L_OsdVPosition
  467. };
  468. //ID_OsdTimeout
  469. void Menu_OsdTimeout(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  470. static MENU_SLIDER L_OsdTimeout[] = {
  471. {TV_IDS_String_NULL, 5, 100, 10, ADJUST_OSD_TIMEOUT}
  472. };
  473. static NODE_FUNCTION Fun_OsdTimeout = {
  474. Menu_OsdTimeout,
  475. MENU_CTRL_TYPE_SLIDER_LEAVE,
  476. sizeof(L_OsdTimeout) / sizeof(MENU_SLIDER),
  477. L_OsdTimeout
  478. };
  479. //ID_OsdLanguage
  480. void Menu_OsdLanguage(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  481. static MENU_RADIO_BUTTON L_OsdLang[] = {
  482. {TV_IDS_String_TChinese, APP_OSDLANG_TCHINESE, 0},
  483. {TV_IDS_String_English, APP_OSDLANG_ENGLISH, 1},
  484. {TV_IDS_String_French, APP_OSDLANG_FRENCH, 0},
  485. {TV_IDS_String_German, APP_OSDLANG_GERMAN, 0},
  486. {TV_IDS_String_Italian, APP_OSDLANG_ITALIAN, 0},
  487. #ifdef CONFIG_SUPPORT_JAPANESE_CP932
  488. {TV_IDS_String_Japanese, APP_OSDLANG_JAPAN, 0},
  489. #endif
  490. {TV_IDS_String_Korean, APP_OSDLANG_KOREAN, 0},
  491. {TV_IDS_String_Russian, APP_OSDLANG_RUSSIA, 0},
  492. {TV_IDS_String_Spanish, APP_OSDLANG_SPAIN, 0},
  493. {TV_IDS_String_Swedish, APP_OSDLANG_SWEDISH, 0},
  494. {TV_IDS_String_Turkish, APP_OSDLANG_TURKISH, 0},
  495. {TV_IDS_String_SChinese, APP_OSDLANG_SCHINESE, 0},
  496. {TV_IDS_String_Portuguese, APP_OSDLANG_PORTUGUESE, 0},
  497. {TV_IDS_String_Czech, APP_OSDLANG_CZECH, 0},
  498. {TV_IDS_String_Dutch, APP_OSDLANG_NEDERLANDS, 0},
  499. {TV_IDS_String_Finnish, APP_OSDLANG_SUOMI, 0},
  500. {TV_IDS_String_Polish, APP_OSDLANG_POLISH, 0},
  501. };
  502. static NODE_FUNCTION Fun_OsdLang = {
  503. Menu_OsdLanguage,
  504. MENU_CTRL_TYPE_RADIOBUTTON,
  505. sizeof(L_OsdLang) / sizeof(MENU_RADIO_BUTTON),
  506. L_OsdLang
  507. };
  508. //layer2-Extra ParenetId:ID_Extra
  509. //ID_InputSelect
  510. void Menu_InputSelect(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  511. static MENU_RADIO_BUTTON L_InputSelect[] = {
  512. {TV_IDS_String_Auto, APP_MENUSOURCETYPE_AUTO, 1},
  513. {TV_IDS_String_HDMI1, APP_MENUSOURCETYPE_HDMI, 0},
  514. {TV_IDS_String_PC, APP_MENUSOURCETYPE_PC, 0},
  515. {TV_IDS_String_AV, APP_MENUSOURCETYPE_AV, 0},
  516. };
  517. static NODE_FUNCTION Fun_InputSelect = {
  518. Menu_InputSelect,
  519. MENU_CTRL_TYPE_RADIOBUTTON,
  520. sizeof(L_InputSelect) / sizeof(MENU_RADIO_BUTTON),
  521. L_InputSelect
  522. };
  523. //ID_DDCCI
  524. void Menu_DDCCI(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  525. static MENU_RADIO_BUTTON L_DDCCI[] = {
  526. {TV_IDS_String_Off, MID_OFF, 0},
  527. {TV_IDS_String_On, MID_ON, 1},
  528. };
  529. static NODE_FUNCTION Fun_DDCCI = {
  530. Menu_DDCCI,
  531. MENU_CTRL_TYPE_RADIOBUTTON,
  532. sizeof(L_DDCCI) / sizeof(MENU_RADIO_BUTTON),
  533. L_DDCCI
  534. };
  535. //ID_OffTimer
  536. void Menu_OffTimer(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  537. static MENU_SLIDER L_OffTimer[] = {
  538. {TV_IDS_String_NULL, 0, 100, 0, ADJUST_OFFTIMER}
  539. };
  540. static NODE_FUNCTION Fun_OffTimer = {
  541. Menu_OffTimer,
  542. MENU_CTRL_TYPE_SLIDER_LEAVE,
  543. sizeof(L_OffTimer) / sizeof(MENU_SLIDER),
  544. L_OffTimer
  545. };
  546. //ID_Reset_No
  547. void Menu_Reset_No(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  548. static MENU_PUSH_BUTTON L_Reset_No[] = {
  549. {TV_IDS_String_NULL, PUSH_NON_DESTROY_MENU}
  550. };
  551. static NODE_FUNCTION Fun_Reset_No = {
  552. Menu_Reset_No,
  553. MENU_CTRL_TYPE_PUSHBUTTON,
  554. sizeof(L_Reset_No) / sizeof(MENU_PUSH_BUTTON),
  555. L_Reset_No
  556. };
  557. //ID_Reset_Yes
  558. void Menu_RestoreFactoryDefault(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  559. static MENU_PUSH_BUTTON L_MenuRestoreFactoryDefault[] = {
  560. {TV_IDS_String_NULL, PUSH_NON_DESTROY_MENU}
  561. };
  562. static NODE_FUNCTION Fun_MenuRestoreFactoryDefault = {
  563. Menu_RestoreFactoryDefault,
  564. MENU_CTRL_TYPE_PUSHBUTTON,
  565. sizeof(L_MenuRestoreFactoryDefault) / sizeof(MENU_PUSH_BUTTON),
  566. L_MenuRestoreFactoryDefault
  567. };
  568. //ID_Infomation_detail
  569. void Menu_Infomation(BOOL bSet, BOOL path, int *pValue, BOOL bDefault, HWND * phGuiArr, UINT8 *pCount);
  570. static MENU_DYNAMIC_STRING L_Infomation[] = {
  571. {TV_IDS_String_NULL}
  572. };
  573. static NODE_FUNCTION Fun_Infomation = {
  574. Menu_Infomation,
  575. MENU_CTRL_TYPE_DAYNAMICSTRING,
  576. sizeof(L_Infomation) / sizeof(MENU_DYNAMIC_STRING),
  577. L_Infomation
  578. };
  579. MENU_NODE MenuNode[] = {
  580. //{strID, parent_ID, next_ID, child_ID, pThis}
  581. //ID_Root,
  582. {TV_IDS_String_NULL, ID_NULL, ID_NULL, ID_Luminance, NULL}
  583. , //0
  584. {TV_IDS_String_Luminance, ID_Root, ID_ImageSetup, ID_Contrast, NULL}
  585. , //ID_Luminance
  586. {TV_IDS_String_Image_Setup, ID_Root, ID_ColorTempSetup, ID_Clock, NULL}
  587. , //ID_ImageSetup
  588. {TV_IDS_String_Color_Temp, ID_Root, ID_ColorBoost, ID_ColorTemp, NULL}
  589. , //ID_ColorTempSetup
  590. {TV_IDS_String_Color_Boost, ID_Root, ID_OSDSetup, ID_FullEnhance, NULL}
  591. , //ID_ColorBoost
  592. {TV_IDS_String_OSD_Setup, ID_Root, ID_Extra, ID_Volume, NULL}
  593. , //ID_OSDSetup
  594. {TV_IDS_String_Extra, ID_Root, ID_NULL, ID_InputSelect, NULL}
  595. , //ID_Extra
  596. /****** Luminance ******/
  597. //layer1
  598. //layer2
  599. {TV_IDS_String_Contrast, ID_Luminance, ID_Brightness, ID_NULL, &Fun_Contrast}
  600. , //ID_Contrast
  601. {TV_IDS_String_Brightness, ID_Luminance, ID_EcoMode, ID_NULL, &Fun_Brightness}
  602. , //ID_Brightness
  603. {TV_IDS_String_ECO_Mode, ID_Luminance, ID_DynamicContrast, ID_NULL, &Fun_EcoMode}
  604. , //ID_EcoMode
  605. {TV_IDS_String_DynamicContrast, ID_Luminance, ID_BlueLight, ID_NULL, &Fun_DynamicContrast}
  606. , //ID_DynamicContrast
  607. {TV_IDS_String_BlueLight, ID_Luminance, ID_NULL, ID_NULL, &Fun_BlueLight}
  608. , //ID_BlueLight
  609. /****** ImageSetup ******/
  610. //layer1
  611. //layer2
  612. {TV_IDS_String_Clock, ID_ImageSetup, ID_Phase, ID_NULL, &Fun_Clock}
  613. , //ID_Clock
  614. {TV_IDS_String_Phase, ID_ImageSetup, ID_ImageHPosition, ID_NULL, &Fun_Phase}
  615. , //ID_Phase
  616. {TV_IDS_String_HPosition, ID_ImageSetup, ID_ImageVPosition, ID_NULL, &Fun_ImageHPosition}
  617. , //ID_ImageHPosition
  618. {TV_IDS_String_VPosition, ID_ImageSetup, ID_ImageRatio, ID_NULL, &Fun_ImageVPosition}
  619. , //ID_ImageVPosition
  620. {TV_IDS_String_Image_Ratio, ID_ImageSetup, ID_NULL, ID_NULL, &Fun_ImageRatio}
  621. , //ID_ImageRatio
  622. /****** ColorTempSetup ******/
  623. //layer1
  624. //layer2
  625. {TV_IDS_String_Color_Temp, ID_ColorTempSetup, ID_ColorTemp_Red, ID_NULL, &Fun_ColorTemp}
  626. , //ID_ColorTemp
  627. {TV_IDS_String_Red, ID_ColorTempSetup, ID_ColorTemp_Green, ID_NULL, &Fun_ColorTemp_Red}
  628. , //ID_ColorTemp_Red
  629. {TV_IDS_String_Green, ID_ColorTempSetup, ID_ColorTemp_Blue, ID_NULL, &Fun_ColorTemp_Green}
  630. , //ID_ColorTemp_Green
  631. {TV_IDS_String_Blue, ID_ColorTempSetup, ID_NULL, ID_NULL, &Fun_ColorTemp_Blue}
  632. , //ID_ColorTemp_Blue
  633. /****** ColorBoost ******/
  634. //layer1
  635. //layer2
  636. {TV_IDS_String_FullEnhance, ID_ColorBoost, ID_NatureSkin, ID_NULL, &Fun_FullEnhance}
  637. , //ID_FullEnhance
  638. {TV_IDS_String_NatureSkin, ID_ColorBoost, ID_GreenField, ID_NULL, &Fun_NatureSkin}
  639. , //ID_NatureSkin
  640. {TV_IDS_String_GreenField, ID_ColorBoost, ID_SkyBlue, ID_NULL, &Fun_GreenField}
  641. , //ID_GreenField
  642. {TV_IDS_String_SkyBlue, ID_ColorBoost, ID_AutoDetect, ID_NULL, &Fun_SkyBlue}
  643. , //ID_SkyBlue
  644. {TV_IDS_String_AutoDetect, ID_ColorBoost, ID_NULL, ID_NULL, &Fun_AutoDetect}
  645. , //ID_AutoDetect
  646. //{TV_IDS_String_Demo, ID_ColorBoost, ID_NULL, ID_NULL, &Fun_Demo}
  647. //, //ID_Demo
  648. /****** OSDSetup ******/
  649. //layer1
  650. //layer2
  651. {TV_IDS_String_Volume, ID_OSDSetup, ID_OsdHPosition, ID_NULL, &Fun_Volume}
  652. , //ID_Volume
  653. {TV_IDS_String_HPosition, ID_OSDSetup, ID_OsdVPosition, ID_NULL, &Fun_OsdHPosition}
  654. , //ID_OsdHPosition
  655. {TV_IDS_String_VPosition, ID_OSDSetup, ID_OsdTimeout, ID_NULL, &Fun_OsdVPosition}
  656. , //ID_OsdVPosition
  657. {TV_IDS_String_TimeOut, ID_OSDSetup, ID_OsdLanguage, ID_NULL, &Fun_OsdTimeout}
  658. , //ID_OsdTimeout
  659. {TV_IDS_String_Language, ID_OSDSetup, ID_NULL, ID_NULL, &Fun_OsdLang}
  660. , //ID_OsdLanguage
  661. /****** Extra ******/
  662. //layer1
  663. //layer2
  664. /* Time Settings */
  665. {TV_IDS_String_InputSelect, ID_Extra, ID_DDCCI, ID_NULL, &Fun_InputSelect}
  666. , //ID_InputSelect
  667. {TV_IDS_String_DDC_CI, ID_Extra, ID_OffTimer, ID_NULL, &Fun_DDCCI}
  668. , //ID_DDCCI
  669. {TV_IDS_String_OffTimer, ID_Extra, ID_Reset, ID_NULL, &Fun_OffTimer}
  670. , //ID_OffTimer
  671. {TV_IDS_String_Reset, ID_Extra, ID_Infomation, ID_Reset_No, NULL}
  672. , //ID_Reset
  673. {TV_IDS_String_Infomation, ID_Extra, ID_NULL, ID_Infomation_detail, NULL}
  674. , //ID_Infomation
  675. //layer3
  676. {TV_IDS_String_No, ID_Reset, ID_Reset_Yes, ID_NULL, &Fun_Reset_No}
  677. , //ID_Reset_No
  678. {TV_IDS_String_Yes, ID_Reset, ID_NULL, ID_NULL, &Fun_MenuRestoreFactoryDefault}
  679. , //ID_Reset_Yes
  680. {TV_IDS_String_NULL, ID_Reset, ID_NULL, ID_NULL, &Fun_Infomation}
  681. , //ID_Infomation_detail
  682. };
  683. #endif
  684. MENU_NODE_ID APP_MENU_GetCurrentNode(void);
  685. #endif