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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ivocuse.c

?? brew voice sound brew voice sound
?? C
?? 第 1 頁 / 共 2 頁
字號:
   {
      DBGPRINTF("Error Creating IVocoder interface");
      return FALSE;
   }

   // Create ISound interface
   if (ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_SOUND, (void **)&pMe->pISound) != SUCCESS)
   {
      DBGPRINTF("Error Creating ISound interface");
      return FALSE;
   }

   return TRUE;
}

/*===========================================================================

FUNCTION VocUse_FreeAppData

DESCRIPTION
   This function ireleases all resources used by the application.

PROTOTYPE:
	static void VocUse_FreeAppData(CVocApp * pMe);

PARAMETERS:
   pi: [in]: Pointer to CVocApp struct

DEPENDENCIES
  None

RETURN VALUE
  None

SIDE EFFECTS
  None
===========================================================================*/
static void VocUse_FreeAppData(CVocApp * pMe) {
   // Release all menu items
   if(pMe->pIMenu) {
      IMENUCTL_Release (pMe->pIMenu);
      pMe->pIMenu = NULL;
   }
   if(pMe->pISoft) {
      IMENUCTL_Release (pMe->pISoft);
      pMe->pISoft = NULL;
   }
   if(pMe->pIBack) {
      IMENUCTL_Release(pMe->pIBack);
      pMe->pIBack = NULL;
   }

   // Release IVocoder
   if(pMe->pIVocoder) {
      IVOCODER_Release(pMe->pIVocoder);
      pMe->pIVocoder = NULL;
   }

   // Release Sound interface
   if(pMe->pISound) {
      ISOUND_Release(pMe->pISound);
      pMe->pISound = NULL;
   }

   // Release Static box
   if(pMe->pIStatic) {
      ISTATIC_Release(pMe->pIStatic);
      pMe->pIStatic = NULL;
   }

}

/*===========================================================================

FUNCTION DisplayOutput

DESCRIPTION
   This function displays a specified message to the screen.  The uint16 on input
   correlates to the bar file needed for this app.

PROTOTYPE:
	void DisplayOutput(CVocApp * pMe, uint16 event);

PARAMETERS:
   pMe: [in]: Pointer to cVocApp structure

DEPENDENCIES
  None

RETURN VALUE
  None

SIDE EFFECTS
  None
===========================================================================*/
void DisplayOutput(CVocApp * pMe, uint16 event) {

   // Do not update screen if on main menu
   if(IMENUCTL_IsActive(pMe->pIMenu)) {
      return;
   }

   // Clear the screen
   IDISPLAY_ClearScreen(pMe->a.m_pIDisplay);

   //Load the string to memory
   if(SUCCESS != ISHELL_LoadResString(pMe->a.m_pIShell, IVOCUSE_RES_FILE, event, pMe->pNameBuffer, sizeof(pMe->pNameBuffer))) {
      ISHELL_LoadResString(pMe->a.m_pIShell, IVOCUSE_RES_FILE, event, pMe->pNameBuffer, sizeof(pMe->pNameBuffer));
   } else {
      ISHELL_LoadResString(pMe->a.m_pIShell, IVOCUSE_RES_FILE, IDS_ERROR, pMe->pNameBuffer, sizeof(pMe->pNameBuffer));
   }

   // Draw text
   IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD, pMe->pNameBuffer, -1, 0, 0, NULL,                // No clipping
                           IDF_ALIGN_CENTER | IDF_ALIGN_MIDDLE);
   IDISPLAY_Update(pMe->a.m_pIDisplay);

   // Redraw Menu if active
   if(IMENUCTL_IsActive(pMe->pISoft)) {
      IMENUCTL_Redraw(pMe->pISoft);
   }
}


/*===========================================================================

FUNCTION HaveCB

DESCRIPTION
	Callback function invoked when decoder has more frames. 

PROTOTYPE:
	static void HaveCB(uint16 numFrames, void * usrPtr);

PARAMETERS:
   numFrames [in]: number of rames that ivocoder can use
   pMe: [in]: Pointer to CVocApp  struct

DEPENDENCIES
  None

RETURN VALUE
  None

SIDE EFFECTS
  None
===========================================================================*/
static void HaveDataCB(uint16 numFrames, void * usrPtr)
{
   CVocApp* pMe = (CVocApp*)usrPtr;
   DataRateType rate;
   uint16 length;
   int i;
   int status;

   // Data integrity checks
   if (!pMe || !pMe->pIVocoder)
   {
      return;
   }

   // Read in each frame and send to network
   for (i = 0; i < numFrames; i++) {
      status = IVOCODER_VocInRead(pMe->pIVocoder,
                                  &rate, &length, pMe->frameData);

      // If we succesfully read in data, then write to IVocoder
      if (status == SUCCESS) {
         // Send recived data to IVocoder
         IVOCODER_VocOutWrite(pMe->pIVocoder, rate, length, pMe->frameData);
      }
   }
}


/*===========================================================================

FUNCTION NeedCB

DESCRIPTION
	Callback function invoked when decoder requires more frames. This function
   will get invoked when the IVocoder is paused (deactivated)

PROTOTYPE:
	static void NeedCB(uint16 numFrames, void * usrPtr);

PARAMETERS:
   numFrames [in]: number of rames that ivocoder can use
   pMe: [in]: Pointer to CVocApp  struct

DEPENDENCIES
  None

RETURN VALUE
  None

SIDE EFFECTS
  None
===========================================================================*/
static void NeedDataCB(uint16 numFrames, void * usrPtr) {
   CVocApp* pMe = (CVocApp*)usrPtr;

   // Display pause message if ivocoder needs data
   if(pMe->bVocOn) {
      DisplayOutput(pMe, IDS_PAUSE);
   }
}


/*===========================================================================

FUNCTION ReadyCB

DESCRIPTION
	Callback function invoked when vocoder is ready for use. Called after
   IVOCODER_VocConfigure has finished.

PROTOTYPE:
	static void ReadyCB(void * usrPtr);

PARAMETERS:
   pMe: [in]: Pointer to CVocApp  struct

DEPENDENCIES
  None

RETURN VALUE
  None

SIDE EFFECTS
  None
===========================================================================*/
static void ReadyCB(void * usrPtr) {
   CVocApp* pMe = (CVocApp*)usrPtr;

   // Start Reading in
   IVOCODER_VocInStart(pMe->pIVocoder);

   // Allow for playing
   IVOCODER_VocOutStart(pMe->pIVocoder);

   // Set Vocoder variable to on
   pMe->bVocOn = TRUE;
}


/*===========================================================================

FUNCTION DisplayMessageToScreen

DESCRIPTION
	This Clears the Screen and displays the inputed text

PROTOTYPE:
	static void DisplayMessageToScreen(CVocApp* pMe, char* message)

PARAMETERS:
   pMe: [in]: Pointer to CMaxFileTest  struct
   message: [in]: pointer to a string

DEPENDENCIES
  None

RETURN VALUE
  None

SIDE EFFECTS
  None
===========================================================================*/
static void DisplayMessageToScreen(CVocApp* pMe, AECHAR* message) {
	AEERect	rec;

   // Set All menus to inactive
   IMENUCTL_SetActive(pMe->pIMenu, FALSE);

   // Set properties of text box
	SETAEERECT(&rec, 0, 0, pMe->deviceInfo.cxScreen, pMe->deviceInfo.cyScreen);
	ISTATIC_SetRect(pMe->pIStatic, &rec);
	ISTATIC_SetProperties(pMe->pIStatic, ST_MIDDLETEXT | ST_CENTERTEXT);
	ISTATIC_SetText(pMe->pIStatic, NULL, message, AEE_FONT_NORMAL, AEE_FONT_NORMAL);

   // Prepare text box and update screen Update screen
	ISTATIC_SetActive(pMe->pIStatic, TRUE);
	ISTATIC_Redraw(pMe->pIStatic);
	IDISPLAY_Update(pMe->a.m_pIDisplay);
}

/*===========================================================================

FUNCTION BuildMainMenu

DESCRIPTION
	This function adds all menu items to the main menu. 

PROTOTYPE:
	void BuildMainMenu(CVocApp *pMe);

PARAMETERS:
   pMe: [in]: Pointer to CVocApp  struct

DEPENDENCIES
  None

RETURN VALUE
  None

SIDE EFFECTS
  None
===========================================================================*/
void BuildMainMenu(CVocApp *pMe) {

    // Set Title
   IMENUCTL_SetTitle(pMe->pIMenu, IVOCUSE_RES_FILE, IDSMAIN_TITLE, NULL); 

   // Add Streaming to IVocuse
   IMENUCTL_AddItem(pMe->pIMenu, IVOCUSE_RES_FILE, IDSMAIN_STREAM, IDSMAIN_STREAM, NULL, NULL); 

   // Add An info page
   IMENUCTL_AddItem(pMe->pIMenu, IVOCUSE_RES_FILE, IDSMAIN_INFO, IDSMAIN_INFO, NULL, NULL); 

   // Add an exit option
   IMENUCTL_AddItem(pMe->pIMenu, IVOCUSE_RES_FILE, IDSMAIN_EXIT, IDSMAIN_EXIT, NULL, NULL);    
}



/*===========================================================================

FUNCTION BuildSoftMenu

DESCRIPTION
	This function adds all menu items to the soft menu.  This menu is displayed
   when the application is streaming audio.

PROTOTYPE:
	void BuildSoftMenu(CVocApp *pMe);

PARAMETERS:
   pMe: [in]: Pointer to CVocApp  struct

DEPENDENCIES
   None

RETURN VALUE
   None

SIDE EFFECTS
   None

===========================================================================*/
void BuildSoftMenu(CVocApp *pMe) {

   // Avoid memory leak
   if(pMe->pISoft) {
      IMENUCTL_Release (pMe->pISoft);
      pMe->pISoft = NULL;
   }

   // Create interface
   if (ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_SOFTKEYCTL, (void **)&pMe->pISoft) != SUCCESS)
   {
      return;
   }

   // Add Activation to IVocuse - This must change when deactivated
   IMENUCTL_AddItem(pMe->pISoft, IVOCUSE_RES_FILE, IDSSOFT_DEACTIVATE, IDSSOFT_DEACTIVATE, NULL, NULL); 

   // Add an exit option
   IMENUCTL_AddItem(pMe->pISoft, IVOCUSE_RES_FILE, IDSSOFT_EXIT, IDSSOFT_EXIT, NULL, NULL); 
}


/*===========================================================================

FUNCTION ReplaceMenuItem

DESCRIPTION
	This function will remove the second parameter from a menu and add
   the third parameter to the menu.  The parameter corresponds to the 
   resource file supplied with this application.  If either parameter
   is 0, then it's corresponding removal ar addition is ignored.

PROTOTYPE:
	ReplaceMenuItem(IMenuCtl *pIMenu, uint16 remove, uint16 add);

PARAMETERS:
   pIMenu: [in]: Pointer to working menu
   remove: [in]: remove this item from menu, if 0 remove nothing
   add: [in]: add this item to the menu, if 0 add nothing

DEPENDENCIES
   None

RETURN VALUE
   None

SIDE EFFECTS
   None

===========================================================================*/
static void ReplaceMenuItem(IMenuCtl *pIMenu, uint16 remove, uint16 add) {
   
   // Remove Item if one is given
   if(remove) {
      IMENUCTL_DeleteItem(pIMenu, remove); 
   }
   
   // Add Item if one is given
   if(add) {
      IMENUCTL_AddItem(pIMenu, IVOCUSE_RES_FILE, add, add, NULL, NULL); 
   }

   // Move item up to beginning
   IMENUCTL_MoveItem(pIMenu, add, -1);

   // Set Cursor focus to added elem
   IMENUCTL_SetFocus(pIMenu, add);

   // Redraw Menu
   IMENUCTL_Redraw(pIMenu);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
波多野洁衣一区| 日韩av不卡在线观看| 国产精品久久精品日日| 欧美日韩黄视频| 成人欧美一区二区三区1314| 亚洲国产精品自拍| 亚洲国产成人91porn| 粉嫩一区二区三区性色av| 国产人伦精品一区二区| 精品久久久影院| 久久久99久久精品欧美| 国产成人午夜99999| 欧美狂野另类xxxxoooo| 最新久久zyz资源站| 国产一区二区伦理片| 欧美日韩极品在线观看一区| 亚洲乱码日产精品bd| 国产69精品久久777的优势| 精品少妇一区二区三区 | 在线观看日韩电影| 日韩精品亚洲一区| 国产精品久久久久三级| 91视频免费看| 免费看日韩精品| **欧美大码日韩| 日韩小视频在线观看专区| 国产乱色国产精品免费视频| 亚洲欧洲成人av每日更新| 欧美天堂亚洲电影院在线播放| 免费不卡在线视频| 亚洲韩国精品一区| 1024国产精品| 精品卡一卡二卡三卡四在线| 欧美日韩国产不卡| 欧美日韩在线观看一区二区| 白白色亚洲国产精品| 国产精品白丝av| 成人网在线免费视频| 国产精品一区二区在线播放| 极品尤物av久久免费看| 激情综合色播五月| 婷婷激情综合网| 日本亚洲视频在线| 亚洲一区免费在线观看| 久久精品视频免费观看| 成人精品视频网站| 久草精品在线观看| 国产精品 日产精品 欧美精品| 欧美色爱综合网| 激情久久五月天| 欧美日韩精品一区视频| 五月天精品一区二区三区| 欧美日韩一卡二卡三卡| 午夜国产不卡在线观看视频| 日韩欧美第一区| 波多野结衣精品在线| 一区二区三区久久久| 亚洲国产视频a| 中文一区二区完整视频在线观看| 色8久久精品久久久久久蜜| 欧洲日韩一区二区三区| 91黄色在线观看| 日韩一卡二卡三卡国产欧美| 日韩欧美国产精品| 国产性做久久久久久| 国产精品久久久久7777按摩| 亚洲国产人成综合网站| 免费高清不卡av| 国产麻豆欧美日韩一区| 一本久久精品一区二区| 国产欧美日韩在线看| 五月综合激情网| www.成人网.com| 日韩欧美一级精品久久| 亚洲日本在线看| 国产激情偷乱视频一区二区三区| 欧美日韩一级片网站| 国产精品久久久久一区二区三区| 五月天亚洲婷婷| 91视频com| 亚洲靠逼com| 欧美日韩综合一区| 一区二区三区精品视频在线| 国产毛片精品一区| 国产精品66部| 欧美激情一区二区三区在线| 香蕉影视欧美成人| 成人app下载| av中文一区二区三区| 欧美一三区三区四区免费在线看| 亚洲色图欧美偷拍| 国产精品久久久久桃色tv| 自拍av一区二区三区| 91国偷自产一区二区使用方法| 国产精品一区二区在线播放| 有坂深雪av一区二区精品| 国产午夜亚洲精品不卡| 日韩一区二区三区高清免费看看| 一本一道综合狠狠老| 成人高清视频在线| 国产乱人伦偷精品视频免下载| 日韩电影网1区2区| 91精品国产免费| 国产在线一区二区综合免费视频| www激情久久| 欧美影视一区在线| 首页国产欧美久久| 欧美日本一道本| 久久精品国产一区二区| 久久综合999| 在线国产亚洲欧美| 另类人妖一区二区av| 国产精品毛片无遮挡高清| av一区二区久久| 蜜芽一区二区三区| 国产精品成人网| 久久免费偷拍视频| 色婷婷av一区二区三区gif| 奇米精品一区二区三区四区 | 五月婷婷激情综合网| 日韩一区二区三区三四区视频在线观看| 国内精品国产三级国产a久久| 亚洲人成7777| 久久精品欧美日韩| 欧美成人精品1314www| 91在线高清观看| av一区二区三区黑人| 亚洲成人av一区二区| 亚洲综合色丁香婷婷六月图片| 欧美国产一区二区| 精品视频免费在线| 岛国精品一区二区| 亚洲无人区一区| 亚洲综合在线第一页| 中文字幕中文字幕在线一区| 精品在线视频一区| 国产亚洲婷婷免费| 成人av电影在线| 国产成人日日夜夜| 91亚洲永久精品| 一本大道综合伊人精品热热| 欧美日韩一区二区三区在线看| 欧美电影在线免费观看| 2022国产精品视频| 亚洲视频一二三区| 偷拍与自拍一区| 国产精品一线二线三线精华| 色婷婷综合五月| 亚洲欧美日韩中文播放| 亚洲色图.com| 另类专区欧美蜜桃臀第一页| 国产一区二区三区在线看麻豆| 精品无人码麻豆乱码1区2区| 国产精品自拍毛片| 不卡电影一区二区三区| 99精品国产视频| 色婷婷久久久亚洲一区二区三区| 在线观看免费成人| www精品美女久久久tv| 亚洲午夜电影在线观看| 麻豆精品一区二区三区| 波多野结衣亚洲一区| 在线欧美日韩精品| 国产欧美一区二区精品秋霞影院| 中文字幕一区二区三区在线不卡| 亚洲成人综合视频| 盗摄精品av一区二区三区| 制服丝袜日韩国产| 亚洲激情中文1区| 国产91丝袜在线观看| 精品国产一区二区亚洲人成毛片| 久久99热这里只有精品| 国产在线播放一区三区四| 春色校园综合激情亚洲| 欧美福利一区二区| 一区二区三区在线视频免费| 日本精品视频一区二区| 欧美成人精品二区三区99精品| 午夜视频一区二区| 911国产精品| 精品一区二区三区影院在线午夜| 91精品国产91久久久久久一区二区| 久久99精品国产麻豆婷婷 | 成人综合婷婷国产精品久久| 日韩一级高清毛片| 精品国产一区二区亚洲人成毛片| 久久精品亚洲乱码伦伦中文| 欧美影视一区二区三区| 26uuu久久天堂性欧美| 性做久久久久久免费观看| 91麻豆6部合集magnet| 亚洲素人一区二区| caoporn国产精品| 欧美一区二区三区四区久久| 99re6这里只有精品视频在线观看| 亚洲综合色丁香婷婷六月图片| 成人avav影音| 久久这里只有精品6| 国产一区亚洲一区| 国产精品福利一区|