ComposeRingToneEngineProts.h
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:18k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*******************************************************************************
  36.  * Filename:
  37.  * ---------
  38.  * ComposeRingToneProts.h
  39.  *
  40.  * Project:
  41.  * --------
  42.  *   MAUI
  43.  *
  44.  * Description:
  45.  * ------------
  46.  *   This file is defines prototypes for Ring Tone Composer application.
  47.  *
  48.  * Author:
  49.  * -------
  50.  * -------
  51.  *
  52.  *==============================================================================
  53.  *             HISTORY
  54.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  55.  *------------------------------------------------------------------------------
  56.  * removed!
  57.  *
  58.  * removed!
  59.  * removed!
  60.  * removed!
  61.  *
  62.  * removed!
  63.  * removed!
  64.  * removed!
  65.  *
  66.  * removed!
  67.  * removed!
  68.  * removed!
  69.  *
  70.  * removed!
  71.  * removed!
  72.  * removed!
  73.  *
  74.  * removed!
  75.  * removed!
  76.  * removed!
  77.  *
  78.  * removed!
  79.  * removed!
  80.  * removed!
  81.  *
  82.  * removed!
  83.  * removed!
  84.  * removed!
  85.  *
  86.  * removed!
  87.  * removed!
  88.  * removed!
  89.  *
  90.  *------------------------------------------------------------------------------
  91.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  92.  *==============================================================================
  93.  *******************************************************************************/
  94. /**
  95.  * Copyright Notice
  96.  * ?2002 - 2003, Pixtel Communications, Inc., 1489 43rd Ave. W.,
  97.  * Vancouver, B.C. V6M 4K8 Canada. All Rights Reserved.
  98.  *  (It is illegal to remove this copyright notice from this software or any
  99.  *  portion of it)
  100.  */
  101. /**************************************************************
  102.    FILENAME : ComposeRingToneEngineProts.h
  103.    PURPOSE     : Prototypes for the Fun and Games application
  104.    REMARKS     : nil
  105.    AUTHOR      : Vikram
  106.    DATE     : 
  107. **************************************************************/
  108. #ifndef RING_COMPOSER_PROTS_H
  109. #define RING_COMPOSER_PROTS_H
  110. #include "MMI_features.h"
  111. #if defined(__MMI_RING_COMPOSER__) && defined(__MMI_IMELODY_SUPPORT__)
  112. #include "ComposeRingToneDefs.h"
  113. #include "FileMgr.h"
  114. /* start vijay 20050331 */
  115. #ifdef __MMI_TOUCH_RING_COMPOSER__
  116. #include "wgui.h"
  117. #include "gdi_datatype.h"
  118. #include "gdi_image_bmp.h"
  119. #endif /* __MMI_TOUCH_RING_COMPOSER__ */ 
  120. /* end vijay */
  121. #include "gui_setting.h"        /* 072505 Calvin */
  122. #define  MAX_NOTES            150
  123. /* PMT MANISH   20050614 Start */
  124. #if defined(__MMI_MAINLCD_176X220__)    /* || defined(__MMI_MAINLCD_240X320__)//041205 Calvin modified */
  125. #define  NUM_NOTES_IN_STAVE      7      /* maximal number of notes per stave */
  126. #elif defined(__MMI_MAINLCD_240X320__)
  127. #define  NUM_NOTES_IN_STAVE      10     /* maximal number of notes per stave */
  128. #else 
  129. #define  NUM_NOTES_IN_STAVE      5      /* maximal number of notes per stave */
  130. #endif 
  131. /* PMT MANISH   20050614 End */
  132. #define  INSTR_PIANO          2
  133. #define  INSTR_MUSICBOX       11
  134. #define  INSTR_XYLOPHONE         13
  135. #define  INSTR_HARMONICA         23
  136. #define  INSTR_GUITAR         26
  137. #define  INSTR_VIOLIN         45
  138. #define  INSTR_SPHONE         66
  139. #define  INSTR_FLUTE          74
  140. #define  INSTR_TRUMPET        57
  141. #define  INSTR_SDRUMS         115
  142. #define  SLOW_SPEED           60
  143. #define  NORMAL_SPEED         120
  144. #define  FAST_SPEED           180
  145. #define MELODY_FILE_EXTENSION ".imy"
  146. #define  TIMEOUT_COMPOSER_RINGTONE    2000
  147. #define  RNGC_FILE_LEN        FMGR_MAX_FILE_LEN*ENCODING_LENGTH
  148. #define  RNGC_INPUT_FILE_LEN  FMGR_MAX_INPUT_FILE_LEN
  149. /* start vijay 20050322 */
  150. #ifdef __MMI_TOUCH_RING_COMPOSER__
  151. // #define TOTAL_INSTR                                  (10)/*PMT       MANISH  20050614*/
  152. #define RNGC_MAX_ROW          (2)
  153. #define  RNGC_MAX_COLUMN            (7)
  154. #define RNGC_MAX_CUSTOM_KEYS     (3)
  155. #if defined(__MMI_MAINLCD_176X220__)    /* PMT MANISH   20050614 */
  156. #define NOTE_SELECTION_IMAGE_X      (0)
  157. #define NOTE_SELECTION_IMAGE_Y      (150)
  158. #define NOTE_SELECTION_MATRIX_WIDTH  (132)
  159. #define NOTE_SELECTION_MATRIX_HEIGHT (47)
  160. #define NOTE_SELECTION_WIDTH     (176)
  161. #define NOTE_SELECTION_HEIGHT    (49)
  162. #define RNGC_MATRIX_KEY_WIDTH    (18)
  163. #define RNGC_MATRIX_KEY_HEIGHT      (23)
  164. #define NORMAL_TOOLBAR_IMAGE_X      (0)
  165. #define NORMAL_TOOLBAR_IMAGE_Y      (184)
  166. #define NORMAL_TOOLBAR_HEIGHT    (16)
  167. #define NORMAL_TOOLBAR_WIDTH     (176)
  168.    //#define SYMBOL_SELECTION_IMAGE_X   (1)
  169.    //#define SYMBOL_SELECTION_IMAGE_Y   (151)
  170.    //#define SYMBOL_SELECTION_HEIGHT            (49)
  171. #define  RNGC_NOTE_SELECT_MATRIX_WIDTH    (132) /* (89) */
  172. #define RNGC_NOTE_SELECT_MATRIX_HEIGHT    (47)
  173.    //#define    RNGC_SYMBOL_SELECT_MATRIX_WIDTH         (89)
  174.    //#define RNGC_SYMBOL_SELECT_MATRIX_HEIGHT   (47)
  175.    //#define RNGC_SYMBOL_MATRIX_KEY_WIDTH       (29)
  176.    //#define RNGC_SYMBOL_MATRIX_KEY_HEIGHT      (23)
  177.    /* [~PMT  MANISH   20050614 */
  178. #elif defined(__MMI_MAINLCD_240X320__)
  179. #define NOTE_SELECTION_WIDTH     (UI_device_width)
  180. #define NOTE_SELECTION_HEIGHT    (66)
  181. #define NOTE_SELECTION_IMAGE_X      (0)
  182. #define NOTE_SELECTION_IMAGE_Y      (MAIN_LCD_DEVICE_HEIGHT-MMI_BUTTON_BAR_HEIGHT-NOTE_SELECTION_HEIGHT)        /* (232)//072505 Calvin modified */
  183. #define NOTE_SELECTION_MATRIX_WIDTH  (175)
  184. #define NOTE_SELECTION_MATRIX_HEIGHT (65)
  185. #define RNGC_MATRIX_KEY_WIDTH    (24)
  186. #define RNGC_MATRIX_KEY_HEIGHT      (31)
  187. #define NORMAL_TOOLBAR_HEIGHT    (23)
  188. #define NORMAL_TOOLBAR_WIDTH     (UI_device_width)
  189. #define NORMAL_TOOLBAR_IMAGE_X      (0)
  190. #define NORMAL_TOOLBAR_IMAGE_Y      (MAIN_LCD_DEVICE_HEIGHT-MMI_BUTTON_BAR_HEIGHT-NORMAL_TOOLBAR_HEIGHT)        /* (275)//072505 Calvin modified */
  191. #define  RNGC_NOTE_SELECT_MATRIX_WIDTH (175)
  192. #define RNGC_NOTE_SELECT_MATRIX_HEIGHT (65)
  193. #define RNGC_INSTR_SELECT_MARGIN    (2)
  194. #define RNGC_INSTR_SELECT_X_OFFSET     (6)
  195. #else 
  196. #define NOTE_SELECTION_IMAGE_X      (0)
  197. #define NOTE_SELECTION_IMAGE_Y      (150)
  198. #define NOTE_SELECTION_MATRIX_WIDTH  (132)
  199. #define NOTE_SELECTION_MATRIX_HEIGHT (47)
  200. #define NOTE_SELECTION_WIDTH     (176)
  201. #define NOTE_SELECTION_HEIGHT    (49)
  202. #define RNGC_MATRIX_KEY_WIDTH    (18)
  203. #define RNGC_MATRIX_KEY_HEIGHT      (23)
  204. #define NORMAL_TOOLBAR_IMAGE_X      (0)
  205. #define NORMAL_TOOLBAR_IMAGE_Y      (184)
  206. #define NORMAL_TOOLBAR_HEIGHT    (16)
  207. #define NORMAL_TOOLBAR_WIDTH     (176)
  208.    //#define SYMBOL_SELECTION_IMAGE_X   (1)
  209.    //#define SYMBOL_SELECTION_IMAGE_Y   (151)
  210.    //#define SYMBOL_SELECTION_HEIGHT            (49)
  211. #define  RNGC_NOTE_SELECT_MATRIX_WIDTH    (132) /* (89) */
  212. #define RNGC_NOTE_SELECT_MATRIX_HEIGHT    (47)
  213.    //#define    RNGC_SYMBOL_SELECT_MATRIX_WIDTH         (89)
  214.    //#define RNGC_SYMBOL_SELECT_MATRIX_HEIGHT   (47)
  215.    //#define RNGC_SYMBOL_MATRIX_KEY_WIDTH       (29)
  216.    //#define RNGC_SYMBOL_MATRIX_KEY_HEIGHT      (23)
  217. #endif 
  218.    /* ~] */
  219. #define RNGC_INSTRUMENT_WIDTH       (24)
  220. #define RNGC_INSTRUMENT_HEIGHT         (24)
  221. #define RNGC_INSTRUMENT_X           (UI_device_width-RNGC_INSTRUMENT_WIDTH-2)
  222. #define RNGC_INSTRUMENT_Y           (MMI_title_y)
  223. #else /* __MMI_TOUCH_RING_COMPOSER__ */ /* 110105 ring tone Calvin added for non-touch */
  224. #if defined(__MMI_MAINLCD_240X320__)
  225. #define RNGC_INSTR_SELECT_MARGIN    (2)
  226. #define RNGC_INSTR_SELECT_X_OFFSET     (6)
  227. #endif /* defined(__MMI_MAINLCD_240X320__) */ 
  228. #endif /* __MMI_TOUCH_RING_COMPOSER__ */ 
  229. /* end vijay */
  230. /* 
  231.  * Typedef 
  232.  */
  233. typedef struct
  234. {
  235.     S8 FileName[RNGC_FILE_LEN];     /* string of filename */
  236.     S8 PrevFileName[RNGC_FILE_LEN]; /* string of filename */
  237.     U8 CurrTone;                    /* index of current composed tone */
  238.     U8 CurrInstr;                   /* current instrument */
  239.     U8 CurrSpeed;                   /* current play speed */
  240.     U8 IsTonePlaying;               /* if tone is playing */
  241.     U8 CurrHiliteItem;              /* index of current selected option */
  242.     U8 CurrEditState;               /* eidt state 0 == Add, 1 == Edit, 2 == Rename */
  243.     U8 IsSelfStop;
  244. } rngc_context_struct;
  245. typedef struct
  246. {
  247.     PU8 ImageList[NUM_NOTES_IN_STAVE];
  248.     S16 TotalNotes;     /* total number of notes */
  249.     U16 CurrNoteIndex;  /* current position of cursor */
  250.     U16 CurrUIPos;      /* current UI position */
  251.     U16 NotesList[MAX_NOTES + 1];
  252.     U8 YPos[NUM_NOTES_IN_STAVE];
  253.     U8 IsRskLP;         /* if RSK is long-pressed */
  254.     U8 CursorWidth;
  255. } rngc_engine_context_struct;
  256. typedef struct
  257. {
  258.     U16 nNote;
  259.     U8 nImageId;
  260. } NoteInfo;
  261. typedef struct
  262. {
  263.     U16 nImageId;
  264.     U8 nXPos;
  265.     U8 nYPos;
  266. } DisplayInfo;
  267. /* PMT MANISH   20050616 Start */
  268. #if defined(__MMI_TOUCH_RING_COMPOSER__) || defined(__MMI_MAINLCD_240X320__)
  269. typedef enum
  270. {
  271.     RNGC_PREVIOUS_INSTR = 0,
  272.     RNGC_NEXT_INSTR,
  273.     RNGC_INSRT_NONE
  274. } RNGC_SELECTED_INSTR;
  275. #endif /* defined(__MMI_TOUCH_RING_COMPOSER__) || defined(__MMI_MAINLCD_240X320__) */ 
  276. /* PMT MANISH   20050616 End */
  277. /* start vijay 20050321 */
  278. #ifdef __MMI_TOUCH_RING_COMPOSER__
  279. typedef enum
  280. {
  281.     GUI_RNGC_NORMAL_TOOLBAR = 1,
  282.     GUI_RNGC_NOTE_SELECTION
  283. } touch_rngc_selection_area;
  284. typedef enum
  285. {
  286.     RNGC_PEN_NONE = 1,
  287.     RNGC_PEN_INSTRUMENT,
  288.     RNGC_PEN_STAVE,
  289.     RNGC_PEN_NORMAL_TOOLBAR,
  290.     RNGC_PEN_NOTE_SELECTION,
  291.     TOUCH_RNGC_PEN_LSK,
  292.     TOUCH_RNGC_PEN_RSK
  293. } touch_rngc_pen_state;
  294. typedef enum
  295. {
  296.     GUI_RNGC_VIEW = 1,
  297.     GUI_RNGC_EDIT,
  298.     GUI_RNGC_INSERT,
  299.     GUI_RNGC_INSERT_EDIT,
  300.     RNGC_PLAY,
  301.     RNGC_PAUSE
  302. } touch_rngc_mode;
  303. typedef enum
  304. {
  305.     GUI_RNGC_KEY_SHARP = SHARP,
  306.     GUI_RNGC_KEY_FLAT = FLAT,
  307.     GUI_RNGC_KEY_DOT,
  308.     GUI_RNGC_KEY_OK,
  309.     GUI_RNGC_KEY_EDIT,
  310.     GUI_RNGC_KEY_INSERT,
  311.     GUI_RNGC_KEY_PLAY,
  312.     GUI_RNGC_KEY_NEXT,
  313.     GUI_RNGC_KEY_PREV,
  314.     GUI_RNGC_OCTAVE_UP,
  315.     GUI_RNGC_OCTAVE_DOWN,
  316.     GUI_RNGC_KEY_NOTE1 = (NOTE_C | OCTAVE_4 | DURATION_1 | NORMAL),
  317.     GUI_RNGC_KEY_NOTE2 = (NOTE_C | OCTAVE_4 | DURATION_1BY2 | NORMAL),
  318.     GUI_RNGC_KEY_NOTE3 = (NOTE_C | OCTAVE_4 | DURATION_1BY4 | NORMAL),
  319.     GUI_RNGC_KEY_NOTE4 = (NOTE_C | OCTAVE_4 | DURATION_1BY8 | NORMAL),
  320.     GUI_RNGC_KEY_NOTE5 = (NOTE_C | OCTAVE_4 | DURATION_1BY16 | NORMAL),
  321.     GUI_RNGC_KEY_NOTE6 = (NOTE_REST | OCTAVE_4 | DURATION_1BY4),
  322.     GUI_RNGC_KEY_NOTE7 = (NOTE_REST | OCTAVE_4 | DURATION_1BY8),
  323.     GUI_RNGC_KEY_NOTE8 = (NOTE_REST | OCTAVE_4 | DURATION_1BY16)
  324. } touch_rngc_key_note;
  325. typedef struct
  326. {
  327.     S16 matrix_x, matrix_y;
  328.     S16 n_matrix_rows, n_matrix_columns;
  329.     S16 matrix_width, matrix_height;
  330.     S16 key_width, key_height;
  331.     MMI_ID_TYPE key_image[RNGC_MAX_ROW][RNGC_MAX_COLUMN];
  332.     U16 key_note[RNGC_MAX_ROW][RNGC_MAX_COLUMN];
  333. } rngc_matrix_key_layout_struct;
  334. typedef struct
  335. {
  336.     S16 x, y;
  337.     S16 key_width, key_height;
  338.     MMI_ID_TYPE key_image;
  339.     U16 key_note;
  340. } rngc_custom_key_layout_struct;
  341. typedef struct
  342. {
  343.     S16 n_matrix_keys, n_custom_keys;
  344.     S16 image_x, image_y;
  345.     rngc_matrix_key_layout_struct *matrix_layout;
  346.     rngc_custom_key_layout_struct *custom_keys;
  347.     S16 horizontal_gap, vertical_gap;
  348.     MMI_ID_TYPE imageid;
  349. } rngc_selection_area_layout_struct;
  350. typedef struct
  351. {
  352.     U16 original_key_note;
  353.     touch_rngc_mode mode;
  354.     S32 play_mode;
  355.     S32 selected_key_x, selected_key_y;
  356.     S32 key_width, key_height;
  357.     S32 selected_key_image;
  358.     gdi_image_cache_bmp_struct selected_key_bitmap;
  359.     touch_rngc_selection_area area_type;
  360.     U16 key_note_type;
  361.     U32 flag;
  362. } touch_rngc_struct;
  363. #endif /* __MMI_TOUCH_RING_COMPOSER__ */ 
  364. /* end vijay */
  365. /* void PopulateRingComposer(void); */
  366. extern rngc_context_struct g_rngc_cntx;
  367. extern rngc_engine_context_struct *g_rngc_eng_cntx;
  368. extern void ExitRngcComposerEngine(void);
  369. extern void HandleKey_0(void);
  370. extern void HandleKey_1(void);
  371. extern void ShowNote(U16 nNote);
  372. extern void HandleKey_2(void);
  373. extern void HandleKey_3(void);
  374. extern void HandleKey_4(void);
  375. extern void HandleKey_5(void);
  376. extern void HandleKey_6(void);
  377. extern void HandleKey_7(void);
  378. extern void HandleKey_8(void);
  379. extern void HandleKey_9(void);
  380. extern void HandleKey_STAR(void);
  381. extern void HandleKey_POUND(void);
  382. extern void HandleKey_UP(void);
  383. extern void HandleKey_DOWN(void);
  384. extern void HandleKey_LEFT(void);
  385. extern void HandleKey_RIGHT(void);
  386. /* void DisplayNote(U16 image_id,U8 x_pos,U8 y_pos1,S32 value); */
  387. extern U16 GetMelodyFromStruct(U8 *pList, U16 nListSize);
  388. extern U8 *GetStringForNode(U8 *pStr, U32 nNote);
  389. extern void GetIndexInList(U16 nNote, U16 *pImageId, U8 *pYVal);
  390. //void SetFocusOnNote(U16 nPos);
  391. //void SetInstrument(U8 Instrument);
  392. /* UI Functions */
  393. extern void redraw_ringcomposer(void);
  394. extern void SetRingComposer(
  395.                 U16 title_id,
  396.                 U16 left_softkey,
  397.                 U16 left_softkey_icon,
  398.                 U16 right_softkey,
  399.                 U16 right_softkey_icon,
  400.                 U8 instru_type,
  401.                 S32 value,
  402.                 U8 *history_buffer);
  403. extern void RefreshNotesList(U16 nTotalNotes, DisplayInfo *psDisplayInfo);
  404. extern U16 GetInstrumentImage(U8 instru_type);
  405. extern S32 GenerateMelodyFile(PS8 pFileName);
  406. extern void RedrawNotes(void);
  407. extern void InsertNote(U16 nNote);
  408. extern void FreeMemory(void);
  409. extern void DeleteCurNote(void);
  410. extern void EditMelody(U8 *pFileName);
  411. extern void RngcComposerRSKUpHandler(void);
  412. extern void RngcComposerRSKDownHandler(void);
  413. extern U8 GetComposerStructFromMelody(U8 *pMelody);
  414. extern U8 CompareMelody(U8 **pptr, void *ps);
  415. extern U8 Tolower(U8 ch);
  416. extern S8 StrnCmp(S8 *s1, S8 *s2, int maxlen);
  417. extern void TrimStr(U8 **pptr);
  418. extern void ClearToEnd(U8 **pptr);
  419. extern U8 GetInstrument(U8 **pptr);
  420. extern U16 GetBeat(U8 **pptr);
  421. extern void SkipSpace(U8 **pptr);
  422. extern S32 GetInteger(U8 **pptr);
  423. extern U8 SetNote(U8 **pptr);
  424. extern U8 SetOctaveFromStream(U8 **pptr);
  425. extern U8 SetLED(U8 **pptr);
  426. extern U8 SetVibration(U8 **pptr);
  427. extern U8 SetBackLight(U8 **pptr);
  428. extern U8 GetMelody(U8 **pptr);
  429. extern void HandleKey_END(void);
  430. extern void InitializeComposer(void);
  431. extern void HandleKey_CLEARLONG(void);
  432. extern void HandleKey_CLEARLONG(void);
  433. extern void PlayCurrentNode(void);
  434. extern void GenerateCompleteComposeFileName(PS8 pFileName, PS8 pCompletePath);
  435. extern S32 RngcCreateDir(void);
  436. /* [~PMT  MANISH   20050616 */
  437. #if defined(__MMI_TOUCH_RING_COMPOSER__) || defined(__MMI_MAINLCD_240X320__)
  438. extern void mmi_rngc_change_instrument(S32 selected_instrument);
  439. #endif 
  440. #if defined(__MMI_MAINLCD_240X320__)
  441. void initialize_rngc_instrument_select_menu_items(S32 x, S32 y, S32 width, S32 height, U8 **list_of_items,
  442.                                                   S32 *highlighted_item, void (*f) (S32 item_index));
  443. extern void rngc_select_previous_instrument(void);
  444. extern void rngc_select_next_instrument(void);
  445. extern void register_rngc_instrument_select_keys(void);
  446. #endif /* defined(__MMI_MAINLCD_240X320__) */ 
  447. /* ~] */
  448. /* start vijay 20050331 */
  449. #ifdef __MMI_TOUCH_RING_COMPOSER__
  450. extern void mmi_rngc_note_selection(touch_rngc_struct *touch_rngc_context);
  451. extern void show_touch_rngc_selection_area(void);
  452. extern MMI_BOOL mmi_rngc_pen_down_selection_area(touch_rngc_struct *touch_rngc_context, mmi_pen_point_struct pos);
  453. extern MMI_BOOL mmi_rngc_pen_down_on_stave(mmi_pen_point_struct pos, S32 *item_index);
  454. extern MMI_BOOL mmi_rngc_pen_down_instrument(mmi_pen_point_struct pos);
  455. extern void mmi_rngc_set_note_type(S32 note_type_to_set);
  456. extern void mmi_rngc_set_note_beat(void);
  457. extern void mmi_rngc_change_stave_notes(touch_rngc_struct *touch_rngc_context, S32 item_index);
  458. extern void mmi_rngc_normal_toolbar(touch_rngc_struct *touch_rngc_context);
  459. extern void mmi_rngc_note_selection(touch_rngc_struct *touch_rngc_context);
  460. extern void mmi_rngc_pen_down_hdlr(mmi_pen_point_struct pos);
  461. extern void mmi_rngc_pen_up_hdlr(mmi_pen_point_struct pos);
  462. extern void mmi_rngc_pen_move_hdlr(mmi_pen_point_struct pos);
  463. extern void mmi_rngc_pen_repeat_hdlr(mmi_pen_point_struct pos);
  464. #endif /* __MMI_TOUCH_RING_COMPOSER__ */ 
  465. /* end vijay */
  466. #endif /* defined(__MMI_RING_COMPOSER__) && defined(__MMI_IMELODY_SUPPORT__) */ // #if defined(__MMI_RING_COMPOSER__)
  467. #endif /* RING_COMPOSER_PROTS_H */