You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
amarok/amarok/src/engine/helix/helix-sp/helix-include/common/include/hxprefs.h

349 lines
8.7 KiB

/*
*
* 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-2004 RealNetworks, Inc. All Rights Reserved.
*
*/
/****************************************************************************
*
*
* Persistent Preferences Interfaces
*
* Here are the preference entries set by the client core and renderers:
* KEY DEFAULT VALUES
* ================= ====================
* AttemptMulticast 1
* AttemptTCP 1
* AttemptUDP 1
* AudioQuality 0
* AutoTransport 1
* Bandwidth 28800
* BitsPerSample 16
* BroadcastPluginInfo {dllpath;description;copyright;moreinfo;loadmultiple;type}{ ... }
* ClientLicenseKey 7FF7FF00
* EndScan 10000
* FactoryPluginInfo
* FileFormatPluginInfo {dllpath;description;copyright;moreinfo;loadmultiple;mimetype1|mimetype2;extension1|extension2}{ ... }
* FileSystemPluginInfo {dllpath;description;copyright;moreinfo;loadmultiple;protocol;shortname}{ ... }
* GeneralPluginInfo {dllpath;description;copyright;moreinfo;loadmultiple}{ ... }
* PNAProxyHost
* PNAProxyPort 1090
* RTSPProxyHost
* RTSPProxyPort 554
* HTTPProxyHost
* HTTPProxyPort 1092
* HurledURL 0
* InfoandVolume 1
* LastURL
* MaxClipCount 4
* MetaFormatPluginInfo {dllpath;description;copyright;moreinfo;loadmultiple;mimetype1|mimetype2;extension1|extension2}{ ... }
* MiscPluginInfo {dllpath;description;copyright;moreinfo;loadmultiple}{ ... }
* MulticastTimeout 2000
* NotProxy
* OnTop 0
* PerfectPlayMode 0
* PerfectPlayTime 60
* PerfPlayEntireClip 1
* PluginDirectory
* Presets#
* ProxySupport 0
* RendererPluginInfo {dllpath;description;copyright;moreinfo;loadmultiple;mimetype1|mimetype2}{ ... }
* SamplingRate 8000
* SeekPage 40
* SendStatistics 1
* ServerTimeOut 90
* ShowPresets 0
* StatusBar 1
* StreamDescriptionPluginInfo {dllpath;description;copyright;moreinfo;loadmultiple;mimetype}{ ... }
* SyncMultimedia 1
* UDPPort 7070
* UDPTimeout 10000
* UpgradeAvailable 0
* UseUDPPort 0
* Volume 50
* x:Pref_windowPositionX
* y:Pref_WindowPositionY
*/
#ifndef _HXPREFS_H_
#define _HXPREFS_H_
#define HXREGISTRY_PREFPROPNAME "ApplicationData"
/*
* Forward declarations of some interfaces defined or used here-in.
*/
typedef _INTERFACE IHXBuffer IHXBuffer;
// CLSID for creating a preferences objects via a CCF
// {EC5C2B01-D105-11d4-951F-00902790299C}
#define CLSID_HXPreferences IID_IHXPreferences
/****************************************************************************
*
* Interface:
*
* IHXPreferences
*
* Purpose:
*
* This interface allows you to store persistant preferences in the
* server or player's config / registry.
*
* IID_IHXPreferences:
*
* {00000500-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXPreferences, 0x00000500, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXPreferences
DECLARE_INTERFACE_(IHXPreferences, IUnknown)
{
/*
* IUnknown methods
*/
STDTQT_METHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXPreferences methods
*/
/************************************************************************
* Method:
* IHXPreferences::ReadPref
* Purpose:
* Read a preference from the registry or configuration.
*/
STDTQT_METHOD(ReadPref) (THIS_
const char* pPrekKey, REF(IHXBuffer*) pBuffer) PURE;
/************************************************************************
* Method:
* IHXPreferences::WritePref
* Purpose:
* TBD
*/
STDTQT_METHOD(WritePref) (THIS_
const char* pPrekKey, IHXBuffer* pBuffer) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXPreferenceEnumerator
*
* Purpose:
*
* Allows preference Enumeration
*
*
* IHXPreferenceEnumerator:
*
* {00000504-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXPreferenceEnumerator, 0x00000504, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXPreferenceEnumerator
DECLARE_INTERFACE_(IHXPreferenceEnumerator, IUnknown)
{
/*
* IUnknown methods
*/
STDTQT_METHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXPreferenceEnumerator methods
*/
/************************************************************************
* Method:
* IHXPreferenceEnumerator::EndSubPref
* Purpose:
* TBD
*/
STDTQT_METHOD(BeginSubPref) (THIS_ const char* szSubPref) PURE;
/************************************************************************
* Method:
* IHXPreferenceEnumerator::EndSubPref
* Purpose:
* TBD
*/
STDTQT_METHOD(EndSubPref) (THIS) PURE;
/************************************************************************
* Method:
* IHXPreferenceEnumerator::GetPrefKey
* Purpose:
* TBD
*/
STDTQT_METHOD(GetPrefKey) (THIS_ UINT32 nIndex, REF(IHXBuffer*) pBuffer) PURE;
/************************************************************************
* Method:
* IHXPreferenceEnumerator::ReadPref
* Purpose:
* TBD
*/
STDTQT_METHOD(ReadPref) (THIS_
const char* pPrefKey, IHXBuffer*& pBuffer) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXPreferences2
*
* Purpose:
*
* New interface which gives sub-preference options abilities.
*
*
* IID_IHXPreferences2:
*
* {00000503-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXPreferences2, 0x00000503, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXPreferences2
DECLARE_INTERFACE_(IHXPreferences2, IUnknown)
{
/*
* IUnknown methods
*/
STDTQT_METHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXPreferences2 methods
*/
/************************************************************************
* Method:
* IHXPreferences2::GetPreferenceEnumerator
* Purpose:
* Read a preference from the registry or configuration.
*/
STDTQT_METHOD(GetPreferenceEnumerator)(THIS_ REF(IHXPreferenceEnumerator*) /*OUT*/ pEnum) PURE;
/************************************************************************
* Method:
* IHXPreferences2::ResetRoot
* Purpose:
* Reset the root of the preferences
*/
STDTQT_METHOD(ResetRoot)(THIS_ const char* pCompanyName, const char* pProductName,
int nProdMajorVer, int nProdMinorVer) PURE;
};
// $Private:
/****************************************************************************
*
* Interface:
*
* IHXPreferences3
*
* Purpose:
*
* New interface for deleting preferences, and whatever we might think of next!
*
*
* IID_IHXPreferences3:
*
* {00000505-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXPreferences3, 0x00000505, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXPreferences3
DECLARE_INTERFACE_(IHXPreferences3, IUnknown)
{
/************************************************************************
* Method:
* IHXPreferences3::Open
* Purpose:
* Open a specified collection of preferences
*/
STDTQT_METHOD( Open )(THIS_ const char* pCompanyName, const char* pProductName,
ULONG32 nProdMajorVer, ULONG32 nProdMinorVer) PURE;
/************************************************************************
* Method:
* IHXPreferences3::OpenShared
* Purpose:
* Have this preference object read/write from the company wide
* shared location for all products
*/
STDTQT_METHOD( OpenShared )( THIS_ const char* pCompanyName) PURE;
/************************************************************************
* Method:
* IHXPreferences3::DeletePref
* Purpose:
* Delete a preference
*/
STDTQT_METHOD(DeletePref)( THIS_ const char* pPrekKey ) PURE;
};
// $EndPrivate.
#endif /* _HXPREFS_H_ */