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

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

?? hspadvisesink.cpp

?? Amarok是一款在LINUX或其他類UNIX操作系統(tǒng)中運(yùn)行的音頻播放器軟件。 經(jīng)過兩年開發(fā)后
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
/* * * This software is released under the provisions of the GPL version 2. * see file "COPYING".  If that file is not available, the full statement  * of the license can be found at * * http://www.fsf.org/licensing/licenses/gpl.txt * * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. * Portions (c) Paul Cifarelli 2005 */#include <stdio.h>#include "hxcomm.h"#include "hxmon.h"#include "hxcore.h"#include "hxengin.h"#include "hxclsnk.h"#include "ihxpckts.h"#include "hxausvc.h"#include "helix-sp.h"#include "hspadvisesink.h"#include "utils.h"#if	defined(__cplusplus)extern	"C"	{#endif	/* defined(__cplusplus) */#if	defined(__cplusplus)}#endif	/* defined(__cplusplus) */HSPClientAdviceSink::HSPClientAdviceSink(IUnknown* pUnknown, LONG32 lClientIndex, HelixSimplePlayer *pSplay)    : m_splayer(pSplay)    , m_lRefCount (0)    , m_lClientIndex (lClientIndex)    , m_pUnknown (NULL)    , m_pRegistry (NULL)    , m_pScheduler (NULL)    , m_position(0)    , m_duration(0)    , m_lCurrentBandwidth(0)    , m_lAverageBandwidth(0)    , m_bOnStop(0){   //m_splayer->bEnableAdviceSink = true;   if (pUnknown)   {      m_pUnknown = pUnknown;      m_pUnknown->AddRef();            if (HXR_OK != m_pUnknown->QueryInterface(IID_IHXRegistry, (void**)&m_pRegistry))      {         m_pRegistry = NULL;      }            if (HXR_OK != m_pUnknown->QueryInterface(IID_IHXScheduler, (void**)&m_pScheduler))      {         m_pScheduler = NULL;      }            IHXPlayer* pPlayer;      if(HXR_OK == m_pUnknown->QueryInterface(IID_IHXPlayer,                                              (void**)&pPlayer))      {         pPlayer->AddAdviseSink(this);         pPlayer->Release();      }   }}HSPClientAdviceSink::~HSPClientAdviceSink(void){    if (m_pScheduler)    {        m_pScheduler->Release();        m_pScheduler = NULL;    }    if (m_pRegistry)    {	m_pRegistry->Release();	m_pRegistry = NULL;    }    if (m_pUnknown)    {	m_pUnknown->Release();	m_pUnknown = NULL;    }}// *** IUnknown methods ***///////////////////////////////////////////////////////////////////////////  Method://	IUnknown::QueryInterface//  Purpose://	Implement this to export the interfaces supported by your //	object.//STDMETHODIMP HSPClientAdviceSink::QueryInterface(REFIID riid, void** ppvObj){    if (IsEqualIID(riid, IID_IUnknown))    {	AddRef();	*ppvObj = (IUnknown*)(IHXClientAdviseSink*)this;	return HXR_OK;    }    else if (IsEqualIID(riid, IID_IHXClientAdviseSink))    {	AddRef();	*ppvObj = (IHXClientAdviseSink*)this;	return HXR_OK;    }    *ppvObj = NULL;    return HXR_NOINTERFACE;}///////////////////////////////////////////////////////////////////////////  Method://	IUnknown::AddRef//  Purpose://	Everyone usually implements this the same... feel free to use//	this implementation.//STDMETHODIMP_(ULONG32) HSPClientAdviceSink::AddRef(){    return InterlockedIncrement(&m_lRefCount);}///////////////////////////////////////////////////////////////////////////  Method://	IUnknown::Release//  Purpose://	Everyone usually implements this the same... feel free to use//	this implementation.//STDMETHODIMP_(ULONG32) HSPClientAdviceSink::Release(){    if (InterlockedDecrement(&m_lRefCount) > 0)    {        return m_lRefCount;    }    delete this;    return 0;}/* *	IHXClientAdviseSink methods *//************************************************************************ *	Method: *	    IHXClientAdviseSink::OnPosLength *	Purpose: *	    Called to advise the client that the position or length of the *	    current playback context has changed. */STDMETHODIMPHSPClientAdviceSink::OnPosLength(UINT32	  ulPosition,				   UINT32	  ulLength){   if (m_splayer->bEnableAdviceSink)   {      m_splayer->print2stdout("OnPosLength(%ld, %ld)\n", ulPosition, ulLength);   }   m_position = ulPosition;   m_duration = ulLength;   return HXR_OK;}/************************************************************************ *	Method: *	    IHXClientAdviseSink::OnPresentationOpened *	Purpose: *	    Called to advise the client a presentation has been opened. */STDMETHODIMP HSPClientAdviceSink::OnPresentationOpened(){/*    if (m_splayer && m_splayer->xf().crossfading && m_lClientIndex == m_splayer->xf().toIndex)    {       m_splayer->print2stderr("Crossfading...\n");       m_splayer->xf().toStream = 0;       m_splayer->xf().toStream = m_splayer->getAudioPlayer(m_lClientIndex)->GetAudioStream(0);       if (m_splayer->xf().toStream)       {          m_splayer->print2stderr("Got Stream 2\n");          m_splayer->startCrossFade();       }       else          m_splayer->stop(m_lClientIndex);    }*/   //m_splayer->bEnableAdviceSink = true;   if (m_splayer->bEnableAdviceSink)   {      m_splayer->print2stdout("OnPresentationOpened()\n");   }   return HXR_OK;}/************************************************************************ *	Method: *	    IHXClientAdviseSink::OnPresentationClosed *	Purpose: *	    Called to advise the client a presentation has been closed. */STDMETHODIMP HSPClientAdviceSink::OnPresentationClosed(){    if (m_splayer->bEnableAdviceSink)    {        m_splayer->print2stdout("OnPresentationClosed()\n");    }    return HXR_OK;}void HSPClientAdviceSink::GetStatistics (char* pszRegistryKey){    char    szRegistryValue[MAX_DISPLAY_NAME] = {0}; /* Flawfinder: ignore */    INT32   lValue = 0;    INT32   i = 0;    INT32   lStatistics = 8;    UINT32 *plValue;        // collect statistic    for (i = 0; i < lStatistics; i++)    {	plValue = NULL;	switch (i)	{	case 0:	    SafeSprintf(szRegistryValue, MAX_DISPLAY_NAME, "%s.Normal", pszRegistryKey);	    break;	case 1:	    SafeSprintf(szRegistryValue, MAX_DISPLAY_NAME, "%s.Recovered", pszRegistryKey);	    break;	case 2:	    SafeSprintf(szRegistryValue, MAX_DISPLAY_NAME, "%s.Received", pszRegistryKey);	    break;	case 3:	    SafeSprintf(szRegistryValue, MAX_DISPLAY_NAME, "%s.Lost", pszRegistryKey);	    break;	case 4:	    SafeSprintf(szRegistryValue, MAX_DISPLAY_NAME, "%s.Late", pszRegistryKey);	    break;	case 5:	    SafeSprintf(szRegistryValue, MAX_DISPLAY_NAME, "%s.ClipBandwidth", pszRegistryKey);	    break;	case 6:	    SafeSprintf(szRegistryValue, MAX_DISPLAY_NAME, "%s.AverageBandwidth", pszRegistryKey);	    plValue = &m_lAverageBandwidth;	    break;	case 7:	    SafeSprintf(szRegistryValue, MAX_DISPLAY_NAME, "%s.CurrentBandwidth", pszRegistryKey);	    plValue = &m_lCurrentBandwidth;	    break;	default:	    break;	}	m_pRegistry->GetIntByName(szRegistryValue, lValue);	if (plValue)	{	    if (m_bOnStop || lValue == 0)	    {		lValue = *plValue;	    }	    else	    {		*plValue = lValue;	    }	}	if (m_splayer->bEnableAdviceSink || (m_splayer->bEnableVerboseMode && m_bOnStop))	{	    m_splayer->print2stdout("%s = %ld\n", szRegistryValue, lValue);	}    }}void HSPClientAdviceSink::GetAllStatistics(void){    UINT32  unPlayerIndex = 0;    UINT32  unSourceIndex = 0;    UINT32  unStreamIndex = 0;    const char*   pszRegistryPrefix = "Statistics";    char    szRegistryName[MAX_DISPLAY_NAME] = {0}; /* Flawfinder: ignore */    // display the content of whole statistic registry    if (m_pRegistry)    {	// ok, let's start from the top (player)	SafeSprintf(szRegistryName, MAX_DISPLAY_NAME, "%s.Player%ld", pszRegistryPrefix, m_lClientIndex);	if (PT_COMPOSITE == m_pRegistry->GetTypeByName(szRegistryName))	{	    // display player statistic	    GetStatistics(szRegistryName);	    SafeSprintf(szRegistryName, MAX_DISPLAY_NAME, "%s.Source%ld", szRegistryName, unSourceIndex);	    while (PT_COMPOSITE == m_pRegistry->GetTypeByName(szRegistryName))	    {		// display source statistic		GetStatistics(szRegistryName);		SafeSprintf(szRegistryName, MAX_DISPLAY_NAME, "%s.Stream%ld", szRegistryName, unStreamIndex);		while (PT_COMPOSITE == m_pRegistry->GetTypeByName(szRegistryName))		{		    // display stream statistic		    GetStatistics(szRegistryName);		    unStreamIndex++;		    SafeSprintf(szRegistryName, MAX_DISPLAY_NAME, "%s.Player%ld.Source%ld.Stream%ld", 			pszRegistryPrefix, unPlayerIndex, unSourceIndex, unStreamIndex);		}		unSourceIndex++;		SafeSprintf(szRegistryName, MAX_DISPLAY_NAME, "%s.Player%ld.Source%ld",		    pszRegistryPrefix, unPlayerIndex, unSourceIndex);	    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人18视频在线播放| 在线观看精品一区| 一区二区三区四区在线播放| 欧美一区二区三区播放老司机| 国产乱对白刺激视频不卡| 亚洲综合一区二区精品导航| 久久久亚洲精品一区二区三区| 欧美午夜精品电影| eeuss鲁片一区二区三区| 九色综合狠狠综合久久| 亚洲国产日韩在线一区模特| 日本一区二区成人| 亚洲精品一区二区三区蜜桃下载 | 精品国产青草久久久久福利| 色综合天天综合在线视频| 国产资源在线一区| 天天操天天色综合| 亚洲一区二区三区四区五区黄| 国产偷v国产偷v亚洲高清| 日韩一级二级三级精品视频| 在线欧美日韩精品| 一本久久a久久免费精品不卡| 国产一区二区电影| 精品在线观看免费| 美女看a上一区| 日韩国产欧美三级| 日韩成人一级大片| 日韩中文欧美在线| 日韩国产成人精品| 日本午夜精品一区二区三区电影| 一二三区精品福利视频| 亚洲精品免费在线观看| 亚洲日本韩国一区| 亚洲欧美一区二区三区久本道91 | 日韩欧美一区在线| 欧美久久久久免费| 欧美日韩视频第一区| 欧美一a一片一级一片| 91精品福利在线| 在线视频欧美精品| 欧美亚洲综合一区| 3d成人h动漫网站入口| 91精品国产91久久久久久最新毛片| 91麻豆精品国产91久久久久久 | 欧美日韩精品免费观看视频| 日本二三区不卡| 欧美伊人久久久久久午夜久久久久| 99国产精品99久久久久久| av亚洲精华国产精华精| 色域天天综合网| 欧美色图在线观看| 日韩一级黄色片| 久久久久久久久久久黄色 | 亚洲一区二区在线观看视频| 一区二区三区波多野结衣在线观看 | 国产视频不卡一区| 国产精品毛片大码女人| 亚洲人成网站精品片在线观看| 亚洲日本一区二区三区| 亚洲一级电影视频| 久色婷婷小香蕉久久| 国产一区二区三区美女| 成人深夜在线观看| 91成人网在线| 日韩欧美专区在线| 国产精品初高中害羞小美女文| 亚洲欧美激情小说另类| 香蕉影视欧美成人| 国产一区二区调教| 色婷婷综合激情| 欧美一区二区国产| 中文字幕精品一区二区三区精品| 亚洲美女一区二区三区| 裸体健美xxxx欧美裸体表演| 国产成人精品亚洲日本在线桃色| 色综合欧美在线| 日韩免费性生活视频播放| 国产精品久久三区| 日韩电影在线免费观看| 国产a级毛片一区| 欧美日韩国产影片| 国产午夜亚洲精品午夜鲁丝片| 亚洲伦在线观看| 裸体健美xxxx欧美裸体表演| 波多野结衣中文字幕一区| 欧美二区三区的天堂| 欧美激情在线看| 免费成人av资源网| 色综合色狠狠天天综合色| 日韩精品在线一区| 亚洲最快最全在线视频| 国产精品一区二区在线观看不卡 | 丰满少妇久久久久久久| 欧美日韩激情一区| 国产精品国产三级国产普通话99 | 欧美激情一区不卡| 日本vs亚洲vs韩国一区三区| 99精品国产99久久久久久白柏 | 国产农村妇女精品| 视频一区免费在线观看| 9i看片成人免费高清| 日韩美一区二区三区| 一区二区三区四区av| 国产精品一区免费视频| 日韩一区二区视频| 亚洲国产一区二区视频| 成人av在线一区二区| 精品福利二区三区| 亚洲成人一区在线| 色综合久久99| 国产精品毛片久久久久久| 国产尤物一区二区在线| 91精品福利在线一区二区三区| 亚洲精品综合在线| 99精品久久久久久| 国产农村妇女精品| 国产91在线观看丝袜| 精品日韩欧美在线| 蜜桃久久久久久| 这里只有精品视频在线观看| 亚洲综合自拍偷拍| 色婷婷香蕉在线一区二区| 日本一二三不卡| 国产99久久久国产精品免费看| 精品国产91洋老外米糕| 日本三级韩国三级欧美三级| 欧美午夜精品久久久| 亚洲午夜影视影院在线观看| 91丨九色porny丨蝌蚪| 最新日韩在线视频| 91小视频免费观看| 亚洲人成在线观看一区二区| 不卡的电影网站| 日韩毛片精品高清免费| 91亚洲精品久久久蜜桃| 亚洲人成在线观看一区二区| 91年精品国产| 一区二区高清视频在线观看| 91国偷自产一区二区开放时间| 亚洲精品第一国产综合野| 色狠狠色狠狠综合| 亚洲成国产人片在线观看| 欧美欧美午夜aⅴ在线观看| 视频在线在亚洲| 欧美大片拔萝卜| 国产美女主播视频一区| 中文字幕二三区不卡| 不卡一区二区三区四区| 亚洲精品伦理在线| 欧美日韩专区在线| 免费观看久久久4p| 久久综合久久综合久久| 国产成人精品免费在线| 综合亚洲深深色噜噜狠狠网站| 91视频在线观看| 亚洲福利国产精品| 欧美xxxx老人做受| 不卡视频免费播放| 亚洲免费在线视频| 欧美一区二区三区在线观看 | 日本精品视频一区二区| 一区二区三区 在线观看视频| 欧美理论在线播放| 国产毛片精品视频| 亚洲品质自拍视频网站| 91精品国产高清一区二区三区蜜臀| 久久99国内精品| 国产精品久久久一本精品| 欧美自拍丝袜亚洲| 裸体健美xxxx欧美裸体表演| 日本一区二区成人| 亚洲欧美在线视频观看| 欧美视频一区二区三区| 精品制服美女丁香| ...av二区三区久久精品| 9191精品国产综合久久久久久| 激情小说欧美图片| 一区二区在线免费| 精品国产乱码久久久久久久| 成人激情小说乱人伦| 视频一区视频二区中文| 国产精品午夜久久| 7777精品伊人久久久大香线蕉 | 国产成人99久久亚洲综合精品| 亚洲人xxxx| 欧美精品一区二区久久婷婷| 99re热这里只有精品免费视频| 日韩精品一级中文字幕精品视频免费观看 | 亚洲一级电影视频| 国产日韩影视精品| 91精品在线免费观看| 成人性视频网站| 久久国产精品无码网站| 亚洲人成在线播放网站岛国 | 国产日本欧美一区二区| 欧美日韩国产三级| 99久久婷婷国产综合精品| 老司机一区二区| 亚洲国产欧美在线| 亚洲欧洲性图库|