book.c
上传用户:caisangzi8
上传日期:2013-10-25
资源大小:15756k
文件大小:15k
- /**************************************************************************
- * *
- * Copyright (c) 2002 by Sunplus Technology Co., Ltd. *
- * *
- * This software is copyrighted by and is the property of Sunplus *
- * Technology Co., Ltd. All rights are reserved by Sunplus Technology *
- * Co., Ltd. This software may only be used in accordance with the *
- * corresponding license agreement. Any unauthorized use, duplication, *
- * distribution, or disclosure of this software is expressly forbidden. *
- * *
- * This Copyright notice MUST not be removed or modified without prior *
- * written consent of Sunplus Technology Co., Ltd. *
- * *
- * Sunplus Technology Co., Ltd. reserves the right to modify this *
- * software without notice. *
- * *
- * Sunplus Technology Co., Ltd. *
- * 19, Innovation First Road, Science-Based Industrial Park, *
- * Hsin-Chu, Taiwan, R.O.C. *
- **************************************************************************/
- /*--------------------------------------------------------------------------
- | File Name : book.c
- |
- | Description : it's book mark function Interface,must define SUPPORT_BOOK,
- | it can be used;
- |
- |
- | Version : 0.1
- |
- |
- | Rev Date Author(s) Status & Comments
- |---------------------------------------------------------------------------------
- | 0.1 2001/5/15s Kenny Creating
- |--------------------------------------------------------------------------------*/
- /*****************************************************
- Creater: Kenny
- Date : 2001/5/15 02:39PM
- Description: Search menu using
- *****************************************************/
- #include "user_init.h"
- #ifdef SUPPORT_BOOK
- #include "global.h"
- #include "osd.h"
- #include "func.h"
- #include "cfont.h"
- #include "util.h"
- #include "user_if.h"
- #include "stdlib.h"
- //#define BOOK_DBG 1
- //#define BOOK_MODE 2
- //#define BOOK_Y_ITEM 2
- //#define BOOK_X_ITEM 3
- //#define NO_ANTI 0
- //#define ANTI 2
- //#define ST_REGION REGION2
- extern void DispUpdateMark(BYTE xStart, BYTE *pStr, BYTE bFocus);
- void mark_UpdateOSD();
- void mark_GetValidString(BYTE *strBook);
- BYTE bookIndex; //Jeff 20020518
- /**************************************************************************
- * *
- * Function Name: record_book *
- * *
- * Purposes: *
- * record information *
- * Descriptions: *
- * record some useful information ,for example *
- tiele and chapter for dvd *
- * Arguments: NONE *
- * Returns: NONE *
- * *
- * See also: NONE *
- * *
- **************************************************************************/
- void record_book()
- {
- BYTE i;
- i = bookIndex;
-
- if (i<BOOK_MAX_ITEM) {
- book_tm[i]=disp_time;
- if (cd_type_loaded==CDDVD) {
- book[i][0]=get_tt_info(DISP_TT);//dvd_title
- book[i][1]=get_tt_info(DISP_CH);//dvd_chapter;
- } else if ( psd_state!=(PSD_SEL_LIST|PSD_PLAY_SEG)) {
- book[i][0]=cd_trk_now;
- }
-
- RSM_save(0xff,i+1);
- }
- }
- //Jeff 20020411
- void book_cancel(void)
- {
- }
- /*
- void book_func_up(void)
- {
- //printf("book_func_upn");
- }
- void book_func_down(void)
- {
- //printf("book_func_downn");
- }*/
- /**************************************************************************
- * *
- * Function Name: mark_func_right *
- * *
- * Purposes: *
- * HL turn right *
- * Descriptions: *
- * HL turn right *
- * Arguments: NONE *
- * Returns: NONE *
- * *
- * See also: NONE *
- * *
- **************************************************************************/
- void mark_func_right()
- {
- if (bookIndex < (BOOK_MAX_ITEM-1) ) {
- bookIndex++;
- mark_UpdateOSD();
- }
- //printf("mark_func_right:bookIndex=%dn", bookIndex);
- }
- void mark_func_left()
- {
- if (bookIndex > 0) {
- bookIndex--;
- mark_UpdateOSD();
- }
- //printf("mark_func_left:bookIndex=%dn", bookIndex);
- }
- extern void invalid_key(void); // in ircmd.c
- //Jeff 200204112
- /**************************************************************************
- * *
- * Function Name: book_func_select *
- * *
- * Purposes: *
- * book function was select that use enter key *
- * Descriptions: *
- * according to the different states ,the *
- * book function was select that use enter key *
- * Arguments: VOID *
- * Returns: NONE *
- * *
- * See also: NONE *
- * *
- **************************************************************************/
- void book_func_select(void)
- {
- //printf("book_func_select:bookIndex=%d, play_state=%xn", bookIndex, play_state);
- #ifdef PULIANG_DVD //yaowh add 04-12-17
- if(book[bookIndex][0])
- {
- if(play_state==VCD_STATE_PAUSE)
- {ircmd_play();}
- else
- {
- book_func_play();
- book_func_clear();
- }
- return;
- }
- #endif
- //terry,2004/1/30 03:11PM
- if( (play_state == VCD_STATE_STOP)||is_menu()||((cd_type_loaded!=CDDVD)&&((cd_trk_now<cd_trk_lo_now)||(cd_trk_now>cd_trk_hi))) )
- {
- invalid_key();
- return;
- }
- record_book();
- mark_UpdateOSD();
- }
- #ifdef FUSS_DVD
- #if defined(FUSS_PANEL)||defined(FUSS2_PANEL)
- extern BYTE book_flag;
- #endif
- #endif
- //Jeff 200204112
- /**************************************************************************
- * *
- * Function Name: book_func_play *
- * *
- * Purposes: *
- * use play key to play the book mark *
- * Descriptions: *
- * use play key to play the book mark *
- * Arguments: NONE *
- * Returns: NONE *
- * *
- * See also: NONE *
- * *
- **************************************************************************/
- void book_func_play()
- {
- UINT32 c;
- //printf("book_func_playn");
- if(book[bookIndex][0]) {
-
- #ifdef CANCEL_PRG_WHEN_BOOKMARK //linrc 2004-6-9 13:37
- if (prog_cnt)
- {
- prog_func_clear();
- prog_func_off();
- prog_cnt = 0;
- ircmd_book(); //I call this function again in order to build the bookmark parameter again.
- }
- #endif
- if(rep_ab_mode != REPEAT_IDLE) // 2004-5-10 15:34 linrc add for when bookmark play that REPEAT=IDLE
- {
- rep_ab_mode = REPEAT_AB_IDLE;
- show_repeatAB(1);
- }
-
- NCMD_exec_RSM(bookIndex+1); //Jeff 20020411
- if(cd_type_loaded==CDDVD) {
- c=CMD_FUNC | CMD_FUNC_BOOK;
- } else {
- if ( IsPBCOn() ) {
- pbcoff_init();
- }/* else { //Jeff 20020418
- psd_state=0;
- }*///2002-4-26
- resumeTRK=book[bookIndex][0];
- c=CMD_FUNC | CMD_FUNC_RESUME;
- goto_active = 1;//nono 2003-10-27 13:48 avoid ntsc->pal pic size error.
- #ifdef FUSS_DVD
- #if defined(FUSS_PANEL)||defined(FUSS2_PANEL)
- book_flag=bookIndex+1; //2002-6-24 for fuss
- #endif
- #endif
- }
- ircmd_post_func(c);
- if (user_mute) { //restore MUTE OSD, Jeff 20020522
- PrintOsdMsg(STR_OS_MUTE,REGION1,0,0);
- }
- }
- }
- /**************************************************************************
- * *
- * Function Name: book_func_clear *
- * *
- * Purposes: *
- * clear the book mark information and refresh the osd display *
- * Descriptions: *
- * clear the book mark information and refresh the osd display *
- * Arguments: void *
- * Returns: NONE *
- * *
- * See also: NONE *
- * *
- **************************************************************************/
- void book_func_clear(void)
- {
- //printf("book_func_clearn");
- book[bookIndex][0]=0;
- mark_UpdateOSD();
- }
- /**************************************************************************
- * *
- * Function Name: mark_UpdateOSD *
- * *
- * Purposes: *
- * display book function bar on screen *
- * Descriptions: *
- * display book function bar on screen *
- * Arguments: NONE *
- * Returns: NONE *
- * *
- * See also: NONE *
- * *
- **************************************************************************/
- void mark_UpdateOSD()
- {
- BYTE strBook[20];
- BYTE strTemp[20];
- mark_GetValidString(strBook);
- if (bookIndex > 0) {
- strcpy(strTemp, strBook);
- strTemp[bookIndex]=0;
- DispUpdateMark(0, strTemp, 0);
- }
- strTemp[0] = strBook[bookIndex];
- strTemp[1] = 0;
- DispUpdateMark(bookIndex, strTemp, 1);
- if (bookIndex < (BOOK_MAX_ITEM-1) ) {
- strcpy(strTemp, strBook+bookIndex+1);
- DispUpdateMark(bookIndex+1, strTemp, 0);
- }
- }
- /**************************************************************************
- * *
- * Function Name: mark_GetValidString *
- * *
- * Purposes: *
- * draw the "_" on the book bar *
- * Descriptions: *
- * draw the "_" on the book bar *
- * Arguments: array address strBook *
- * Returns: NONE *
- * *
- * See also: NONE *
- * *
- **************************************************************************/
- void mark_GetValidString(BYTE *strBook)
- {
- int i;
- for (i=0; i<BOOK_MAX_ITEM; i++) {
- if (book[i][0]) {
- strBook[i] = i+'1';
- } else {
- strBook[i] = '-';
- }
- }
- strBook[i] = 0;
- }
- //#ifdef support_book
- #else
- //void mark_GetValidString(BYTE *strBook) {}
- void mark_UpdateOSD() {}
- void book_func_clear() {}
- void book_func_play() {}
- void mark_func_right() {}
- void mark_func_left() {}
- void book_func_select() {}
- #endif