internetradio2.0/irpresetplugin/inc/irpreset.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 18 Aug 2010 09:40:26 +0300
changeset 14 896e9dbc5f19
child 15 065198191975
permissions -rw-r--r--
Revision: 201031 Kit: 201033

/*
* Copyright (c) 2007 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:
*
*/


#ifndef C_IRPRESET_H
#define C_IRPRESET_H

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

class CIRIsdsPreset;
class CIRChannelServerUrl;

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::SetLangInfoL()
     * sets the preset language name and the code
     * @param TdesC,TdesC language id and name to be set
     */
    virtual void SetLangInfoL( const TDesC &aLangId,
                              const TDesC& aLangName ) = 0;

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

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

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

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

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

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

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

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

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

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

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

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

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

    /**
     * CIRPreset::SetMusicStoreStatusL()
     * sets the musicStoreEnabled flag
     * @param aMusicStoreStatus
     */
    virtual void SetMusicStoreStatusL( 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::GetAdvertisementInUse()
    *gets the channel  advertisement In Use
    *@return TDesC
    */
    virtual const TDesC& GetAdvertisementInUse() 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;

	virtual CIRChannelServerUrl& GetUrl(TInt aIndex) 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;

    /**
     * CIRPresetImpl::CIRIsdsPresetToCIRPresetImplL()
     * 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 CIRIsdsPresetToCIRPresetImplL( const CIRIsdsPreset& aIsdsPreset ) = 0;

	/**
	*CIRPreset::CopyPresetDataL()
	*copy data to CIRIsdsPreset
	*@param CIRIsdsPreset&,the preset to be copied into
	*/
	virtual void CopyPresetDataL(CIRIsdsPreset& aIsdsPreset) const =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 SetLogoDataL( 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;
    
    /*
     * Get Rename status
     */
    virtual TBool GetRenamed() const = 0;
    
    /*
     * Set Rename status
     */
    virtual void SetRenamed() = 0;
    };

#endif // C_IRPRESET_H