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

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

?? hxaudvol.cpp

?? symbian 下的helix player源代碼
?? CPP
字號:
/* ***** BEGIN LICENSE BLOCK *****
 * Source last modified: $Id: hxaudvol.cpp,v 1.6.20.1 2004/07/09 02:08:08 hubbe Exp $
 * 
 * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
 * 
 * The contents of this file, and the files included with this file,
 * are subject to the current version of the RealNetworks Public
 * Source License (the "RPSL") available at
 * http://www.helixcommunity.org/content/rpsl unless you have licensed
 * the file under the current version of the RealNetworks Community
 * Source License (the "RCSL") available at
 * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
 * will apply. You may also obtain the license terms directly from
 * RealNetworks.  You may not use this file except in compliance with
 * the RPSL or, if you have a valid RCSL with RealNetworks applicable
 * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
 * the rights, obligations and limitations governing use of the
 * contents of the file.
 * 
 * Alternatively, the contents of this file may be used under the
 * terms of the GNU General Public License Version 2 or later (the
 * "GPL") in which case the provisions of the GPL are applicable
 * instead of those above. If you wish to allow use of your version of
 * this file only under the terms of the GPL, and not to allow others
 * to use your version of this file under the terms of either the RPSL
 * or RCSL, indicate your decision by deleting the provisions above
 * and replace them with the notice and other provisions required by
 * the GPL. If you do not delete the provisions above, a recipient may
 * use your version of this file under the terms of any one of the
 * RPSL, the RCSL or the GPL.
 * 
 * This file is part of the Helix DNA Technology. RealNetworks is the
 * developer of the Original Code and owns the copyrights in the
 * portions it created.
 * 
 * This file, and the files included with this file, is distributed
 * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
 * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
 * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
 * ENJOYMENT OR NON-INFRINGEMENT.
 * 
 * Technology Compatibility Kit Test Suite(s) Location:
 *    http://www.helixcommunity.org/content/tck
 * 
 * Contributor(s):
 * 
 * ***** END LICENSE BLOCK ***** */

#include "hlxclib/stdio.h"
#include "hlxclib/string.h"

#include "hxresult.h"
#include "hxtypes.h"

#include "hxcom.h"
#include "hxausvc.h"
#include "hxaudvol.h"
#include "hxslist.h"

#include "hxheap.h"
#ifdef _DEBUG
#undef HX_THIS_FILE		
static const char HX_THIS_FILE[] = __FILE__;
#endif

/************************************************************************
 *  Method:
 *		IHXVolume::CHXVolume()
 *	Purpose:
 *		Constructor. Clean up and set free.
 */
CHXVolume::CHXVolume()
:	m_uVolume(HX_INIT_VOLUME)
,	m_lRefCount(0)
,	m_bMute(FALSE)
,	m_pSinkList(0)
{
    Init();
}

/************************************************************************
 *  Method:
 *		IHXVolume::~CHXVolume()
 *	Purpose:
 *		Destructor. Clean up and set free.
 */
CHXVolume::~CHXVolume()
{
    /* Delete items in lists */
    if ( m_pSinkList )
    {
	IHXVolumeAdviseSink* s = 0;
        CHXSimpleList::Iterator lIter = m_pSinkList->Begin();
        for (; lIter != m_pSinkList->End(); ++lIter)
        {
            s = (IHXVolumeAdviseSink*) (*lIter);
            if ( s )
	    {
                s->Release();
		s = 0;
	    }
        }
 	delete m_pSinkList;
	m_pSinkList = 0;
    }
}

/////////////////////////////////////////////////////////////////////////
//  Method:
//      IUnknown::QueryInterface
//  Purpose:
//      Implement this to export the interfaces supported by your
//      object.
//
STDMETHODIMP CHXVolume::QueryInterface(REFIID riid, void** ppvObj)
{
    QInterfaceList qiList[] =
        {
            { GET_IIDHANDLE(IID_IHXVolume), (IHXVolume*)this },
            { GET_IIDHANDLE(IID_IUnknown), (IUnknown*)(IHXVolume*)this },
        };
    
    return ::QIFind(qiList, QILISTSIZE(qiList), riid, ppvObj);
}

/////////////////////////////////////////////////////////////////////////
//  Method:
//      IUnknown::AddRef
//  Purpose:
//      Everyone usually implements this the same... feel free to use
//      this implementation.
//
STDMETHODIMP_(ULONG32) CHXVolume::AddRef()
{
    return InterlockedIncrement(&m_lRefCount);
}

/////////////////////////////////////////////////////////////////////////
//  Method:
//      IUnknown::Release
//  Purpose:
//      Everyone usually implements this the same... feel free to use
//      this implementation.
//
STDMETHODIMP_(ULONG32) CHXVolume::Release()
{
    if (InterlockedDecrement(&m_lRefCount) > 0)
    {
        return m_lRefCount;
    }

    delete this;
    return 0;
}

/*
 *  IHXVolume methods
 */
/************************************************************************
 *  Method:
 *		IHXVolume::Init
 *	Purpose:
 *	
 */
STDMETHODIMP CHXVolume::Init()
{
    HX_RESULT theErr = HXR_OK;
    /* create sink lists. */
    m_pSinkList = new CHXSimpleList;
    if ( !m_pSinkList )
	theErr = HXR_OUTOFMEMORY;
    if ( !theErr )
    {
	if(!m_pSinkList->IsPtrListValid())
	    theErr = HXR_OUTOFMEMORY;
    }
    if ( !theErr )
	return HXR_OK;
    else
	return HXR_FAILED;
}

/************************************************************************
 *  Method:
 *		IHXVolume::SetVolume
 *	Purpose:
 *	
 */
STDMETHODIMP CHXVolume::SetVolume
(
    const	UINT16	uVolume
)
{
    m_uVolume   = uVolume;

    /* Call all advise sinks in list. */
    if ( m_pSinkList )
    {
	IHXVolumeAdviseSink* s = 0;
        CHXSimpleList::Iterator lIter = m_pSinkList->Begin();
        for (; lIter != m_pSinkList->End(); ++lIter)
        {
            s = (IHXVolumeAdviseSink*) (*lIter);
            if ( s )
                s->OnVolumeChange(uVolume);
        }
    }
    return HXR_OK;
}

/************************************************************************
 *  Method:
 *		IHXVolume::GetVolume
 *	Purpose:
 *	
 */
STDMETHODIMP_(UINT16) CHXVolume::GetVolume()
{
    return m_uVolume;
}

/************************************************************************
 *  Method:
 *		IHXVolume::SetMute
 *	Purpose:
 *	
 */
STDMETHODIMP CHXVolume::SetMute
(
	const		BOOL	bMute									
)
{
    m_bMute = bMute;

    /* Call all advise sinks in list. */
    if ( m_pSinkList )
    {
	IHXVolumeAdviseSink* s = 0;
        CHXSimpleList::Iterator lIter = m_pSinkList->Begin();
        for (; lIter != m_pSinkList->End(); ++lIter)
        {
            s = (IHXVolumeAdviseSink*) (*lIter);
            if ( s )
                s->OnMuteChange(bMute);
        }
    }
    return HXR_OK;
}

/************************************************************************
 *  Method:
 *		IHXVolume::GetMute
 *	Purpose:
 *	
 */
STDMETHODIMP_(BOOL) CHXVolume::GetMute()
{
    return m_bMute;
}

/************************************************************************
 *  Method:
 *		IHXVolume::AddAdviseSink
 *	Purpose:
 *	
 */
STDMETHODIMP CHXVolume::AddAdviseSink
(
    IHXVolumeAdviseSink*	pSink
)
{
    if (!pSink || !m_pSinkList)
    {
	return HXR_FAILED;	
    }

    /* Check if this one already exists */
    LISTPOSITION lPos = m_pSinkList->Find(pSink);
    if (lPos)
    {
	return HXR_FAILED;
    }

    pSink->AddRef();
    m_pSinkList->AddTail((void*) pSink);
    return HXR_OK;
}

/************************************************************************
 *  Method:
 *		IHXVolume::RemoveAdviseSink
 *	Purpose:
 *	
 */
STDMETHODIMP CHXVolume::RemoveAdviseSink
(
    IHXVolumeAdviseSink*	pSink
)
{
    if (!pSink || !m_pSinkList)
    {
	return HXR_FAILED;
    }

    LISTPOSITION lpos = m_pSinkList->Find(pSink);
    if (lpos)
    {
 	m_pSinkList->RemoveAt(lpos);
	pSink->Release();
	return HXR_OK;
    }
    
    return HXR_FAILED;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美中文一区二区| 欧美特级限制片免费在线观看| 国产精品一级黄| 色综合久久中文综合久久牛| 日韩一区二区三区在线| 亚洲欧洲av色图| 蜜桃精品视频在线观看| 色先锋资源久久综合| 久久综合久久99| 日韩高清一区二区| 99久久国产综合精品女不卡| 精品日韩欧美在线| 性久久久久久久| 91麻豆免费观看| 国产日韩av一区| 成人国产精品免费网站| 欧美日本一区二区三区| 亚洲视频一二三区| 国产99一区视频免费| 日韩美女视频在线| 偷窥少妇高潮呻吟av久久免费| 99re热这里只有精品免费视频| 欧美va亚洲va| 麻豆精品视频在线观看视频| 欧美视频中文字幕| 亚洲一线二线三线视频| 精品一区二区免费| 日韩欧美自拍偷拍| 日本大胆欧美人术艺术动态| 欧美又粗又大又爽| 一区二区三区不卡视频| 91香蕉视频在线| 国产精品精品国产色婷婷| 久久er99热精品一区二区| 欧美午夜寂寞影院| 一区二区三区国产精华| 91久久久免费一区二区| 亚洲卡通欧美制服中文| 欧美在线三级电影| 亚洲品质自拍视频网站| 91蜜桃在线观看| 亚洲激情男女视频| 欧美日韩国产大片| 日韩国产在线观看| 欧美大度的电影原声| 久久精品噜噜噜成人av农村| 精品奇米国产一区二区三区| 国产在线精品一区在线观看麻豆| 日韩女同互慰一区二区| 国产在线观看免费一区| 久久久精品黄色| 欧美一区二区美女| 老司机精品视频在线| 精品美女一区二区| 国产一区二区美女| 中文欧美字幕免费| 在线日韩一区二区| 蜜桃视频在线观看一区| 国产欧美日韩综合| 色婷婷狠狠综合| 免费成人av在线| 国产日本欧美一区二区| 成人app在线观看| 午夜精品久久久久久久| 精品日产卡一卡二卡麻豆| 成人精品国产一区二区4080| 亚洲免费电影在线| 欧美xxxx老人做受| 成人精品小蝌蚪| 午夜电影久久久| 日本一区二区三区在线观看| 日本久久一区二区| 国产在线视视频有精品| 一区二区三区日韩| 精品福利一区二区三区| 色综合久久天天综合网| 青娱乐精品在线视频| 国产精品国产三级国产普通话99| 欧美亚一区二区| 国产白丝网站精品污在线入口| 一区二区在线观看av| 久久综合色婷婷| 欧美日韩中文一区| av在线播放不卡| 蜜桃av一区二区三区电影| 成人欧美一区二区三区1314 | 国产精品免费观看视频| 欧美色综合天天久久综合精品| 欧美主播一区二区三区| 国产一区二区不卡在线| 亚欧色一区w666天堂| 国产精品国产自产拍高清av| 日韩欧美一二三四区| 欧美怡红院视频| jlzzjlzz亚洲日本少妇| 国产一区二区伦理片| 日本成人在线一区| 一卡二卡欧美日韩| 国产精品国产馆在线真实露脸 | 开心九九激情九九欧美日韩精美视频电影 | 91精品一区二区三区在线观看| 国产成人av福利| 免费看欧美女人艹b| 亚洲五码中文字幕| 亚洲精品免费看| 国产精品激情偷乱一区二区∴| 久久亚洲一级片| 日韩精品一区二区三区三区免费| 欧美三级日本三级少妇99| 91首页免费视频| 99久久精品国产一区二区三区| 国产精品亚洲一区二区三区在线 | 欧美三级一区二区| 在线观看亚洲一区| 色综合天天综合网天天看片| 国产成人日日夜夜| 国产精品一二二区| 国产suv精品一区二区883| 韩国av一区二区三区四区 | 欧美亚洲综合色| 色偷偷久久人人79超碰人人澡| 日韩欧美国产小视频| 欧美电影在哪看比较好| 欧美日韩激情一区| 91精品啪在线观看国产60岁| 欧美视频在线不卡| 69堂国产成人免费视频| 欧美一区二区三区四区高清| 欧美一区二视频| 欧美va亚洲va在线观看蝴蝶网| 精品99999| 国产精品视频一二| 亚洲免费观看高清完整版在线 | 欧美视频自拍偷拍| 欧美精品 日韩| 日韩欧美视频一区| 久久久久国产精品人| 欧美激情在线一区二区| 亚洲欧洲日韩在线| 亚洲成人av一区二区三区| 日本中文在线一区| 国产精品羞羞答答xxdd| 成人激情文学综合网| 在线观看亚洲成人| 日韩欧美一级特黄在线播放| 国产亚洲精品福利| 亚洲黄色小视频| 强制捆绑调教一区二区| 国产成人精品免费一区二区| 一道本成人在线| 日韩欧美一级二级三级久久久| 日本一区二区三区四区| 亚洲精品福利视频网站| 免费成人在线视频观看| 大陆成人av片| 777久久久精品| 中文av字幕一区| 日韩国产在线观看一区| jlzzjlzz亚洲女人18| 欧美一级一区二区| 中文字幕一区二| 乱一区二区av| 色香蕉成人二区免费| 欧美成人一级视频| 一区二区三区四区中文字幕| 麻豆一区二区三| 欧美亚洲免费在线一区| 国产女同互慰高潮91漫画| 视频精品一区二区| 99久久伊人精品| 精品国产91洋老外米糕| 亚洲一区二区三区四区在线观看 | www久久精品| 亚洲午夜一区二区| 成人福利电影精品一区二区在线观看| 在线观看一区二区精品视频| 欧美国产欧美综合| 久久91精品久久久久久秒播| 欧美伊人久久久久久久久影院 | 日韩一级黄色片| 亚洲一线二线三线久久久| 国产高清一区日本| 欧美一级二级三级蜜桃| 夜色激情一区二区| 99久免费精品视频在线观看 | 成人自拍视频在线| 欧美tk—视频vk| 婷婷夜色潮精品综合在线| 99久久99久久精品免费观看| 久久久国产一区二区三区四区小说 | 天天色天天爱天天射综合| 91在线丨porny丨国产| 国产女人18水真多18精品一级做| 美女一区二区在线观看| 欧美精选午夜久久久乱码6080| 亚洲欧美日韩在线播放| 99久久99久久久精品齐齐| 国产欧美精品在线观看| 国产一区二区三区日韩| 久久免费国产精品|