亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? song_drv.c

?? atmel at89c51snd1 做mp3的源代碼
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
return 0;
}


/*F**************************************************************************
* NAME: song_init
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*   header status:  SONG_NO_ERR:    header ok
*                   SONG_LAYER_ERR: not a layer 3 file
*                   SONG_BR_ERR:    bit rate not supported
*                   SONG_FS_ERR:    bad frequency sampling
*                   SONG_SYNC_ERR:  no header found
*----------------------------------------------------------------------------
* PURPOSE: 
*   Search frame header and initialize song playing according to this header
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*   Header search is stopped when errors number exceeds 
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
Byte song_init (void)
{
Byte    b, c;
Byte    head_status;                        /* return error byte */
Byte    err_count;                          /* error counter */
bit     err_set;                            /* error flag */
Byte    bit_rate;                           /* Bit Rate  */
Byte    song_fs;                            /* Frequency sample */
Byte    song_version;                       /* Song verison : MPEG1 or MPEG2 */
Uint16  song_one_frame_size;                /* Size of one frame */


  head_status = SONG_NO_ERR;
  err_count = SONG_MAX_ERR;
  while (!Feof())
  {
    if (err_count != 0)
    { /* continue searching synchro */
      if (Fgetc() == MP3_SYNC_H)
      { /* high order sync found */
        b = Fgetc();
        if ((b & MP3_MSK_SYNC) == MP3_SYNC_L)
        { /* low order sync found */
          if ((b & MP3_MSK_LAYER) != MP3_LAYER_III)
          {
            Fseek( (Int16) -1 );
            head_status |= SONG_LAYER_ERR;  /* bad layer */
            err_count--;
          }
          else
          {
            c = Fgetc();
            if (c & 0x02)
              song_one_frame_size = 1;
            else
              song_one_frame_size = 0;
            b = (b & MP3_MSK_VER) >> 1;       /* keep MPEG Version B3 -> B2 */

            if (b)
            {
              song_version = 0;   /* Version MPEG1 */
            }
            else
            {
              song_version = 1;   /* Version MPEG2 */
            }
            bit_rate = c >> 4;
            song_fs = (c & MP3_MSK_FS) >> 2;
            switch (song_fs)
            {
              case 0x00 :   /* 44100 Hz / 22050 Hz */
                song_one_frame_size += song_tab_frame_size_00[song_version][bit_rate];
                break;
              case 0x01 :   /* 48000 Hz / 24000 Hz */
                song_one_frame_size += song_tab_frame_size_01[song_version][bit_rate];
                break;
              case 0x10 :   /* 32000 Hz / 16000 Hz */
                song_one_frame_size += song_tab_frame_size_10[song_version][bit_rate];
                break;
            }
            song_frame_size = (song_tab_seek[song_version][bit_rate]) >> 3;
            b |= (c & MP3_MSK_FS) >> 2;       /* read FS B3:2 -> B1:0 */
            c &= MP3_MSK_BR;

            
			err_set = FALSE;

            switch (b)
            {
              case MP3_FS_44:
              case MP3_FS_48:
              case MP3_FS_32:
              case MP3_FS_22:
              case MP3_FS_24:
              case MP3_FS_16:
              {
                if (c == MP3_BR_FREE)
                {
                  head_status |= SONG_BR_ERR; /* bad bit-rate */
                  err_count--;
                  err_set = TRUE;
                }
                break;
              }
              default:
              {
                head_status |= SONG_FS_ERR;   /* bad sampling frequency */
                err_count--;
                err_set = TRUE;
                break;
              }
            }
            if (!err_set)
            {
              Fseek((Int16)(song_one_frame_size) - 3);
              if (Fgetc() == MP3_SYNC_H)                        /* first header byte */
              { /* high order sync found */
                b = Fgetc();                                    /* second header byte */  
                if ((b & MP3_MSK_SYNC) == MP3_SYNC_L)
                { /* low order sync found */
                  if ((b & MP3_MSK_LAYER) != MP3_LAYER_III)
                  {
                    head_status |= SONG_LAYER_ERR;  /* bad layer */
                    err_count--;
                    Fseek(-(Int16)(song_one_frame_size) - 1 );
                  }
                  else
                  {
                    c = Fgetc();                                /* third header byte */
                    if ( song_fs == ((c & MP3_MSK_FS) >> 2) )
                    {
                      b = (b & MP3_MSK_VER) >> 1;       /* keep MPEG Version B3 -> B2 */
                      b |= (c & MP3_MSK_FS) >> 2;       /* read FS B3:2 -> B1:0 */ 
                      c &= MP3_MSK_BR;
                      song_audio_init();                /* init audio interface */
                      clock_song_init(b);               /* program the song clocks */
                      Fseek(-(Int16)(song_one_frame_size) - 3);
                      return SONG_NO_ERR;
                    }
                    else    
                    { /* Frequency sample does not match */
                      Fseek(-(Int16)(song_one_frame_size) - 2);
                    }
                  }
                }
                else
                { /* no low order synchro found */
                  Fseek(-(Int16)(song_one_frame_size) - 1);
                }
              }
              else
              { /* No high order synchro found */
                Fseek(-(Int16)(song_one_frame_size));
              }
              
            }
			else
			{ /* bad bit-rate or bad sampling frequency */
	            Fseek( (Int16) -2 );
			}
          }
        }
		else
		{ /* No low order sync found */
            Fseek( (Int16) -1 );
		}

      }
    }
    else
    { /* too much error */
      return head_status;
    }
  }
  return (head_status | SONG_SYNC_ERR);
}


/*F**************************************************************************
* NAME: song_audio_init
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Audio interface initialization in song mode
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*   DAC_NB_BIT defined in config.h
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void song_audio_init (void)
{
  Aud_set_pcm_32(DAC_NB_BIT);
  Aud_set_song();
  Aud_enable();
  Aud_disable_int();                        /* disable audio interrupt */
}


/*F**************************************************************************
* NAME: song_start
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Start song playing
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void song_start (void)
{
  Dac_unmute();                             /* maestro please! */
  Aud_song_play();                          /* start sample request */
  mp3_init();                               /* enable mp3 decoder */
}


/*F**************************************************************************
* NAME: song_pause
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Stop song playing
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*   clocks are not disabled by this functions
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void song_pause (void)
{
  Aud_song_pause();                         /* disable audio */
  mp3_stop();                               /* disable mp3 macrocell */
}


/*F**************************************************************************
* NAME: song_stop
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Stop song playing
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void song_stop (void)
{
  Dac_mute();                               /* silence please! */
  aud_stop();                               /* disable audio */
  mp3_stop();                               /* disable mp3 macrocell */
  clock_disable();                          /* disable clocks */
}



?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美黄色影院| www.欧美色图| 亚洲自拍偷拍综合| 国产精品进线69影院| 免费黄网站欧美| 日韩成人精品在线| 日韩成人午夜精品| 五月激情六月综合| 日本午夜一本久久久综合| 天天操天天色综合| 日韩和欧美的一区| 精品一二线国产| 国产成人av一区| www..com久久爱| 91一区二区在线| 欧美性xxxxxxxx| 欧美高清性hdvideosex| 欧美日韩美少妇| 久久精品国产精品青草| 美女一区二区视频| 国产福利精品一区| 色综合夜色一区| 欧美色精品在线视频| 91精品国产一区二区人妖| 精品福利一区二区三区| 国产一区二区三区国产| 日韩经典中文字幕一区| 亚洲成人免费观看| 美女在线视频一区| 波多野结衣在线aⅴ中文字幕不卡| 不卡的看片网站| 欧美亚洲国产一区二区三区 | 亚洲已满18点击进入久久| 亚洲午夜av在线| 欧美三级日韩在线| 亚洲人成7777| 国产精品综合久久| 欧美一区二区三区精品| 日韩主播视频在线| 欧美日韩亚洲综合在线| 亚洲一区二区三区小说| 色婷婷激情综合| 自拍偷自拍亚洲精品播放| 欧美精品一区二区久久婷婷 | 欧美国产综合一区二区| 一个色在线综合| 国产精品一线二线三线精华| 一本大道久久a久久精二百 | 欧美一区二区三区小说| 国产午夜精品一区二区三区视频| 伊人婷婷欧美激情| 成人性视频免费网站| 91精选在线观看| 亚洲综合成人在线视频| 高清久久久久久| 日韩欧美一级片| 亚洲国产精品影院| 91偷拍与自偷拍精品| 久久久久久日产精品| 日本亚洲欧美天堂免费| 欧美系列在线观看| 亚洲久草在线视频| 99久久99久久精品免费观看| 精品日韩一区二区| 免费日韩伦理电影| 欧美综合一区二区| 亚洲女子a中天字幕| 99久久国产免费看| 国产精品久久久久aaaa樱花 | 欧美绝品在线观看成人午夜影视| 亚洲人成网站色在线观看| 日韩欧美一区二区不卡| 亚洲激情欧美激情| 在线免费观看成人短视频| 中文字幕中文在线不卡住| 国产黄人亚洲片| 欧美激情在线一区二区| 国产成人精品影视| 久久亚洲精华国产精华液| 国内成人自拍视频| 国产午夜三级一区二区三| 国产成人av电影在线| 国产亚洲精品7777| 成人sese在线| 中文字幕日韩一区| 在线观看日韩精品| 午夜视频在线观看一区二区三区| 在线观看免费亚洲| 日本中文字幕一区二区视频 | 久久亚洲精品国产精品紫薇| 成人av网站免费| 亚洲欧美综合另类在线卡通| 99久久婷婷国产| 亚洲一区二区三区四区五区中文| 欧美日韩一区二区三区四区五区| 亚洲777理论| 精品日韩99亚洲| 盗摄精品av一区二区三区| 国产精品大尺度| 欧美日韩成人综合在线一区二区| 欧美aaa在线| 国产丝袜欧美中文另类| av午夜精品一区二区三区| 亚洲福利一区二区三区| 精品奇米国产一区二区三区| 国产999精品久久久久久绿帽| 亚洲精品国产第一综合99久久| 欧美日韩国产三级| 国产精品中文字幕欧美| 一区二区三区在线观看视频 | 国产91精品一区二区麻豆网站 | 欧美日本在线一区| 国产很黄免费观看久久| 亚洲精品国产视频| 日韩免费观看高清完整版| av电影在线观看不卡| 亚洲成人av在线电影| 久久久国际精品| 欧美日产在线观看| 99riav久久精品riav| 九色综合国产一区二区三区| 亚洲三级小视频| 精品国产1区2区3区| 欧美一级片免费看| 成人午夜精品在线| 免费不卡在线观看| 亚洲美女免费在线| 久久九九全国免费| 欧美一级午夜免费电影| 99综合电影在线视频| 久久99精品网久久| 午夜精品在线视频一区| 国产精品久久久久久久久动漫 | 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产黄色精品网站| 美女视频免费一区| 亚洲午夜三级在线| 亚洲色图在线视频| 日本一区二区三区免费乱视频 | 玖玖九九国产精品| 日韩高清中文字幕一区| 亚洲精品老司机| 亚洲天堂av一区| 国产精品国产三级国产有无不卡| 久久精品夜色噜噜亚洲aⅴ| 日韩视频在线永久播放| 777a∨成人精品桃花网| 欧美性高清videossexo| 色天使久久综合网天天| 成人短视频下载| 91精品国产日韩91久久久久久| 一区二区三区中文字幕精品精品| 欧美高清在线一区二区| 国产日韩精品一区二区三区 | 日韩视频免费直播| 9191久久久久久久久久久| 在线观看亚洲专区| 91首页免费视频| 色欧美片视频在线观看| 色婷婷激情综合| 欧美三级日韩在线| 欧美精品久久99久久在免费线 | 日韩国产精品久久久久久亚洲| 一区二区三区在线免费视频| 亚洲精品视频在线观看免费 | 日韩欧美国产不卡| 精品99999| 国产日韩欧美精品在线| 中文字幕一区二区三中文字幕| 中文在线一区二区| 亚洲精品国产精品乱码不99| 一区二区三区日韩精品视频| 亚洲综合区在线| 青青草原综合久久大伊人精品优势| 日韩电影网1区2区| 国产99一区视频免费| 99精品偷自拍| 欧美日韩国产区一| 久久精品欧美日韩精品| 亚洲欧洲av色图| 免费成人深夜小野草| 国产a精品视频| 日本福利一区二区| 日韩欧美亚洲国产另类| 国产精品拍天天在线| 亚洲国产精品一区二区www在线 | 国产乱对白刺激视频不卡| 国产成人精品免费网站| 91成人网在线| 精品成人佐山爱一区二区| 日韩久久一区二区| 久久91精品国产91久久小草| caoporn国产精品| 91精品国产手机| 日韩一区欧美一区| 美女视频网站久久| 91久久精品一区二区三区| 久久综合一区二区| 亚洲高清免费观看 | 亚洲国产成人91porn|