#ifndef __DEFINITIONS_H
#define __DEFINITIONS_H

#include <string>
#include <map>

using namespace std;

typedef pair<string,string> stringpair;
typedef map<string,string> stringmap;

#define ATTR_UNKNOWN (-1)
#define ATTR_COND    (-2)

/******************************************************************
* Views
*******************************************************************/
enum class eViewType {
    DisplayChannel,
    DisplayMenu,
    DisplayReplay,
    DisplayVolume,
    DisplayTracks,
    DisplayMessage,
    DisplayPlugin
};
/******************************************************************
* ViewElements DisplayChannel
*******************************************************************/
enum class eVeDisplayChannel {
    background = 0,
    datetime,
    time,
    message,
    devices,
    currentweather,
    customtokens,
    channelinfo,
    channelgroup,
    epginfo,
    progressbar,
    statusinfo,
    audioinfo,
    screenresolution,
    signalquality,
    scrapercontent,
    ecminfo,
    count
};
/******************************************************************
* ViewElements DisplayMenu
*******************************************************************/
enum class eVeDisplayMenu {
    background = 0,
    header,
    datetime,
    time,
    sortmode,
    colorbuttons,
    message,
    scrollbar,
    count
};

enum class eVeDisplayMenuMain {
    timers = (int)eVeDisplayMenu::count,
    devices,
    currentweather,
    currentschedule,
    discusage,
    systemload,
    systemmemory,
    temperatures,
    vdrstatistics,
    lastrecordings,
    customtokens,
    count
};

enum class eVeDisplayDetailedMenu {
    detailheader = (int)eVeDisplayMenu::count,
    tablabels,
    count
};
/******************************************************************
* Subviews DisplayMenu
*******************************************************************/
enum class eSvDisplayMenu {
    menudefault = 0,
    main,
    setup,
    schedules,
    channels,
    timers,
    recordings,
    detailepg,
    detailrec,
    detailtext,
    count
};

/******************************************************************
* DisplayMessage
*******************************************************************/
enum class eVeDisplayMessage {
    background = 0,
    message,
    count
};

/******************************************************************
* DisplayReplay
*******************************************************************/
enum class eVeDisplayReplay {
    background = 0,
    backgroundmodeonly,
    datetime,
    time,
    scrapercontent,
    currentweather,
    rectitle,
    recinfo,
    currenttime,
    totaltime,
    endtime,
    progressbar,
    cutmarks,
    controlicons,
    controliconsmodeonly,
    progressmodeonly,
    jump,
    message,
    onpause,
    onpausemodeonly,
    customtokens,
    count
};

/******************************************************************
* DisplayVolume
*******************************************************************/
enum class eVeDisplayVolume {
    background = 0,
    volume,
    count
};

/******************************************************************
* DisplayTracks
*******************************************************************/
enum class eVeDisplayTracks {
    background = 0,
    header,
    count
};

/******************************************************************
* Tokens common viewelements
*******************************************************************/
enum class eBackgroundST {
    count
};

enum class eBackgroundIT {
    count
};

enum class eDateTimeST {
    time = 0,
    dayleadingzero,
    dayname,
    daynameshort,
    month,
    monthname,
    monthnameshort,
    count
};

enum class eDateTimeIT {
    day = 0,
    year,
    count
};

enum class eTimeST {
    count = 0
};

enum class eTimeIT {
    sec = 0,
    min,
    hour,
    hmins,
    count
};

enum class eMessageST {
    text = 0,
    count
};

enum class eMessageIT {
    status = 0,
    info,
    warning,
    error,
    count
};

enum class eDevicesLT {
    num = 0,
    type,
    istuned,
    livetv,
    recording,
    hascam,
    cam,
    signalstrength,
    signalquality,
    channelnumber,
    channelname,
    channellogoexists, 
    channelid,
    source,
    count
};

enum class eDevicesIT {
    numdevices = 0,
    count
};

enum class eCurrentWeatherST {
    timestamp = 0,
    summary,
    icon,
    precipitationtype,
    windbearingstring,
    temperature,
    apparenttemperature,
    mintemperature,
    maxtemperature,
    precipitationintensity,
    windspeed,
    visibility,
    pressure,
    ozone,
    count
};

enum class eCurrentWeatherIT {
    precipitationprobability = 0,
    humidity,
    windbearing,
    cloudcover,
    count
};

enum class eScraperPosterBannerST {
    posterpath = 0,
    bannerpath,
    mediapath,
    count
};

enum class eScraperPosterBannerIT {
    posterwidth = 0,
    posterheight,
    hasposter,
    bannerwidth,
    bannerheight,
    hasbanner,
    mediawidth,
    mediaheight,
    isbanner,
    count
};

/******************************************************************
* Tokens displaychannel viewelements
*******************************************************************/
enum class eDCChannelInfoST {
    channelnumber = 0,
    channelname,
    channelid,
    count
};

enum class eDCChannelInfoIT {
    channellogoexists = 0,
    switching,
    count
};

enum class eDCEpgInfoST {
    currenttitle = 0,
    currentsubtitle,
    currentstart,
    currentstop,
    nexttitle,
    nextsubtitle,
    nextstart,
    nextstop,
    count
};

enum class eDCEpgInfoIT {
    currentduration = 0,
    currentdurationhours,
    currentdurationminutes,
    currentelapsed,
    currentremaining,
    nextduration,
    nextdurationhours,
    nextdurationminutes,
    nextrecording,
    currentrecording,
    hasVPS,
    count
};

enum class eDCProgressBarST {
    start = 0,
    stop,
    count
};

enum class eDCProgressBarIT {
    duration = 0,
    elapsed,
    remaining,
    permashift,
    livebuffer,
    count
};

enum class eDCStatusInfoST {
    count
};

enum class eDCStatusInfoIT {
    isRadio = 0,
    hasVT,
    isStereo,
    isDolby,
    isEncrypted,
    isRecording,
    newmails,
    count
};

enum class eDCAudioInfoST {
    trackdesc = 0,
    tracklang,
    count
};

enum class eDCAudioInfoIT {
    numaudiotracks = 0,
    audiochannel,
    count
};

enum class eDCEcmInfoST {
    cardsystem = 0,
    reader,
    from,
    protocol,
    count
};

enum class eDCEcmInfoIT {
    caid = 0,
    pid,
    prid,
    ecmtime,
    hops,
    count
};

enum class eDCScreenResolutionST {
    resolution = 0,
    aspect,
    count
};

enum class eDCScreenResolutionIT {
    screenwidth = 0,
    screenheight,
    isHD,
    isWideScreen,
    count
};

enum class eDCChannelGroupST {
    group = 0,
    nextgroup,
    prevgroup,
    seppath,
    count
};

enum class eDCChannelGroupIT {
    prevAvailable = 0,
    nextAvailable,
    sepexists,
    count
};

enum class eDCSignalQualityST {
    count = 0
};

enum class eDCSignalQualityIT {
    signalstrength = 0,
    signalquality,
    count
};

/******************************************************************
* Tokens displaymenu viewelements
*******************************************************************/
enum class eDMHeaderST {
    title = 0,
    vdrversion,
    icon,
    freetime,
    vdrusagestring,
    channelname,
    channelid,
    count
};

enum class eDMHeaderIT {
    hasicon = 0,
    freepercent,
    usedpercent,
    freegb,
    discalert,
    channelnumber,
    channellogoexists,
    whatson,
    whatsonnow,
    whatsonnext,
    whatsonfavorites,
    count
};

enum class eDMSortmodeST {
    count = 0
};

enum class eDMSortmodeIT {
    sortnumber = 0,
    sortname,
    sorttime,
    sortprovider,
    count
};

enum class eDMColorbuttonsST {
    red = 0,
    green,
    yellow,
    blue,
    count
};

enum class eDMColorbuttonsIT {
    red1 = 0, red2, red3, red4,
    green1, green2, green3, green4,
    yellow1, yellow2, yellow3, yellow4,
    blue1, blue2, blue3, blue4,
    count
};

enum class eDMScrollbarST {
    count = 0
};

enum class eDMScrollbarIT {
    height = 0,
    offset,
    hasprev,
    hasnext,
    count
};

enum class eDMTimersIT {
    numtimers = 0,
    numtimerconflicts,
    timer1exists,  timer2exists,  timer3exists,  timer4exists,  timer5exists,
    timer6exists,  timer7exists,  timer8exists,  timer9exists,  timer10exists,
    timer11exists, timer12exists, timer13exists, timer14exists, timer15exists,
    count
};

enum class eDMTimersLT {
    title = 0,
    datetime,
    recording,
    channelname,
    channelnumber,
    channelid,
    channellogoexists,
    isremotetimer,
    count
};

enum class eDMCurrentscheduleIT {
    islivetv = (int)eScraperPosterBannerIT::count,
    duration,
    durationhours,
    minutes,
    elapsed,
    remaining,
    count
};

enum class eDMCurrentscheduleST {
    title = (int)eScraperPosterBannerST::count,
    subtitle,
    start,
    stop,
    durationminutes,
    count
};

enum class eDMLastrecordingsIT {
    numtimers = 0,
    count
};

enum class eDMLastrecordingsLT {
    name = 0,
    seriesname,
    date,
    time,
    duration,
    hasposter,
    posterpath,
    posterwidth,
    posterheight,
    count
};

enum class eDMDiscusageST {
    freetime = 0,
    vdrusagestring,
    count
};

enum class eDMDiscusageIT {
    freepercent = 0,
    usedpercent,
    freegb,
    discalert,
    count
};

enum class eDMSystemloadST {
    load = 0,
    count
};

enum class eDMSystemloadIT {
    loadhand = 0,
    count
};

enum class eDMSystemmemoryST {
    count = 0
};

enum class eDMSystemmemoryIT {
    totalmem = 0,
    usedmem,
    usedmempercent,
    count
};

enum class eDMVdrstatisticsST {
    vdrcpu = 0,
    vdrmem,
    count
};

enum class eDMVdrstatisticsIT {
    count = 0
};

enum class eDMTemperaturesST {
    count = 0
};

enum class eDMTemperaturesIT {
    cputemp = 0,
    gputemp,
    count
};

/******************************************************************
* Tokens displaymenu listelements
*******************************************************************/
enum class eLeMenuDefaultST {
    column1 = 0,
    column2,
    column3,
    column4,
    column5,
    column6,
    count
};

enum class eLeMenuDefaultIT {
    nummenuitem = 0,
    current,
    separator,
    column2set,
    column3set,
    column4set,
    column5set,
    column6set,
    column1x,
    column2x,
    column3x,
    column4x,
    column5x,
    column6x,
    column1width,
    column2width,
    column3width,
    column4width,
    column5width,
    column6width,
    column1pb,
    column2pb,
    column3pb,
    column4pb,
    column5pb,
    column6pb,
    column1pbtotalsize,
    column2pbtotalsize,
    column3pbtotalsize,
    column4pbtotalsize,
    column5pbtotalsize,
    column6pbtotalsize,
    column1pbsize,
    column2pbsize,
    column3pbsize,
    column4pbsize,
    column5pbsize,
    column6pbsize,
    unknown,
    channeledit,
    timeredit,
    recordinginfo,
    recordingedit,
    setup,
    commands,
    folder,
    cam,
    fritzbox,
    systeminfo,
    mailbox,
    neutrinoepg,
    remotetimers,
    zaphistory,
    remoteosd,
    filebrowser,
    epgsearch,
    count
};

enum class eLeMenuMainST {
    label = 0,
    number,
    icon,
    count
};

enum class eLeMenuMainIT {
    nummenuitem = 0,
    current,
    separator,
    count
};

enum class eCeMenuMainST {
    label = 0,
    number,
    icon,
    count
};

enum class eCeMenuMainIT {
    menuitemx = 0,
    menuitemy,
    menuitemwidth,
    menuitemheight,
    numitem,
    count
};

enum class eLeMenuSchedulesST {
    title = 0,
    shorttext,
    start,
    stop,
    day,
    date,
    durationminutes,
    channelname,
    channelid,
    count
};

enum class eLeMenuSchedulesIT {
    nummenuitem = 0,
    current,
    separator,
    daynumeric,
    month,
    year,
    istoday,
    running,
    elapsed,
    startsin,
    duration,
    durationhours,
    channelnumber,
    channellogoexists,
    whatson,
    whatsonnow,
    whatsonnext,
    whatsonfavorites,
    timerpartitial,
    timerfull,
    hasVPS,
    count
};

enum class eCeMenuSchedulesST {
    title = 0,
    shorttext,
    description,
    start,
    stop,
    day,
    date,
    channelname,
    channelid,
    posterpath,
    bannerpath,
    count
};

enum class eCeMenuSchedulesLT {
    title = 0,
    shorttext,
    start,
    stop,
    count
};

enum class eCeMenuSchedulesIT {
    menuitemx = 0,
    menuitemy,
    menuitemwidth,
    menuitemheight,
    numitem,
    daynumeric,
    month,
    year,
    running,
    elapsed,
    duration,
    durationhours,
    durationminutes,
    channelnumber,
    channellogoexists,
    hasposter,
    posterwidth,
    posterheight,
    hasbanner,
    bannerwidth,
    bannerheight,
    whatson,
    whatsonnow,
    whatsonnext,
    whatsonfavorites,
    timerpartitial,
    timerfull,
    count
};

enum class eLeMenuChannelsST {
    name = 0,
    channelid,
    source,
    sourcedescription,
    position,
    presenteventtitle,
    presenteventstart,
    presenteventstop,
    count
};

enum class eLeMenuChannelsIT {
    nummenuitem = 0,
    current,
    separator,
    number,
    transponder,
    frequency,
    channellogoexists,
    isAtsc,
    isCable,
    isSat,
    isTerr,
    isEncrypted,
    count
};

enum class eCeMenuChannelsST {
    name = 0,
    channelid,
    source,
    sourcedescription,
    position,
    presenteventtitle,
    presenteventstart,
    presenteventstop,
    presenteventshorttext,
    presenteventdescription,
    presenteventday,
    presenteventdate,
    presenteventdurationminutes,
    posterpath,
    bannerpath,
    nexteventtitle,
    nexteventstart,
    nexteventstop,
    nexteventshorttext,
    nexteventdescription,
    nexteventday,
    nexteventdate,
    nexteventdurationminutes,
    count
};

enum class eCeMenuChannelsIT {
    menuitemx = 0,
    menuitemy,
    menuitemwidth,
    menuitemheight,
    numitem,
    number,
    transponder,
    frequency,
    channellogoexists,
    isAtsc,
    isCable,
    isSat,
    isTerr,
    isEncrypted,
    presenteventduration,
    presenteventdurationhours,
    presenteventelapsed,
    hasposter,
    posterwidth,
    posterheight,
    hasbanner,
    bannerwidth,
    bannerheight,
    nexteventduration,
    nexteventdurationhours,
    count
};

enum class eCeMenuChannelsLT {
    title = 0,
    shorttext,
    start,
    stop,
    count
};

enum class eLeMenuTimersST {
    title = 0,
    timerstart,
    timerstop,
    day,
    dayname,
    monthname,
    channelname,
    channelid,
    eventtitle,
    eventstart,
    eventstop,
    count
};

enum class eLeMenuTimersIT {
    nummenuitem = 0,
    current,
    separator,
    month,
    year,
    channellogoexists,
    channelnumber,
    flagactive,
    flaginstant,
    flagvps,
    flagrecording,
    flagpending,
    count
};

enum class eCeMenuTimersST {
    title = 0,
    timerstart,
    timerstop,
    day,
    dayname,
    monthname,
    channelname,
    channelid,
    eventtitle,
    eventstart,
    eventstop,
    eventshorttext,
    eventdescription,
    posterpath,
    bannerpath,
    count
};

enum class eCeMenuTimersIT {
    menuitemx = 0,
    menuitemy,
    menuitemwidth,
    menuitemheight,
    numitem,
    month,
    year,
    channellogoexists,
    channelnumber,
    flagactive,
    flaginstant,
    flagvps,
    flagrecording,
    flagpending,
    hasposter,
    posterwidth,
    posterheight,
    hasbanner,
    bannerwidth,
    bannerheight,
    count
};

enum class eLeMenuRecordingsST {
    name = 0,
    epgname,
    shorttext,
    description,
    date,
    time,
    durationminutes,
    durationeventminutes,
    thumbnailpath,
    posterpath,
    count
};

enum class eLeMenuRecordingsIT {
    nummenuitem = 0,
    current,
    separator,
    isnew,
    percentseen,
    watched,
    cutted,
    folder,
    daynumeric,
    month,
    year,
    duration,
    durationhours,
    durationevent,
    durationeventhours,
    numrecordingsfolder,
    newrecordingsfolder,
    hasposterthumbnail,
    thumbnailwidth,
    thumbnailheight,
    hasposter,
    posterwidth,
    posterheight,
    count
};

enum class eCeMenuRecordingsST {
    name = 0,
    epgname,
    shorttext,
    description,
    date,
    time,
    durationminutes,
    durationeventminutes,
    thumbnailpath,
    posterpath,
    count
};

enum class eCeMenuRecordingsIT {
    menuitemx = 0,
    menuitemy,
    menuitemwidth,
    menuitemheight,
    numitem,
    isnew,
    percentseen,
    watched,
    cutted,
    folder,
    daynumeric,
    month,
    year,
    duration,
    durationhours,
    durationevent,
    durationeventhours,
    numrecordingsfolder,
    newrecordingsfolder,
    hasposterthumbnail,
    thumbnailwidth,
    thumbnailheight,
    hasposter,
    posterwidth,
    posterheight,
    count
};

/******************************************************************
* Tokens displaymenu detailed views
*******************************************************************/
enum class eScraperHeaderST {
    posterpath = 0,
    bannerpath,
    count
};

enum class eScraperHeaderIT {
    ismovie = 0,
    isseries,
    posteravailable,
    posterwidth,
    posterheight,
    banneravailable,
    bannerwidth,
    bannerheight,
    count
};

enum class eDmDetailedHeaderEpgST {
    title = (int)eScraperHeaderST::count,
    shorttext,
    start,
    stop,
    day,
    date,
    durationminutes,
    vps,
    channelname,
    channelid,
    epgpicpath,
    count
};

enum class eDmDetailedHeaderEpgIT {
    daynumeric = (int)eScraperHeaderIT::count,
    month,
    year,
    running,
    elapsed,
    duration,
    durationhours,
    channelnumber,
    channellogoexists,
    epgpicavailable,
    count
};

enum class eDmDetailedHeaderRecST {
    name = (int)eScraperHeaderST::count,
    epgname,
    shorttext,
    date,
    time,
    recimgpath,
    recchannelname,
    recchannelid,
    durationminutes,
    durationeventminutes,
    count
};

enum class eDmDetailedHeaderRecIT {
    daynumeric = (int)eScraperHeaderIT::count,
    month,
    year,
    duration,
    durationhours,
    durationevent,
    durationeventhours,
    recimgavailable,
    recchannelnumber,
    count
};

enum class eDmTabsIT {
    count = 0,
};

enum class eDmTabsST {
    currenttab = 0,
    prevtab,
    nexttab,
    count
};

enum class eDmTabsLT {
    title = 0,
    current,
    count
};

enum class eScraperST {
    movietitle = 0,
    movieoriginalTitle,
    movietagline,
    movieoverview,
    moviegenres,
    moviehomepage,
    moviereleasedate,
    moviepopularity,
    movievoteaverage,
    posterpath,
    fanartpath,
    moviecollectionName,
    collectionposterpath,
    collectionfanartpath,
    seriesname,
    seriesoverview,
    seriesfirstaired,
    seriesnetwork,
    seriesgenre,
    seriesrating,
    seriesstatus,
    episodetitle,
    episodefirstaired,
    episodegueststars,
    episodeoverview,
    episoderating,
    episodeimagepath,
    seasonposterpath,
    seriesposter1path,
    seriesposter2path,
    seriesposter3path,
    seriesfanart1path,
    seriesfanart2path,
    seriesfanart3path,
    seriesbanner1path,
    seriesbanner2path,
    seriesbanner3path,
    count
};

enum class eScraperIT {
    ismovie = 0,
    moviebudget,
    movierevenue,
    movieadult,
    movieruntime,
    isseries,
    posterwidth,
    posterheight,
    fanartwidth,
    fanartheight,
    movieiscollection,
    collectionposterwidth,
    collectionposterheight,
    collectionfanartwidth,
    collectionfanartheight,
    epgpicavailable,
    episodenumber,
    episodeseason,
    episodeimagewidth,
    episodeimageheight,
    seasonposterwidth,
    seasonposterheight,
    seriesposter1width,
    seriesposter1height,
    seriesposter2width,
    seriesposter2height,
    seriesposter3width,
    seriesposter3height,
    seriesfanart1width,
    seriesfanart1height,
    seriesfanart2width,
    seriesfanart2height,
    seriesfanart3width,
    seriesfanart3height,
    seriesbanner1width,
    seriesbanner1height,
    seriesbanner2width,
    seriesbanner2height,
    seriesbanner3width,
    seriesbanner3height,
    count
};

enum class eScraperLT {
    //actors
    name = 0,
    role,
    thumb,
    thumbwidth,
    thumbheight,
    count
};

enum class eDmDetailedEpgST {
    title = (int)eScraperST::count,
    shorttext,
    description,
    start,
    stop,
    day,
    date,
    durationminutes,
    vps,
    channelname,
    channelid,
    epgpic1path,
    epgpic2path,
    epgpic3path,
    count
};

enum class eDmDetailedEpgIT {
    daynumeric = (int)eScraperIT::count,
    month,
    year,
    running,
    elapsed,
    duration,
    durationhours,
    channelnumber,
    channellogoexists,
    hasreruns,
    epgpic1available,
    epgpic2available,
    epgpic3available,
    count
};

enum class eRerunsLT {
    title = 0,
    shorttext,
    date,
    day,
    start,
    stop,
    channelname,
    channelnumber,
    channelid,
    channellogoexists,
    count
};

enum class eDmDetailedRecST {
    name = (int)eScraperST::count,
    epgname,
    shorttext,
    description,
    day,
    date,
    time,
    durationminutes,
    durationeventminutes,
    recordingsize,
    recordingsizecutted,
    recordinglength,
    recordinglengthcutted,
    recordingbitrate,
    recordingformat,
    recchannelname,
    recchannelid,
    searchtimer,
    recimg1path,
    recimg2path,
    recimg3path,
    count
};

enum class eDmDetailedRecIT {
    daynumeric = (int)eScraperIT::count,
    month,
    year,
    duration,
    durationhours,
    durationevent,
    durationeventhours,
    cutted,
    recchannelnumber,
    recimg1avaialble,
    recimg2avaialble,
    recimg3avaialble,
    count
};

enum class eDmDetailedTextST {
    text = 0,
    count
};

enum class eDmSkinPreviewST {
    menuheader = 0,
    skinname,
    author,
    count
};

enum class eDmSkinPreviewFontsLT {
    name = 0,
    installed,
    count
};

enum class eDmSkinPreviewPluginsLT {
    name = 0,
    count
};

enum class eDmSkinPreviewScreenshotsLT {
    desc = 0,
    path,
    count
};
/******************************************************************
* Tokens DisplayReplay Viewelements
*******************************************************************/
enum class eDRRecTitleST {
    rectitle = 0,
    recsubtitle,
    recdate,
    rectime,
    count
};

enum class eDRRecInfoST {
    resolution = 0,
    aspect,
    count
};

enum class eDRRecInfoIT {
    screenwidth = 0,
    screenheight,
    isHD,
    isWideScreen,
    count
};

enum class eDRCurrentTimeST {
    reccurrent = 0,
    count
};

enum class eDRTotalTimeST {
    rectotal = 0,
    timeshifttotal,
    count
};

enum class eDRTotalTimeIT {
    timeshift = 0,
    count
};

enum class eDREndTimeST {
    recend = 0,
    count
};

enum class eDRProgressbarIT {
    current = 0,
    total,
    timeshift,
    timeshifttotal,
    count
};

enum class eDRCutmarksIT {
    timeshift = 0,
    count
};

enum class eDRCutmarksLT {
    position = 0,
    endposition,
    total,
    timeshifttotal,
    active,
    startmark,
    count
};

enum class eDRControlIconsIT {
    play = 0,
    pause,
    forward,
    forward1x,
    forward2x,
    forward3x,
    rewind,
    rewind1x,
    rewind2x,
    rewind3x,
    count
};

enum class eDRProgressModeonlyIT {
    current = 0,
    total,
    count
};

enum class eDRProgressModeonlyST {
    timecurrent = 0,
    timetotal,
    count
};

enum class eDRJumpST {
    jump = 0,
    count
};

enum class eDROnpauseST {
    name = (int)eScraperST::count,
    shorttext,
    description,
    date,
    time,
    durationminutes,
    durationeventminutes,
    count
};

enum class eDROnpauseIT {
    daynumeric = (int)eScraperIT::count,
    month,
    year,
    duration,
    durationhours,
    durationevent,
    durationeventhours,
    count
};

/******************************************************************
* Tokens DisplayVolume Viewelements
*******************************************************************/
enum class eDVVolumeIT {
    volume = 0,
    volpercent,
    maxvolume,
    mute,
    count
};

/******************************************************************
* Tokens DisplayTracks Viewelements
*******************************************************************/
enum class eDTBackgroundIT {
    numtracks = 0,
    count
};

enum class eDTHeaderIT {
    numtracks = 0,
    isstereo,
    isac3,
    count
};

enum class eDTHeaderST {
    title = 0,
    count
};

enum class eLeDisplayTracksIT {
    nummenuitem = 0,
    current,
    count
};

enum class eLeDisplayTracksST {
    title = 0,
    count
};
/******************************************************************
* Attributes
*******************************************************************/
enum class eCommonAttribs {
    x = 0,
    y,
    width, 
    height,
    debug,
    count
};

enum class eViewAttribs {
    fadetime = 0,
    shifttime, 
    shifttype,
    shiftmode,
    startx,
    starty,
    scaletvx,
    scaletvy,
    scaletvwidth,
    scaletvheight,
    orientation,
    debuggrid,
    hideroot,
    count
};

enum class eViewElementAttribs {
    delay = 0,
    fadetime,
    shifttime, 
    shifttype,
    shiftmode,
    startx,
    starty,
    mode,
    orientation,
    name,
    count
};

enum class eViewListAttribs {
    align = 0,
    menuitemwidth,
    determinatefont,
    numlistelements, 
    orientation,
    condition,
    count
};

enum class eAreaAttribs {
    layer = 0,
    transparency,
    mode,
    orientation, 
    scrollelement,
    scrollspeed,
    delay,
    background,
    name,
    scrollheight,
    count
};

enum class eAreaContainerAttribs {
    count = 0
};

/******************************************************************
* Functions
*******************************************************************/
enum class eFillAttribs {
    color = 0,
    count
};

enum class eDrawRectangleAttribs {
    align = 0,
    valign,
    color,
    name,
    animtype,
    animfreq,
    count
};

enum class eDrawEllipseAttribs {
    align = 0,
    valign,
    color,
    name,
    quadrant,
    animtype,
    animfreq,
    count
};

enum class eDrawSlopeAttribs {
    align = 0,
    valign,
    color,
    name,
    type,
    animtype,
    animfreq,
    count
};

enum class eDrawTextAttribs {
    align = 0,
    valign,
    color,
    font,
    fontsize,
    name,
    text,
    animtype,
    animfreq,
    count
};

enum class eDrawTextAttribsVertical {
    align = 0,
    valign,
    direction,
    color,
    font,
    fontsize,
    name,
    text,
    animtype,
    animfreq,
    count
};

enum class eDrawTextBoxAttribs {
    align = 0,
    valign,
    maxlines,
    floatwidth,
    floatheight,
    floatmode,
    color,
    font,
    fontsize,
    name,
    text,
    count
};

enum class eDrawImageAttribs {
    align = 0,
    valign,
    imagetype,
    name,
    cache,
    path,
    animtype,
    animfreq,
    count
};

enum class eLoopAttribs {
    columnwidth = 0,
    rowheight,
    name,
    orientation,
    overflow,
    maxitems,
    count
};

/******************************************************************
* Common Parameters
*******************************************************************/
enum class eViewElementMode {
    regular,
    light
};

enum class eShiftType {
    none = -1,
    left,
    right,
    top,
    bottom
};

enum class eShiftMode {
    linear,
    slowedDown
};

enum class eScrollMode {
    none,
    carriagereturn,
    forthandback
};

enum class eScrollSpeed {
    none,
    slow,
    medium,
    fast
};

enum class eOrientation {
    none,
    horizontal,
    vertical,
    absolute
};

enum class eAlign {
    left,
    center,
    right,
    top,
    bottom
};

enum class eAnimType {
    none,
    blink,
    animated
};

enum class eImageType {
    channellogo,
    seplogo,
    skinpart,
    menuicon,
    icon,
    image
};

enum class eOverflowType {
    none,
    wrap,
    cut
};

enum class eFloatMode {
    none = -1,
    topleft,
    topright
};

enum class eDirection {
    none = -1,
    bottomup,
    topdown
};


#endif //__DEFINITIONS_H
