/*
* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "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:  Defines S60 platform variant for Browser
*               Allows Browser to build on multiple S60 platform releases
*
*/

/*
*
* NOTICE: Not for use outside of the Symbian Foundation packages 'web' and 'webuis'.
*         This header may be changed or removed at any time without notice.
*
*/

#ifndef BROWSER_PLATFORM_VARIANT_HRH
#define BROWSER_PLATFORM_VARIANT_HRH

/*
* Establish which platform we are building on.
* If required, un-comment correct platform macro as
* described below  
*
*/
/*
* ===================
*        S60 3.23 etc..
* ===================
*/ 
#if defined(__S60_32__)
//
// this is the only supported platform that comes with unambiguous platform version flag
#define __PLATFORM_VERSION_32__

/*
* ===================
*        S60 5.0 PF_52_50, etc.
*        5.0/5250 platforms
* ===================
*/ 
#elif defined(__S60_50__)
// manually edit the following lines to enable definition for
// whichever platform is in use
// un-comment following line for 5.0/5250 platforms running on products similar on S60_50
// #define __PLATFORM_VERSION_S60_50__

// un-comment following line for 5.0/5250
// #define __PLATFORM_VERSION_5250__

/*
* ===================
*        S60 5.1 S60_51, etc.
* ===================
*/ 
// #elif defined(__S60_51__)
// un-comment following line for 5.1/TB9.1 platforms
// #define __PLATFORM_VERSION_51__

/*
* ===================
*        S60 5.2 TB_92, etc.
* ===================
*/ 
// #elif defined(__S60_52__)

// un-comment following line for 5.2/TB9.2 platforms
#define __PLATFORM_VERSION_52_TB92__
//
#endif

/*
*
* Define Browser Version
*
*/

#define BRDO_APP_VERSION_MAJOR 7
#define BRDO_APP_VERSION_MINOR 2
#define BRDO_APP_VERSION BRDO_APP_VERSION_MAJOR##_##BRDO_APP_VERSION_MINOR

/*
*
* Define feature flags
*
* Format of browser domain feature flags:
*
*   "BRDO_" | feature/component name | "_FF"
*
* Define default value of the flag in section below, and then modify it
* by platform as it varies from that default.
*
*/

// Defines Language InterWork and SAPI availability
#define BRDO_LIW_FF

// Defines ASX parser availability
#ifdef __WINDOWS_MEDIA
#define BRDO_ASX_FF
#endif

/** #BRDO_WML_DISABLED_FF 
Disable WML support using BRDO_WML_DISABLED_FF
Default is WML support enabled 
*/
#undef BRDO_WML_DISABLED_FF

// Defines if SecurityManager component is present
#define BRDO_WRT_SECURITY_MGR_FF

// Defines touch screen capability
#define BRDO_TOUCH_ENABLED_FF

// Defines Avkon extended toolbar support
#define BRDO_AVKON_EXT_TB_FF

// Defines Direct File IO support in RFile ( EFileWriteDirectIO )
#define BRDO_RFILE_WRITE_DIRECT_IO_FF

// Defines use of GestureHelper library
#define BRDO_USE_GESTURE_HELPER

// Defines WRT widgets feature to publish on homescreen
#define BRDO_WRT_HS_FF

// Defines flag for OOM Monitor-2
#define BRDO_OOM_MONITOR2_COMPONENT_FF

// Gallery App is not present
#undef BRDO_APP_GALLERY_SUPPORTED_FF

// Defines if MultipartParser should be built
#define BRDO_MULTIPART_PARSER_FF

// Additional export location - to adapt to new header export location
#undef BRDO_ADDED_EXPORT_LOCATION

// Platform contains new Symbian Libxml implementation
#undef BRDO_SYMBIAN_LIBXML_FF

// Enable/Disable compilation of some of Search Integration specific code 
#define BRDO_SEARCH_INTEGRATION_FF

// Defines whether SAPI Security Manager Prompt Enhancement is available
#define BRDO_SEC_MGR_PROMPT_ENHANCEMENT_FF

// Defines Symbian HTTP stack parameters specific for symbian 9.3 (e.g. EHttpEnableOptimalPipelining, EHttpOptimalPipelining)
//Flag need to be removed after this fix is supplied to Symbian 9.4
#define BRDO_HTTP_STACK_93

// Flag for Multiple Font Support(Times New Roman,Arial and Courier).This feature is available only for TB9.2   
#define BRDO_BROWSER_MULTIPLE_FONT_SUPPORT

// Flag for Multi touch enable 
#define BRDO_MULTITOUCH_ENABLED_FF
//To provide WidgetSIDChecker support 
#define APP_SID_CHECK_SUPPORT_FF

//AT&T DownloadMgr path support flag
#define DOWNLOADMGR_PATH_PLUGIN_ENABLED_FF 

// One Click Connectivity support flag
#define BRDO_OCC_ENABLED_FF

//Single click flag
#define BRDO_SINGLE_CLICK_ENABLED_FF

//Video player 2, surface aware controller, 
#define BRDO_VIDEOPLAYER2_ENABLED_FF

//To enable for IAD Update (For add-on Browser)
#define BRDO_IAD_UPDATE_ENABLED_FF

//To enable performance improvements done in TB9.2
#define BRDO_PERF_IMPROVEMENTS_ENABLED_FF

/*
* ===================
*        S60 3.23
* ===================
*/ 
#if defined(__PLATFORM_VERSION_32__)

//Video player 2, surface aware controller, 
#undef BRDO_VIDEOPLAYER2_ENABLED_FF


//OCC support
#undef BRDO_OCC_ENABLED_FF

//AT&T DownloadMgr path support flag
#undef DOWNLOADMGR_PATH_PLUGIN_ENABLED_FF 

//Single click support
#undef BRDO_SINGLE_CLICK_ENABLED_FF

//To enable for IAD Update (For add-on Browser)
#undef BRDO_IAD_UPDATE_ENABLED_FF

//To provide WidgetSIDChecker support 
#undef APP_SID_CHECK_SUPPORT_FF 

// Flag for Multiple Font Support(Times New Roman,Arial and Courier).This feature is available only for TB9.2
#undef BRDO_BROWSER_MULTIPLE_FONT_SUPPORT

// Flag for Multi touch enable 
#undef BRDO_MULTITOUCH_ENABLED_FF

//Flag for performance improvements in TB9.2
#undef BRDO_PERF_IMPROVEMENTS_ENABLED_FF

// Defines touch screen capability
#undef BRDO_TOUCH_ENABLED_FF

// Defines Avkon extended toolbar support
#undef BRDO_AVKON_EXT_TB_FF

// Defines Direct File IO support in RFile ( EFileWriteDirectIO )
#undef BRDO_RFILE_WRITE_DIRECT_IO_FF

// Defines use of GestureHelper library
#undef BRDO_USE_GESTURE_HELPER

// Defines WRT widgets feature to publish on homescreen
#undef BRDO_WRT_HS_FF

// Defines flag for OOM Monitor-2
#undef BRDO_OOM_MONITOR2_COMPONENT_FF

// Gallery App is present
#define BRDO_APP_GALLERY_SUPPORTED_FF

// Disable compilation of some of Search Integration specific code
#undef BRDO_SEARCH_INTEGRATION_FF

// Defines whether SAPI Security Manager Prompt Enhancement is available
#undef BRDO_SEC_MGR_PROMPT_ENHANCEMENT_FF

// Missing from 3.23 platform_paths.hrh

// Location, where the middleware layer localization .loc file should be exported
#if __GNUC__ >= 3
#define MW_LAYER_LOC_EXPORT_PATH(exported) MW_LAYER_PUBLIC_EXPORT_PATH(oem/exported)
#else
#define MW_LAYER_LOC_EXPORT_PATH(exported) MW_LAYER_PUBLIC_EXPORT_PATH(oem/##exported)
#endif

// Location, where the middleware layer localization .loc file should be exported
#if __GNUC__ >= 3
#define APP_LAYER_LOC_EXPORT_PATH(exported) APP_LAYER_PUBLIC_EXPORT_PATH(oem/exported)
#else
#define APP_LAYER_LOC_EXPORT_PATH(exported) APP_LAYER_PUBLIC_EXPORT_PATH(oem/##exported)
#endif

#if __GNUC__ >= 3
#define BRDO_ADDED_EXPORT_LOCATION(exported) MW_LAYER_DOMAIN_EXPORT_PATH(../platform/mw/exported)
#else
#define BRDO_ADDED_EXPORT_LOCATION(exported) MW_LAYER_DOMAIN_EXPORT_PATH(../platform/mw/##exported)
#endif

#ifndef OS_LAYER_ESTLIB_SYSTEMINCLUDE
#define OS_LAYER_ESTLIB_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(libc)
#endif

#ifndef MW_LAYER_CONNECT_SYSTEMINCLUDE
#define MW_LAYER_CONNECT_SYSTEMINCLUDE SYSTEMINCLUDE  OS_LAYER_PUBLIC_EXPORT_PATH(connect)
#endif

/*
* ===================
*        S60 5.0 S60_50
* ===================
*/ 
#elif defined(__PLATFORM_VERSION_S60_50__)


//Video player 2, surface aware controller, 
#undef BRDO_VIDEOPLAYER2_ENABLED_FF

//OCC support
#undef BRDO_OCC_ENABLED_FF

//AT&T DownloadMgr path support flag
#undef DOWNLOADMGR_PATH_PLUGIN_ENABLED_FF 

//Single click support
#undef BRDO_SINGLE_CLICK_ENABLED_FF

//To enable for IAD Update (For add-on Browser)
#undef BRDO_IAD_UPDATE_ENABLED_FF

// Flag for Multi touch enable 
#undef BRDO_MULTITOUCH_ENABLED_FF

//Flag for performance improvements in TB9.2
#undef BRDO_PERF_IMPROVEMENTS_ENABLED_FF

//To provide WidgetSIDChecker support 
#undef APP_SID_CHECK_SUPPORT_FF 

// Flag for Multiple Font Support(Times New Roman,Arial and Courier).This feature is available only for TB9.2
#undef BRDO_BROWSER_MULTIPLE_FONT_SUPPORT

// Defines must accumulate versions. ie for 5.01 you must define BRDO_BROWSER_50_FF and BRDO_BROWSER_501_FF(To be reviewed)
// The assumption is that anything that worked in 3.2 will work in 5.0 and 5.01.  For anything doesn't work
// in 3.2 but works in 5.0 and above, that code should be behind the BRDO_BROWSER_50_FF flag.
#define BRDO_BROWSER_50_FF

// Defines WRT widgets feature to publish on homescreen
#undef BRDO_WRT_HS_FF

// Defines flag for OOM Monitor-2
#undef BRDO_OOM_MONITOR2_COMPONENT_FF

// Gallery App is present
#define BRDO_APP_GALLERY_SUPPORTED_FF

// Disable compilation of some of Search Integration specific code
#undef BRDO_SEARCH_INTEGRATION_FF

// Defines whether SAPI Security Manager Prompt Enhancement is available
#undef BRDO_SEC_MGR_PROMPT_ENHANCEMENT_FF

#if __GNUC__ >= 3
#define BRDO_ADDED_EXPORT_LOCATION(exported) MW_LAYER_DOMAIN_EXPORT_PATH(../../platform/mw/exported)
#else
#define BRDO_ADDED_EXPORT_LOCATION(exported) MW_LAYER_DOMAIN_EXPORT_PATH(../../platform/mw/##exported)
#endif

#ifndef OS_LAYER_ESTLIB_SYSTEMINCLUDE
#define OS_LAYER_ESTLIB_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../libc)
#endif

#ifndef OS_LAYER_LIBC_SYSTEMINCLUDE
#define OS_LAYER_LIBC_SYSTEMINCLUDE SYSTEMINCLUDE  OS_LAYER_PUBLIC_EXPORT_PATH(../stdapis) \
                                                   OS_LAYER_PUBLIC_EXPORT_PATH(stdapis)
#endif

#ifndef MW_LAYER_CONNECT_SYSTEMINCLUDE
#define MW_LAYER_CONNECT_SYSTEMINCLUDE SYSTEMINCLUDE  /epoc32/include/connect
#endif

#ifndef MW_LAYER_ECOM_SYSTEMINCLUDE
#define MW_LAYER_ECOM_SYSTEMINCLUDE SYSTEMINCLUDE  /epoc32/include/ecom
#endif
#ifndef MW_LAYER_HTTP_SYSTEMINCLUDE
#define MW_LAYER_HTTP_SYSTEMINCLUDE SYSTEMINCLUDE  /epoc32/include/http
#endif

// Defines Symbian HTTP stack parameters specific for symbian 9.3 (e.g. EHttpEnableOptimalPipelining, EHttpOptimalPipelining)
//Flag need to be removed after this fix is supplied to Symbian 9.4
#undef BRDO_HTTP_STACK_93
/*
* ===================
*        S60 5.0 PF5250+
* ===================
*/ 
#elif defined(__PLATFORM_VERSION_5250__)

//Video player 2, surface aware controller, 
#undef BRDO_VIDEOPLAYER2_ENABLED_FF

//AT&T DownloadMgr path support flag
#undef DOWNLOADMGR_PATH_PLUGIN_ENABLED_FF 

//OCC support
#undef BRDO_OCC_ENABLED_FF

//Single click support
#undef BRDO_SINGLE_CLICK_ENABLED_FF

//To enable for IAD Update (For add-on Browser)
#define BRDO_IAD_UPDATE_ENABLED_FF


// Flag for Multi touch enable 
#undef BRDO_MULTITOUCH_ENABLED_FF

//Flag for performance improvements in TB9.2
#undef BRDO_PERF_IMPROVEMENTS_ENABLED_FF


//To provide WidgetSIDChecker support 
#undef APP_SID_CHECK_SUPPORT_FF 

// Flag for Multiple Font Support(Times New Roman,Arial and Courier).This feature is available only for TB9.2
#undef BRDO_BROWSER_MULTIPLE_FONT_SUPPORT

// Defines must accumulate versions. ie for 5.01 you must define BRDO_BROWSER_50_FF and BRDO_BROWSER_501_FF(To be reviewed)
// The assumption is that anything that worked in 3.2 will work in 5.0 and 5.01.  For anything doesn't work
// in 3.2 but works in 5.0 and above, that code should be behind the BRDO_BROWSER_50_FF flag.
#define BRDO_BROWSER_50_FF

#if __GNUC__ >= 3
#define BRDO_ADDED_EXPORT_LOCATION(exported) MW_LAYER_DOMAIN_EXPORT_PATH(../../platform/mw/exported)
#else
#define BRDO_ADDED_EXPORT_LOCATION(exported) MW_LAYER_DOMAIN_EXPORT_PATH(../../platform/mw/##exported)
#endif

#ifndef OS_LAYER_ESTLIB_SYSTEMINCLUDE
#define OS_LAYER_ESTLIB_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../libc)
#endif

#ifndef MW_LAYER_CONNECT_SYSTEMINCLUDE
#define MW_LAYER_CONNECT_SYSTEMINCLUDE SYSTEMINCLUDE  /epoc32/include/connect
#endif

// Defines Symbian HTTP stack parameters specific for symbian 9.3 (e.g. EHttpEnableOptimalPipelining, EHttpOptimalPipelining)
//Flag need to be removed after this fix is supplied to Symbian 9.4
#undef BRDO_HTTP_STACK_93
/*
* ===================
*        S60 5.1
* ===================
*/ 
#elif defined(__PLATFORM_VERSION_51__)

//Video player 2, surface aware controller, 
#undef BRDO_VIDEOPLAYER2_ENABLED_FF

//AT&T DownloadMgr path support flag
#undef DOWNLOADMGR_PATH_PLUGIN_ENABLED_FF 

//OCC support
#undef BRDO_OCC_ENABLED_FF
//Single click support
#undef BRDO_SINGLE_CLICK_ENABLED_FF

//To enable for IAD Update (For add-on Browser)
#undef BRDO_IAD_UPDATE_ENABLED_FF

// Flag for Multi touch enable 
#undef BRDO_MULTITOUCH_ENABLED_FF

//Flag for performance improvements in TB9.2
#undef BRDO_PERF_IMPROVEMENTS_ENABLED_FF

//To provide WidgetSIDChecker support 
#undef APP_SID_CHECK_SUPPORT_FF 

// Flag for Multiple Font Support(Times New Roman,Arial and Courier).This feature is available only for TB9.2
#undef BRDO_BROWSER_MULTIPLE_FONT_SUPPORT

// Defines whether SAPI Security Manager Prompt Enhancement is available
#undef BRDO_SEC_MGR_PROMPT_ENHANCEMENT_FF

#define BRDO_BROWSER_50_FF
#define BRDO_BROWSER_51_FF

#ifndef OS_LAYER_ESTLIB_SYSTEMINCLUDE
#define OS_LAYER_ESTLIB_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(libc)
#endif

// Defines Symbian HTTP stack parameters specific for symbian 9.3 (e.g. EHttpEnableOptimalPipelining, EHttpOptimalPipelining)
//Flag need to be removed after this fix is supplied to Symbian 9.4
#undef BRDO_HTTP_STACK_93
/*
* ===================
*        S60 5.2
* ===================
*/ 
//Flag provieded to not fix the problem for Multiple heap created for in application startup
#undef BRDO_STATIC_DATA_CLEANUP_SUPPORT_FF
#elif defined(__PLATFORM_VERSION_52_TB92__)

//Video player 2, surface aware controller, 
#define BRDO_VIDEOPLAYER2_ENABLED_FF

// Defines whether SAPI Security Manager Prompt Enhancement is available
#undef BRDO_SEC_MGR_PROMPT_ENHANCEMENT_FF

//Defines One Click Connectivity support
#define BRDO_OCC_ENABLED_FF

//AT&T DownloadMgr path support flag
#define DOWNLOADMGR_PATH_PLUGIN_ENABLED_FF 

//Single click support
#define BRDO_SINGLE_CLICK_ENABLED_FF

//To enable for IAD Update (For add-on Browser)
#define BRDO_IAD_UPDATE_ENABLED_FF

#define BRDO_BROWSER_50_FF
#define BRDO_BROWSER_51_FF
#define BRDO_BROWSER_52_FF

// BrDo MultipartParser not used from S60 5.2 onward
// un-comment this line for week21 release
#undef BRDO_MULTIPART_PARSER_FF

// Defines Symbian HTTP stack parameters specific for symbian 9.3 (e.g. EHttpEnableOptimalPipelining, EHttpOptimalPipelining)
//Flag need to be removed after this fix is supplied to Symbian 9.4
#undef BRDO_HTTP_STACK_93

#ifndef OS_LAYER_ESTLIB_SYSTEMINCLUDE
#define OS_LAYER_ESTLIB_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(libc)
#endif

// Platform contains new Symbian Libxml implementation
#define BRDO_SYMBIAN_LIBXML_FF

// Static data initializtion on start up in E32Main() 
#define BRDO_STATIC_DATA_CLEANUP_SUPPORT_FF

//To provide WidgetSIDChecker support 
#define APP_SID_CHECK_SUPPORT_FF 

#endif // PLATFORM VERSION ID's

// Generic run-time definitions -- see WmlBrowserBuild.h for similar feature related definitions

// Browser Update - Independent Application Delivery
#if defined( KFeatureIdIAUpdate )
// Defines flag for activating changes to update Browser application - from the Browser application
#define BRDO_BROWSER_UPDATE_UI_FF FeatureManager::FeatureSupported( KFeatureIdIAUpdate )
#else
#define BRDO_BROWSER_UPDATE_UI_FF 0
#endif // KFeatureIdIAUpdate

#endif // BROWSER_PLATFORM_VARIANT_HRH
