internetradio2.0/presetplugininc/irpreset.h
author Pat Downey <patd@symbian.org>
Tue, 18 May 2010 11:36:57 +0100
changeset 4 3f2d53f144fe
parent 0 09774dfdd46b
child 8 3b03c28289e6
permissions -rw-r--r--
Merge docml changeset with recent Nokia delivery.

/*
* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies). 
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:  ?Description
*
*/


#ifndef IRPRESET_H
#define IRPRESET_H

#include <badesca.h>
#include <pspresetinterface.h>

class CIRIsdsPreset;

const TUid KIRPreset = { 0x10009DC1 };

/**
 *preset abstract class to expose general apis to the app
 *it is the base class for IRPresetImpl,which is a plugin
 *the plugin implements all the pure virtual functions
*/
class CIRPreset:public CPSPresetInterface
	{

public:

	/**
	*CIRPreset::SetId()
	*sets id
	*@param TDesC,supplied by xml parser
	*/
	virtual void SetId(const TDesC &aId)=0;

	/**
	*CIRPreset::SetId()
	*sets id
	*@param TInt,provided to manipulate the id number
	*/
	virtual void SetId(TInt aId)=0;


	/**
	*CIRPreset::SetLangInfo()
	*sets the preset language name and the code
	*@param TdesC,TdesC language id and name to be set
	*/
	virtual void SetLangInfo(const TDesC &aLangId,const TDesC& aLangName)=0;

	/**
	*CIRPreset::SetCountryInfo()
	*sets the preset country name and the code
	*@param TdesC,TdesC country id and country name to be set
	*/
	virtual void SetCountryInfo(const TDesC &aCountryId,
		const TDesC& aCountryName)=0;

	/**
	*CIRPreset::SetLangCode()
	*sets the language code
	*@param TdesC language code
	*/
	virtual void SetLangCode(const TDesC &aLangId)=0;

	/**
	*CIRPreset::SetLang()
	*sets the language
	*@param TdesC language
	*/
	virtual void SetLang(const TDesC& aLangName)=0;

	/**
	*CIRPreset::SetCountryCode()
	*sets the language code
	*@param TdesC language code
	*/
	virtual void SetCountryCode(const TDesC &aCountryId)=0;

	/**
	*CIRPreset::SetCountryName()
	*sets the language name
	*@param TdesC language name
	*/
	virtual void SetCountryName(const TDesC& aCountryName)=0;

	/**
	*CIRPreset::SetLastModifiedTime()
	*gets the channel  url at a particular index
	*@param TDesC,time stamp
	*/
	virtual void SetLastModifiedTime(const TDesC &aLastModified)=0;

	/**
	*CIRPreset::SetGenreInfo()
	*sets the genreid and name
	*@param aGenreId
	*@param aGenreName
	*/
	virtual void SetGenreInfo(const TDesC& aGenreId,
		const TDesC& aGenreName)=0;

	/**
	*CIRPreset::SetImgUrl()
	*sets the image url
	*@param aImgUrl
	*/
	virtual void SetImgUrl(const TDesC& aImgUrl)=0;

	/**
	*CIRPreset::SetAdvertisementInUse()
	*sets the advertisementinuse url
	*@param aAdvertisementInUse
	*/
	virtual void SetAdvertisementInUse(const TDesC& aAdvertisementInUse)=0;

	/**
	*CIRPreset::SetDescription()
	*sets the description for the channel
	*@param aDescription
	*/
	virtual void SetDescription(const TDesC& aDescription)=0;

	/**
	*CIRPreset::SetAdvertisementUrl()
	*sets the advertisement url
	*@param aAdvertisementUrl
	*/
	virtual void SetAdvertisementUrl(const TDesC& aAdvertisementUrl)=0;

	/**
	*CIRPreset::SetUrlCount()
	*sets the count of the number of urls
	*/
	virtual void SetUrlCount()=0;

	/**
	*CIRPreset::SetShortDesc()
	*sets the short description
	*@param aShortDesc
	*/
	virtual void SetShortDesc(const TDesC& aShortDesc)=0;


	/**
	*CIRPreset::SetMusicStoreStatus()
	*sets the musicStoreEnabled flag
	*@param aMusicStoreStatus
	*/
	virtual void SetMusicStoreStatus(const TDesC& aMusicStoreStatus)=0;


	/**
	*CIRPreset::SetUrlCount()
	*sets the count of the number of urls
	*@param aCnt ,count
	*/
	virtual void SetUrlCount(TInt aCnt)=0;

	/**
	*CIRPreset::SetIndex()
	*sets the index for the preset.used only for presets in the fav list
	*@param aInt
	*/
	//not required
	//virtual void SetIndex(TInt aInt)=0

	/**
	*CIRPreset::SetUrlL()
	*sets the channel server url
	*@param aServerName ,server name
	*@param aUrl ,server url
	*@param aBitrate .server bitrate
	*/
	virtual void SetUrlL(const TDesC &aServerName,const TDesC &aUrl,
		const TDesC &aBitrate)=0;

	/**
	*CIRPreset::SetUrlL()
	*sets the channel server url
	*@param aServerName ,server name
	*@param aUrl ,server url
	*@param aBitrate ,server bitrate
	*/
	virtual void SetUrlL(const TDesC &aServerName,const TDesC &aUrl,
		TInt aBitrate)=0;

	/**
	*CIRPreset::SetChannelType()
	*sets the channel type
	*@param aChannelType userdefined,isds,adhoc
	*/
	virtual void SetChannelType(TInt aChannelType)=0;

	/**
	*CIRPreset::GetId()
	*gets the channel id
	*@return TInt
	*/
	virtual TInt GetId()const=0;

	/**
	*CIRPreset::GetLangId()
	*gets the channel channelangid
	*@return TDesC
	*/
	virtual const TDesC& GetLangId() const=0;

	/**
	*CIRPreset::GetLangName()
	*gets the channel language name
	*@return TDesC
	*/
	virtual const TDesC& GetLangName() const=0;

	/**
	*CIRPreset::GetCountryId()
	*gets the channel countryid
	*@return TDesC
	*/
	virtual const TDesC& GetCountryId() const=0;

	/**
	*CIRPreset::GetCountryName()
	*gets the channel country name
	*@return TDesC
	*/
	virtual const TDesC& GetCountryName() const=0;

	/**
	*CIRPreset::GetLastModifiedTime()
	*gets the channel last modified time stamp
	*@return TDesC
	*/
	virtual const TDesC& GetLastModifiedTime() const=0;

	/**
	*CIRPreset::GetDescription()
	*gets the channel description
	*@return TDesC
	*/
	virtual const TDesC& GetDescription() const=0;

	/**
	*CIRPreset::GetShortDescription()
	*gets the channel  short description
	*@return TDesC
	*/
	virtual const TDesC& GetShortDescription() const=0;


	/**
	*CIRPreset::GetMusicStoreStatus()
	*gets the channel  musicStoreEnabled flag
	*@return TDesC
	*/
	virtual const TDesC& GetMusicStoreStatus() const=0;


    /**
    *CIRPreset::GetChannelType()
	*gets the channel  Type
	*@return TInt
	*/
	virtual TInt GetChannelType()const=0;

	/**
	*CIRPreset::GetGenreId()
	*gets the channel  genreid
	*@return TDesC
	*/
	virtual const TDesC& GetGenreId() const=0;

	/**
	*CIRPreset::GetGenreName()
	*gets the channel  genre name
	*@return TDesC
	*/
	virtual const TDesC& GetGenreName() const=0;

	/**
	*CIRPreset::GetAdvertisementUrl()
	*gets the channel  advertisement url
	*@return TDesC
	*/
	virtual const TDesC& GetAdvertisementUrl() const=0;

	/**
	*CIRPreset::GetImgUrl()
	*gets the channel  image url
	*@return TDesC
	*/
	virtual const TDesC& GetImgUrl()const=0;

    /**
    *CIRPreset::GetUrlCount()
	*gets the channel  url count
	*@return TDesC
	*/
	virtual TInt GetUrlCount()const=0;

	/*
	 * get the channel url at specified position
	 *
	 */
	virtual const TDesC& GetChannelUrlAt(TInt aIndex) const = 0;
	
	/**
	*CIRPreset::GetAvailableBitrates()
	*gets the bitrate array
	*@return RArray<TInt>
	*/
    virtual RArray<TInt>& GetAvailableBitrates()=0;

	/**
 	*void CIRPresetImpl::CIRIsdsPresetToCIRPresetImpl(const CIRIsdsPreset& aIsdsPreset)
 	*used to convert the isdspresets to plugnized presets.
 	*Does a deep copy for all the member variables
 	*@param CIRIsdsPreset&,the preset to be copied from
	*/
    virtual void CIRIsdsPresetToCIRPresetImpl(const CIRIsdsPreset& aIsdsPreset)=0;

	/**
	*CIRPreset::CopyPresetData()
	*copy data to CIRIsdsPreset
	*@param CIRIsdsPreset&,the preset to be copied into
	*/
	virtual void CopyPresetData(CIRIsdsPreset& aIsdsPreset) const =0;

	/**
	*CIRPreset::UniqId()
	*gets the unique id
	*@return TUint32
	*/
	virtual TUint32 UniqId()=0;

	/**
	*CIRPreset::SetUniqId()
	*sets the unique id for the preset
	*@param aId
	*/
	virtual void SetUniqId( const TUint32 aId)=0;

	 /**
     * Sets the logo data for this preset for a specific size.
     *
     * @param   aData           Raw image data to set.
     * @param   aSize           Size of the logo in pixels.
     */
    virtual void SetLogoData( const TDesC8& aData ) = 0;

    /**
     * Returns the logo data for this preset.
     *
     * If the returned descriptor's length is zero, then it means
     * that the preset does not have a logo.
     */
    virtual  const TDesC8& GetLogoData() const = 0;

    /*
     * Returns the played times of the channel
     */
    virtual TInt GetPlayedTimes() const = 0;
    
    /*
     * Set the played times of the channel
     */
    virtual void SetPlayedTimes(TInt aPlayedTimes) = 0;
	};

#endif	//end of IRPRESET_H