⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 audioplayerdisplaylyric.c

📁 MTK 6226 平台调整UI修改的文件
💻 C
📖 第 1 页 / 共 3 页
字号:
                   //add by liuxn end 20070510 
                   #endif
                   // wangbei del end
                    text_bg_color );//zx modify 20060920s  //modify by liuxn 20070510   
		
		//audply_main_scrolling_title.text_font = &MMI_medium_font;  //delete by liuxn 20070510        
		audply_main_scrolling_title.text_font = MMI_medium_font;   //add by liuxn 20070510
		init_scrolling_done = TRUE;
	}

#if(UI_DOUBLE_BUFFER_SUPPORT)
	gui_lock_double_buffer();
#endif

	gui_push_clip();
	gui_set_clip( x1, y1, x2, y2 );
	
	// title
	gui_scrolling_text_stop( &audply_main_scrolling_title );
	gui_set_font( &MMI_medium_font );
	gui_measure_string( g_audply.title, &w, &character_height );
	if( w > audply_main_title.w )
	{
		// scrolling		
		gui_change_scrolling_text( &audply_main_scrolling_title, g_audply.title );
		gui_show_scrolling_text( &audply_main_scrolling_title );
	}
	else
	{
		// background
		mmi_audply_redraw_main_title_background( x1, y1, x2, y2 );

		gui_push_text_clip();
		gui_set_text_clip( x1, y1, x2, y2 );

             //zx modify begin 20060920
	       //gui_set_text_color( gui_color(0,9,255)); 
	       //gui_set_text_color( gui_color(2,211,255));       //delete by liuxn 20070510
              //gui_set_text_color( gui_color(255,255,255));   //delete by liuxn 20070510
              gui_set_text_color(gui_color(213,188,53)); // wangbei add 20070416
              // wangbei del start 20070416
              #if 0
                #ifdef __MT160_MP3PLAYER_FONT_COLOR__    //add by liuxn 20070510 
             	  gui_set_text_color(gui_color(213,188,53));   //add by liuxn 20070510
                #else
                gui_set_text_color( gui_color(2,211,255)); 
                #endif
                #endif
                // wangbei del end
             //zx modify end

	
		if( r2lMMIFlag )
			gui_move_text_cursor( x1 + (audply_main_title.w + w )/2, y1 );
		else
			gui_move_text_cursor( x1 + (audply_main_title.w - w )/2, y1 );
		gui_set_line_height( character_height );
		gui_print_text( g_audply.title );
		gui_pop_text_clip();
	}

	gui_pop_clip();
	
#if(UI_DOUBLE_BUFFER_SUPPORT)
	gui_unlock_double_buffer();
	gui_BLT_double_buffer( x1, y1, x2, y2 );
#endif

 }

 S32  lyric_mmi_audply_get_play_miliSeconds() 
 {
     // return (S32)((g_audply.const_seconds + g_audply.play_seconds) *4.615);  //delete by liuxn 20070510
     return (S32)(g_audply.old_play_time);  //add by liuxn 20070510
 }
 void  lyric_mmi_audply_LyricScrolling_resumed()
 {
      S16 i=0; 
      U32 ElapseTime; 

      ElapseTime=lyric_mmi_audply_get_play_miliSeconds();

      if(LyricFlag && g_audply.state == STATE_PLAY)
      {
              
              lyric_DisplayLyric();  
	
          /*  找到下一个时间记录*/
	    for(i=LyricCount+1;i<DisplayLineNum;i++)
	    {
	    	  if((Lyric_Info[i].TimeInfo>0)&&((Lyric_Info[i].TimeInfo*10)>ElapseTime))
                {
                      break;
                }
           }

           StartTimer(LYRIC_TIMER,(Lyric_Info[i].TimeInfo*10-ElapseTime),lyric_mmi_audply_lyric_timer);
      }
 }
 void    lyric_mmi_audply_redraw_main_title_lyric()
 {
  /*显示歌曲名*/
    if( g_audply.in_main_screen )
    {
         lyric_mmi_audply_redraw_main_title (); 
    }
    /*显示歌词*/
     if((g_audply.state==STATE_PLAY))
    {
         if(LyricFlag)
         {
              gui_hide_animations();      
            //   lyric_DisplayLyric();  
            lyric_Lyric_Scrolling_Display();
         }
        	
    }
 }
void  lyric_mmi_audply_lyric_timer(void)          
 {

	S32  elapse_time;
    if( g_audply.state == STATE_PLAY )
	{
       	elapse_time=lyric_mmi_audply_get_play_miliSeconds();
                StopTimer(LYRIC_SCROLLING_TIMER);

              if((LyricCount+Lyric_Info[LyricCount].LineNum)< DisplayLineNum)
		{
                   while((Lyric_Info[LyricCount].TimeInfo==0)||(Lyric_Info[LyricCount].TimeInfo>60000))  
                   {
                       LyricCount++;
                       if(LyricCount>=DisplayLineNum)
                           break;
                   }

                  TimeInter=Lyric_Info[LyricCount+Lyric_Info[LyricCount].LineNum].TimeInfo*10-elapse_time;
                  if((TimeInter>0)&&(TimeInter<=500))
                  {
                       ScrollingNum=1;
                       StartTimer(LYRIC_TIMER,TimeInter,lyric_mmi_audply_lyric_timer);
                  } 
                  else if(TimeInter>500)
                  {
                       ScrollingNum=Lyric_Info[LyricCount].LineNum*LYRIC_ScrollingTimes;
                       if(ScrollingNum>0)  
                       StartTimer(LYRIC_TIMER,TimeInter,lyric_mmi_audply_lyric_timer);
                  }
                  else
                  {
    
                while(TimeInter<0)
                {
                  
                    if(Lyric_Info[LyricCount].LineNum==0)
                        break;
           
                       LyricCount+=Lyric_Info[LyricCount].LineNum;
                       TimeInter=Lyric_Info[LyricCount+Lyric_Info[LyricCount].LineNum].TimeInfo*10-elapse_time;
                }   
            
                if((LyricCount<DisplayLineNum)&&(TimeInter>=0))
                       {
                           ScrollingNum=Lyric_Info[LyricCount].LineNum*LYRIC_ScrollingTimes;
                           if(ScrollingNum>0)  
                           StartTimer(LYRIC_TIMER,TimeInter,lyric_mmi_audply_lyric_timer);
                       }
                  }
                       
            if(ScrollingNum!=0) 
                  Scrolling_Freq=TimeInter/ScrollingNum;
                  Scrolling_Index=0;
              }

	      y_firt_row= audply_main_music_wave.y+6;
              y_sencond_row=y_firt_row+audply_main_title.h+6;
              y_third_row=y_sencond_row+audply_main_title.h+6;
              y_fourth_row=y_third_row+audply_main_title.h+6;
              lyric_chang_color=TRUE;
	       lyric_mmi_audply_redraw_main_title_lyric();
       }
 }
void  lyric_mmi_audply_play_next_pre(void)          
{
              gui_hide_animations();
           
      	      #if(UI_DOUBLE_BUFFER_SUPPORT)
	      gui_lock_double_buffer();
              #endif
                  
              gui_push_clip();
              gui_set_clip( audply_main_music_wave.x, audply_main_music_wave.y, 
              audply_main_music_wave.x +  audply_main_music_wave.w-1, audply_main_music_wave.y+ audply_main_music_wave.h - 1 );
              gui_push_text_clip();
	      gui_set_text_clip(  audply_main_music_wave.x, audply_main_music_wave.y, 
              audply_main_music_wave.x +  audply_main_music_wave.w-1, audply_main_music_wave.y+ audply_main_music_wave.h - 1);
                if ( g_audply.in_main_screen)  
                	//if (lyric_mmi_audply_is_show_back())   //dyj add 20061206   //dyj del 20061208
                 lyric_mmi_audply_redraw_main_lrc_background();  
              
              gui_pop_text_clip();
              gui_pop_clip();

             #if(UI_DOUBLE_BUFFER_SUPPORT)
	      gui_unlock_double_buffer();
	      gui_BLT_double_buffer( audply_main_music_wave.x, audply_main_music_wave.y, 
             audply_main_music_wave.x +  audply_main_music_wave.w-1, audply_main_music_wave.y+ audply_main_music_wave.h - 1  );
             #endif
            lyric_stop_display_lyric(TRUE);
	     
 	}
/*   //lrj del 20060829
void lyric_mmi_audply_redraw_main_music_wave( void )   
{
       S32 character_height, w;
	S32 x1 = audply_main_music_wave.x;
	S32 y1 = audply_main_music_wave.y;
	S32 x2 = audply_main_music_wave.x + audply_main_music_wave.w - 1;
	S32 y2 = audply_main_music_wave.y + audply_main_music_wave.h - 1;

#if(UI_DOUBLE_BUFFER_SUPPORT)
	gui_lock_double_buffer();
#endif
       gui_hide_animations();                       
	gui_push_clip();
	gui_set_clip( x1, y1, x2, y2 );	
	gdi_image_draw_animation(x1, y1, audply_main_animation.animation_img, NULL );
       //gdi_image_draw_animation_id(x1,y1,audply_main_music_wave.wave_img,0);  
	gui_pop_clip();
	
#if(UI_DOUBLE_BUFFER_SUPPORT)
	gui_unlock_double_buffer();
	gui_BLT_double_buffer( x1, y1, x2, y2 );
#endif
}
*/
BOOL  lyric_mmi_audply_is_show_back()
{
    return LyricFlag&&g_audply.in_main_screen&&mmi_audply_is_playing();
}
void  lyric_init(int x,int y,int w,int h)     /*歌词显示在音波动画里*/
{
           // #ifdef __MMI_AUDIO_PLAYER_ANIMATION__  //lrj modify 20060829
             	// animation
             	 audply_main_music_wave.x = x;
             	 audply_main_music_wave.y = y;
             	 //wangbei modify  start 20071010
          #ifdef __NEW_AUDIO_SKIN_UI_STYLE__
             	 audply_main_music_wave.w = w+89;  
          #else
              audply_main_music_wave.w = w;
          #endif
          //wangbei modify  end
             	 audply_main_music_wave.h = h ;
             	 audply_main_music_wave.animation_img=NULL;//audply_main_animation.animation_img; 
          //  #endif
}
void  lyric_start_display_lyric()
{
    if(LyricFlag)
    {
            Pixtel_EveryTime=(audply_main_title.h+6)/LYRIC_ScrollingTimes;
            if ( g_audply.in_main_screen)  
                   lyric_mmi_audply_redraw_main_lrc_background();  
            if(LyricCount==0)
            {
                if(Lyric_Info[LyricCount].TimeInfo!=0)
                {
                     StartTimer(LYRIC_TIMER,(Lyric_Info[LyricCount].TimeInfo)*10,lyric_mmi_audply_lyric_timer);
                }
                else
                {
                    StartTimer(LYRIC_TIMER,(Lyric_Info[LyricCount].TimeInfo)*10+20,lyric_mmi_audply_lyric_timer);
                }
            }
            else
            {
              
                lyric_mmi_audply_LyricScrolling_resumed();
            
            }
       
      }
    /*   //lrj del 20060829
      else
      {
           if(g_audply.in_main_screen)
	    {
		  lyric_mmi_audply_redraw_main_music_wave();  
	    }
      }	
      */
}
void  lyric_stop_display_lyric(BOOL  clear)
{
       StopTimer(LYRIC_TIMER);
	StopTimer(LYRIC_SCROLLING_TIMER);
	if(clear)
	{
	    LyricCount=0;
	   // LyricFlag=0;   //dyj del 20070109
	   //NicoLin add for lyric synchronize display use app based  memory 20070525    
		#ifdef __LYRIC_USE_APP_ASM__
		mmi_lyric_free_app_asm();
		//kal_prompt_trace(MOD_MED, "Lyric debug: lyric_stop_display_lyric():free memory");
		#endif 
		//NicoLin add end
	}	
}

//NicoLin add for lyric synchronize display use app based  memory 20070525
#ifdef __LYRIC_USE_APP_ASM__
/*****************************************************************************
 * FUNCTION
 *  mmi_lyric_alloc_app_asm
 * DESCRIPTION
 *  allocate memory from app asm's pool
 * PARAMETERS
 *  void
 * RETURNS
 *  BOOL        TRUE if memory is successfully allocated
 *****************************************************************************/
BOOL mmi_lyric_alloc_app_asm(void)
{
    Lyric * p_appmem_buf;
    LyricInfo * p_appmem_buf2;
    S8  *  p_appmem_buf3;
    
    #ifdef MMI_ON_HARDWARE_P  // wangbei add 20070625
    p_appmem_buf =(Lyric *)med_alloc_ext_mem((LYRIC_MaxRealNum)*sizeof(Lyric));
    p_appmem_buf2=(LyricInfo *)med_alloc_ext_mem((LYRIC_MaxDisplayLine+3)*sizeof(LyricInfo));
    p_appmem_buf3=(S8  *)med_alloc_ext_mem(LYRIC_MaxLyricNum*LYRIC_MaxLen);
   // kal_prompt_trace(MOD_MED, "Lyric debug: mmi_lyric_alloc_app_asm() p_appmem_buf=%d,p_appmem_buf2=%d",p_appmem_buf,p_appmem_buf2);
   #endif // wangbei add 20070625
    if (p_appmem_buf&&p_appmem_buf2)
    {
        MyLyric= p_appmem_buf;
        Lyric_Info=p_appmem_buf2;
        Lyric_List=(Type_Lyric_List)p_appmem_buf3;
        return TRUE;
    }
    
    return FALSE;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_lyric_free_app_asm
 * DESCRIPTION
 *  free app based ASM used by photoeditor
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_lyric_free_app_asm(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    //MMI_ASSERT(MyLyric);
   // MMI_ASSERT(Lyric_Info);    
     if (MyLyric)
    {
        #ifdef MMI_ON_HARDWARE_P  // wangbei add 20070625
        med_free_ext_mem((void **)&MyLyric);
        #endif // wangbei add 20070625
        // kal_prompt_trace(MOD_MED, "Lyric debug: med_free_ext_mem((void **)&MyLyric)");
            MyLyric = NULL;
    }    
     if (Lyric_Info)
    {
        #ifdef MMI_ON_HARDWARE_P  // wangbei add 20070625
        med_free_ext_mem((void **)&Lyric_Info);
        #endif // wangbei add 20070625
       // kal_prompt_trace(MOD_MED, "Lyric debug: med_free_ext_mem((void **)&Lyric_Info)");
         Lyric_Info = NULL;
    }

    if(Lyric_List)
    {
        #ifdef MMI_ON_HARDWARE_P  // wangbei add 20070625
        med_free_ext_mem((void **)&Lyric_List);
        #endif // wangbei add 20070625
       // kal_prompt_trace(MOD_MED, "Lyric debug: med_free_ext_mem((void **)&Lyric_List)");
         Lyric_List = NULL;
    }
         
     
}


/*****************************************************************************
 * FUNCTION
 *  mmi_lyric_del_scr_callback
 * DESCRIPTION
 *  delete screen id callback handler of lyric applications
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
U8 mmi_lyric_del_scr_callback(void* ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    mmi_lyric_free_app_asm();
   // kal_prompt_trace(MOD_MED, "Lyric debug:mmi_lyric_del_scr_callback()");
    return MMI_FALSE;
}
#endif /* __LYRIC_USE_APP_ASM__ */
//NicoLin add end


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -