aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlwinEsch <alwin.esch@web.de>2015-05-16 01:24:06 +0200
committerAchimTuran <wisler@kodi.tv>2015-07-19 18:54:28 +0200
commit1824cc84cc3cedb5ce5662e657f339fb686856ba (patch)
treea63ae03289d9c144509344b6c17b4f74d0bfba25
parentf3dac1284f2c72cc805c1f10aec0e345409c8bb0 (diff)
[adsp] Add audio dsp information to CGUIInfoManager
-rw-r--r--xbmc/GUIInfoManager.cpp39
-rw-r--r--xbmc/GUIInfoManager.h649
-rw-r--r--xbmc/cores/AudioEngine/DSPAddons/ActiveAEDSP.cpp113
-rw-r--r--xbmc/cores/AudioEngine/DSPAddons/ActiveAEDSP.h23
4 files changed, 822 insertions, 2 deletions
diff --git a/xbmc/GUIInfoManager.cpp b/xbmc/GUIInfoManager.cpp
index c4aa96c08f..3eff7cbec6 100644
--- a/xbmc/GUIInfoManager.cpp
+++ b/xbmc/GUIInfoManager.cpp
@@ -90,6 +90,7 @@
#include "music/MusicThumbLoader.h"
#include "video/VideoDatabase.h"
#include "cores/IPlayer.h"
+#include "cores/AudioEngine/DSPAddons/ActiveAEDSPProcess.h"
#include "cores/AudioEngine/Utils/AEUtil.h"
#include "cores/VideoRenderers/BaseRenderer.h"
#include "interfaces/info/InfoExpression.h"
@@ -296,7 +297,8 @@ const infomap system_labels[] = {{ "hasnetwork", SYSTEM_ETHERNET_LINK_ACT
{ "hasshutdown", SYSTEM_HAS_SHUTDOWN },
{ "haspvr", SYSTEM_HAS_PVR },
{ "startupwindow", SYSTEM_STARTUP_WINDOW },
- { "stereoscopicmode", SYSTEM_STEREOSCOPIC_MODE } };
+ { "stereoscopicmode", SYSTEM_STEREOSCOPIC_MODE },
+ { "hasadsp", SYSTEM_HAS_ADSP }};
const infomap system_param[] = {{ "hasalarm", SYSTEM_HAS_ALARM },
{ "hascoreid", SYSTEM_HAS_CORE_ID },
@@ -700,6 +702,20 @@ const infomap pvr[] = {{ "isrecording", PVR_IS_RECORDING
{ "actstreammux", PVR_ACTUAL_STREAM_MUX },
{ "actstreamprovidername", PVR_ACTUAL_STREAM_PROVIDER }};
+const infomap adsp[] = {{ "isactive", ADSP_IS_ACTIVE },
+ { "hasinputresample", ADSP_HAS_INPUT_RESAMPLE },
+ { "haspreprocess", ADSP_HAS_PRE_PROCESS },
+ { "hasmasterprocess", ADSP_HAS_MASTER_PROCESS },
+ { "haspostprocess", ADSP_HAS_POST_PROCESS },
+ { "hasoutputresample", ADSP_HAS_OUTPUT_RESAMPLE },
+ { "masteractive", ADSP_MASTER_ACTIVE },
+ { "activestreamtype", ADSP_ACTIVE_STREAM_TYPE },
+ { "detectedstreamtype", ADSP_DETECTED_STREAM_TYPE },
+ { "mastername", ADSP_MASTER_NAME },
+ { "masterinfo", ADSP_MASTER_INFO },
+ { "masterownicon", ADSP_MASTER_OWN_ICON },
+ { "masteroverrideicon", ADSP_MASTER_OVERRIDE_ICON }};
+
const infomap slideshow[] = {{ "ispaused", SLIDESHOW_ISPAUSED },
{ "isactive", SLIDESHOW_ISACTIVE },
{ "isvideo", SLIDESHOW_ISVIDEO },
@@ -1269,6 +1285,14 @@ int CGUIInfoManager::TranslateSingleString(const std::string &strCondition, bool
return pvr[i].val;
}
}
+ else if (cat.name == "adsp")
+ {
+ for (size_t i = 0; i < sizeof(adsp) / sizeof(infomap); i++)
+ {
+ if (prop.name == adsp[i].str)
+ return adsp[i].val;
+ }
+ }
}
else if (info.size() == 3 || info.size() == 4)
{
@@ -1467,6 +1491,14 @@ std::string CGUIInfoManager::GetLabel(int info, int contextWindow, std::string *
case PVR_ACTUAL_STREAM_PROVIDER:
g_PVRManager.TranslateCharInfo(info, strLabel);
break;
+ case ADSP_ACTIVE_STREAM_TYPE:
+ case ADSP_DETECTED_STREAM_TYPE:
+ case ADSP_MASTER_NAME:
+ case ADSP_MASTER_INFO:
+ case ADSP_MASTER_OWN_ICON:
+ case ADSP_MASTER_OVERRIDE_ICON:
+ ActiveAE::CActiveAEDSP::Get().TranslateCharInfo(info, strLabel);
+ break;
case WEATHER_CONDITIONS:
strLabel = g_weatherManager.GetInfo(WEATHER_LABEL_CURRENT_COND);
StringUtils::Trim(strLabel);
@@ -2380,6 +2412,8 @@ bool CGUIInfoManager::GetBool(int condition1, int contextWindow, const CGUIListI
bReturn = CProfilesManager::Get().GetMasterProfile().getLockMode() != LOCK_MODE_EVERYONE;
else if (condition == SYSTEM_HAS_PVR)
bReturn = true;
+ else if (condition == SYSTEM_HAS_ADSP)
+ bReturn = true;
else if (condition == SYSTEM_ISMASTER)
bReturn = CProfilesManager::Get().GetMasterProfile().getLockMode() != LOCK_MODE_EVERYONE && g_passwordManager.bMasterUser;
else if (condition == SYSTEM_ISFULLSCREEN)
@@ -2400,7 +2434,8 @@ bool CGUIInfoManager::GetBool(int condition1, int contextWindow, const CGUIListI
bReturn = g_weatherManager.IsFetched();
else if (condition >= PVR_CONDITIONS_START && condition <= PVR_CONDITIONS_END)
bReturn = g_PVRManager.TranslateBoolInfo(condition);
-
+ else if (condition >= ADSP_CONDITIONS_START && condition <= ADSP_CONDITIONS_END)
+ bReturn = ActiveAE::CActiveAEDSP::Get().TranslateBoolInfo(condition);
else if (condition == SYSTEM_INTERNET_STATE)
{
g_sysinfo.GetInfo(condition);
diff --git a/xbmc/GUIInfoManager.h b/xbmc/GUIInfoManager.h
index 8a412d813d..fe7e136f8b 100644
--- a/xbmc/GUIInfoManager.h
+++ b/xbmc/GUIInfoManager.h
@@ -53,6 +53,655 @@ namespace INFO
class InfoSingle;
}
+// conditions for window retrieval
+#define WINDOW_CONDITION_HAS_LIST_ITEMS 1
+#define WINDOW_CONDITION_IS_MEDIA_WINDOW 2
+
+#define PLAYER_HAS_MEDIA 1
+#define PLAYER_HAS_AUDIO 2
+#define PLAYER_HAS_VIDEO 3
+#define PLAYER_PLAYING 4
+#define PLAYER_PAUSED 5
+#define PLAYER_REWINDING 6
+#define PLAYER_REWINDING_2x 7
+#define PLAYER_REWINDING_4x 8
+#define PLAYER_REWINDING_8x 9
+#define PLAYER_REWINDING_16x 10
+#define PLAYER_REWINDING_32x 11
+#define PLAYER_FORWARDING 12
+#define PLAYER_FORWARDING_2x 13
+#define PLAYER_FORWARDING_4x 14
+#define PLAYER_FORWARDING_8x 15
+#define PLAYER_FORWARDING_16x 16
+#define PLAYER_FORWARDING_32x 17
+#define PLAYER_CAN_RECORD 18
+#define PLAYER_RECORDING 19
+#define PLAYER_CACHING 20
+#define PLAYER_DISPLAY_AFTER_SEEK 21
+#define PLAYER_PROGRESS 22
+#define PLAYER_SEEKBAR 23
+#define PLAYER_SEEKTIME 24
+#define PLAYER_SEEKING 25
+#define PLAYER_SHOWTIME 26
+#define PLAYER_TIME 27
+#define PLAYER_TIME_REMAINING 28
+#define PLAYER_DURATION 29
+#define PLAYER_SHOWCODEC 30
+#define PLAYER_SHOWINFO 31
+#define PLAYER_VOLUME 32
+#define PLAYER_MUTED 33
+#define PLAYER_HASDURATION 34
+#define PLAYER_CHAPTER 35
+#define PLAYER_CHAPTERCOUNT 36
+#define PLAYER_TIME_SPEED 37
+#define PLAYER_FINISH_TIME 38
+#define PLAYER_CACHELEVEL 39
+#define PLAYER_STAR_RATING 40
+#define PLAYER_CHAPTERNAME 41
+#define PLAYER_SUBTITLE_DELAY 42
+#define PLAYER_AUDIO_DELAY 43
+#define PLAYER_PASSTHROUGH 44
+#define PLAYER_PATH 45
+#define PLAYER_FILEPATH 46
+#define PLAYER_SEEKOFFSET 47
+#define PLAYER_PROGRESS_CACHE 48
+#define PLAYER_ITEM_ART 49
+#define PLAYER_CAN_PAUSE 50
+#define PLAYER_CAN_SEEK 51
+#define PLAYER_START_TIME 52
+#define PLAYER_TITLE 53
+#define PLAYER_ISINTERNETSTREAM 54
+#define PLAYER_FILENAME 55
+#define PLAYER_SEEKSTEPSIZE 56
+
+#define WEATHER_CONDITIONS 100
+#define WEATHER_TEMPERATURE 101
+#define WEATHER_LOCATION 102
+#define WEATHER_IS_FETCHED 103
+#define WEATHER_FANART_CODE 104
+#define WEATHER_PLUGIN 105
+
+#define SYSTEM_TEMPERATURE_UNITS 106
+#define SYSTEM_PROGRESS_BAR 107
+#define SYSTEM_LANGUAGE 108
+#define SYSTEM_TIME 110
+#define SYSTEM_DATE 111
+#define SYSTEM_CPU_TEMPERATURE 112
+#define SYSTEM_GPU_TEMPERATURE 113
+#define SYSTEM_FAN_SPEED 114
+#define SYSTEM_FREE_SPACE_C 115
+// #define SYSTEM_FREE_SPACE_D 116 //116 is reserved for space on D
+#define SYSTEM_FREE_SPACE_E 117
+#define SYSTEM_FREE_SPACE_F 118
+#define SYSTEM_FREE_SPACE_G 119
+#define SYSTEM_BUILD_VERSION 120
+#define SYSTEM_BUILD_DATE 121
+#define SYSTEM_ETHERNET_LINK_ACTIVE 122
+#define SYSTEM_FPS 123
+#define SYSTEM_ALWAYS_TRUE 125 // useful for <visible fade="10" start="hidden">true</visible>, to fade in a control
+#define SYSTEM_ALWAYS_FALSE 126 // used for <visible fade="10">false</visible>, to fade out a control (ie not particularly useful!)
+#define SYSTEM_MEDIA_DVD 127
+#define SYSTEM_DVDREADY 128
+#define SYSTEM_HAS_ALARM 129
+#define SYSTEM_SCREEN_MODE 132
+#define SYSTEM_SCREEN_WIDTH 133
+#define SYSTEM_SCREEN_HEIGHT 134
+#define SYSTEM_CURRENT_WINDOW 135
+#define SYSTEM_CURRENT_CONTROL 136
+#define SYSTEM_DVD_LABEL 138
+#define SYSTEM_HASLOCKS 140
+#define SYSTEM_ISMASTER 141
+#define SYSTEM_TRAYOPEN 142
+#define SYSTEM_SHOW_EXIT_BUTTON 143
+#define SYSTEM_ALARM_POS 144
+#define SYSTEM_LOGGEDON 145
+#define SYSTEM_PROFILENAME 146
+#define SYSTEM_PROFILETHUMB 147
+#define SYSTEM_HAS_LOGINSCREEN 148
+#define SYSTEM_HDD_SMART 150
+#define SYSTEM_HDD_TEMPERATURE 151
+#define SYSTEM_HDD_MODEL 152
+#define SYSTEM_HDD_SERIAL 153
+#define SYSTEM_HDD_FIRMWARE 154
+#define SYSTEM_HDD_PASSWORD 156
+#define SYSTEM_HDD_LOCKSTATE 157
+#define SYSTEM_HDD_LOCKKEY 158
+#define SYSTEM_INTERNET_STATE 159
+#define SYSTEM_ALARM_LESS_OR_EQUAL 180
+#define SYSTEM_PROFILECOUNT 181
+#define SYSTEM_ISFULLSCREEN 182
+#define SYSTEM_ISSTANDALONE 183
+#define SYSTEM_ISINHIBIT 184
+#define SYSTEM_HAS_SHUTDOWN 185
+#define SYSTEM_HAS_PVR 186
+#define SYSTEM_STARTUP_WINDOW 187
+#define SYSTEM_STEREOSCOPIC_MODE 188
+#define SYSTEM_BUILD_VERSION_SHORT 189
+
+#define NETWORK_IP_ADDRESS 190
+#define NETWORK_MAC_ADDRESS 191
+#define NETWORK_IS_DHCP 192
+#define NETWORK_LINK_STATE 193
+#define NETWORK_SUBNET_MASK 194
+#define NETWORK_GATEWAY_ADDRESS 195
+#define NETWORK_DNS1_ADDRESS 196
+#define NETWORK_DNS2_ADDRESS 197
+#define NETWORK_DHCP_ADDRESS 198
+
+#define MUSICPLAYER_TITLE 200
+#define MUSICPLAYER_ALBUM 201
+#define MUSICPLAYER_ARTIST 202
+#define MUSICPLAYER_GENRE 203
+#define MUSICPLAYER_YEAR 204
+#define MUSICPLAYER_DURATION 205
+#define MUSICPLAYER_TRACK_NUMBER 208
+#define MUSICPLAYER_COVER 210
+#define MUSICPLAYER_BITRATE 211
+#define MUSICPLAYER_PLAYLISTLEN 212
+#define MUSICPLAYER_PLAYLISTPOS 213
+#define MUSICPLAYER_CHANNELS 214
+#define MUSICPLAYER_BITSPERSAMPLE 215
+#define MUSICPLAYER_SAMPLERATE 216
+#define MUSICPLAYER_CODEC 217
+#define MUSICPLAYER_DISC_NUMBER 218
+#define MUSICPLAYER_RATING 219
+#define MUSICPLAYER_COMMENT 220
+#define MUSICPLAYER_LYRICS 221
+#define MUSICPLAYER_HASPREVIOUS 222
+#define MUSICPLAYER_HASNEXT 223
+#define MUSICPLAYER_EXISTS 224
+#define MUSICPLAYER_PLAYLISTPLAYING 225
+#define MUSICPLAYER_ALBUM_ARTIST 226
+#define MUSICPLAYER_PLAYCOUNT 227
+#define MUSICPLAYER_LASTPLAYED 228
+#define MUSICPLAYER_CHANNEL_NAME 229
+#define MUSICPLAYER_CHANNEL_NUMBER 230
+#define MUSICPLAYER_CHANNEL_GROUP 231
+#define MUSICPLAYER_SUB_CHANNEL_NUMBER 232
+#define MUSICPLAYER_CHANNEL_NUMBER_LBL 233
+#define MUSICPLAYER_CONTENT 234
+
+#define VIDEOPLAYER_TITLE 250
+#define VIDEOPLAYER_GENRE 251
+#define VIDEOPLAYER_DIRECTOR 252
+#define VIDEOPLAYER_YEAR 253
+#define VIDEOPLAYER_HASSUBTITLES 254
+#define VIDEOPLAYER_SUBTITLESENABLED 255
+#define VIDEOPLAYER_COVER 258
+#define VIDEOPLAYER_USING_OVERLAYS 259
+#define VIDEOPLAYER_ISFULLSCREEN 260
+#define VIDEOPLAYER_HASMENU 261
+#define VIDEOPLAYER_PLAYLISTLEN 262
+#define VIDEOPLAYER_PLAYLISTPOS 263
+#define VIDEOPLAYER_EVENT 264
+#define VIDEOPLAYER_ORIGINALTITLE 265
+#define VIDEOPLAYER_PLOT 266
+#define VIDEOPLAYER_PLOT_OUTLINE 267
+#define VIDEOPLAYER_EPISODE 268
+#define VIDEOPLAYER_SEASON 269
+#define VIDEOPLAYER_RATING 270
+#define VIDEOPLAYER_TVSHOW 271
+#define VIDEOPLAYER_PREMIERED 272
+#define VIDEOPLAYER_CONTENT 273
+#define VIDEOPLAYER_STUDIO 274
+#define VIDEOPLAYER_MPAA 275
+#define VIDEOPLAYER_CAST 276
+#define VIDEOPLAYER_CAST_AND_ROLE 277
+#define VIDEOPLAYER_ARTIST 278
+#define VIDEOPLAYER_ALBUM 279
+#define VIDEOPLAYER_WRITER 280
+#define VIDEOPLAYER_TAGLINE 281
+#define VIDEOPLAYER_HAS_INFO 282
+#define VIDEOPLAYER_TOP250 283
+#define VIDEOPLAYER_RATING_AND_VOTES 284
+#define VIDEOPLAYER_TRAILER 285
+#define VIDEOPLAYER_VIDEO_CODEC 286
+#define VIDEOPLAYER_VIDEO_RESOLUTION 287
+#define VIDEOPLAYER_AUDIO_CODEC 288
+#define VIDEOPLAYER_AUDIO_CHANNELS 289
+#define VIDEOPLAYER_VIDEO_ASPECT 290
+#define VIDEOPLAYER_HASTELETEXT 291
+#define VIDEOPLAYER_COUNTRY 292
+#define VIDEOPLAYER_PLAYCOUNT 293
+#define VIDEOPLAYER_LASTPLAYED 294
+
+#define VIDEOPLAYER_STARTTIME 295
+#define VIDEOPLAYER_ENDTIME 296
+#define VIDEOPLAYER_NEXT_TITLE 297
+#define VIDEOPLAYER_NEXT_GENRE 298
+#define VIDEOPLAYER_NEXT_PLOT 299
+#define VIDEOPLAYER_NEXT_PLOT_OUTLINE 300
+#define VIDEOPLAYER_NEXT_STARTTIME 301
+#define VIDEOPLAYER_NEXT_ENDTIME 302
+#define VIDEOPLAYER_NEXT_DURATION 303
+#define VIDEOPLAYER_CHANNEL_NAME 304
+#define VIDEOPLAYER_CHANNEL_NUMBER 305
+#define VIDEOPLAYER_CHANNEL_GROUP 306
+#define VIDEOPLAYER_PARENTAL_RATING 307
+#define VIDEOPLAYER_HAS_EPG 308
+#define VIDEOPLAYER_VOTES 309
+#define VIDEOPLAYER_IS_STEREOSCOPIC 310
+#define VIDEOPLAYER_STEREOSCOPIC_MODE 311
+#define VIDEOPLAYER_SUBTITLES_LANG 312
+#define VIDEOPLAYER_AUDIO_LANG 313
+#define VIDEOPLAYER_SUB_CHANNEL_NUMBER 314
+#define VIDEOPLAYER_CHANNEL_NUMBER_LBL 315
+#define VIDEOPLAYER_CAN_RESUME_LIVE_TV 316
+#define VIDEOPLAYER_IMDBNUMBER 317
+#define VIDEOPLAYER_EPISODENAME 318
+
+#define CONTAINER_CAN_FILTER 342
+#define CONTAINER_CAN_FILTERADVANCED 343
+#define CONTAINER_FILTERED 344
+
+#define CONTAINER_SCROLL_PREVIOUS 345 // NOTE: These 5 must be kept in this consecutive order
+#define CONTAINER_MOVE_PREVIOUS 346
+#define CONTAINER_STATIC 347
+#define CONTAINER_MOVE_NEXT 348
+#define CONTAINER_SCROLL_NEXT 349
+#define CONTAINER_ISUPDATING 350
+#define CONTAINER_HASFILES 351
+#define CONTAINER_HASFOLDERS 352
+#define CONTAINER_STACKED 353
+#define CONTAINER_FOLDERNAME 354
+#define CONTAINER_SCROLLING 355
+#define CONTAINER_PLUGINNAME 356
+#define CONTAINER_PROPERTY 357
+#define CONTAINER_SORT_DIRECTION 358
+#define CONTAINER_NUM_ITEMS 359
+#define CONTAINER_FOLDERPATH 360
+#define CONTAINER_CONTENT 361
+#define CONTAINER_HAS_THUMB 362
+#define CONTAINER_SORT_METHOD 363
+#define CONTAINER_CURRENT_ITEM 364
+#define CONTAINER_ART 365
+#define CONTAINER_HAS_FOCUS 366
+#define CONTAINER_ROW 367
+#define CONTAINER_COLUMN 368
+#define CONTAINER_POSITION 369
+#define CONTAINER_VIEWMODE 370
+#define CONTAINER_HAS_NEXT 371
+#define CONTAINER_HAS_PREVIOUS 372
+#define CONTAINER_SUBITEM 373
+#define CONTAINER_NUM_PAGES 374
+#define CONTAINER_CURRENT_PAGE 375
+#define CONTAINER_SHOWPLOT 376
+#define CONTAINER_TOTALTIME 377
+
+#define MUSICPM_ENABLED 381
+#define MUSICPM_SONGSPLAYED 382
+#define MUSICPM_MATCHINGSONGS 383
+#define MUSICPM_MATCHINGSONGSPICKED 384
+#define MUSICPM_MATCHINGSONGSLEFT 385
+#define MUSICPM_RELAXEDSONGSPICKED 386
+#define MUSICPM_RANDOMSONGSPICKED 387
+
+#define PLAYLIST_LENGTH 390
+#define PLAYLIST_POSITION 391
+#define PLAYLIST_RANDOM 392
+#define PLAYLIST_REPEAT 393
+#define PLAYLIST_ISRANDOM 394
+#define PLAYLIST_ISREPEAT 395
+#define PLAYLIST_ISREPEATONE 396
+
+#define VISUALISATION_LOCKED 400
+#define VISUALISATION_PRESET 401
+#define VISUALISATION_NAME 402
+#define VISUALISATION_ENABLED 403
+
+#define STRING_IS_EMPTY 410
+#define STRING_COMPARE 411
+#define STRING_STR 412
+#define INTEGER_GREATER_THAN 413
+#define STRING_STR_LEFT 414
+#define STRING_STR_RIGHT 415
+
+#define SKIN_BOOL 600
+#define SKIN_STRING 601
+#define SKIN_HAS_MUSIC_OVERLAY 602
+#define SKIN_HAS_VIDEO_OVERLAY 603
+#define SKIN_THEME 604
+#define SKIN_COLOUR_THEME 605
+#define SKIN_HAS_THEME 606
+#define SKIN_ASPECT_RATIO 607
+
+#define SYSTEM_TOTAL_MEMORY 644
+#define SYSTEM_CPU_USAGE 645
+#define SYSTEM_USED_MEMORY_PERCENT 646
+#define SYSTEM_USED_MEMORY 647
+#define SYSTEM_FREE_MEMORY 648
+#define SYSTEM_FREE_MEMORY_PERCENT 649
+#define SYSTEM_UPTIME 654
+#define SYSTEM_TOTALUPTIME 655
+#define SYSTEM_CPUFREQUENCY 656
+#define SYSTEM_SCREEN_RESOLUTION 659
+#define SYSTEM_VIDEO_ENCODER_INFO 660
+#define SYSTEM_OS_VERSION_INFO 667
+#define SYSTEM_FREE_SPACE 679
+#define SYSTEM_USED_SPACE 680
+#define SYSTEM_TOTAL_SPACE 681
+#define SYSTEM_USED_SPACE_PERCENT 682
+#define SYSTEM_FREE_SPACE_PERCENT 683
+#define SYSTEM_DVD_TRAY_STATE 700
+#define SYSTEM_GET_BOOL 704
+#define SYSTEM_GET_CORE_USAGE 705
+#define SYSTEM_HAS_CORE_ID 706
+#define SYSTEM_RENDER_VENDOR 707
+#define SYSTEM_RENDER_RENDERER 708
+#define SYSTEM_RENDER_VERSION 709
+#define SYSTEM_SETTING 710
+#define SYSTEM_HAS_ADDON 711
+#define SYSTEM_ADDON_TITLE 712
+#define SYSTEM_ADDON_ICON 713
+#define SYSTEM_BATTERY_LEVEL 714
+#define SYSTEM_IDLE_TIME 715
+#define SYSTEM_FRIENDLY_NAME 716
+#define SYSTEM_SCREENSAVER_ACTIVE 717
+#define SYSTEM_ADDON_VERSION 718
+#define SYSTEM_DPMS_ACTIVE 719
+
+#define LIBRARY_HAS_MUSIC 720
+#define LIBRARY_HAS_VIDEO 721
+#define LIBRARY_HAS_MOVIES 722
+#define LIBRARY_HAS_MOVIE_SETS 723
+#define LIBRARY_HAS_TVSHOWS 724
+#define LIBRARY_HAS_MUSICVIDEOS 725
+#define LIBRARY_HAS_SINGLES 726
+#define LIBRARY_HAS_COMPILATIONS 727
+#define LIBRARY_IS_SCANNING 728
+#define LIBRARY_IS_SCANNING_VIDEO 729
+#define LIBRARY_IS_SCANNING_MUSIC 730
+
+#define SYSTEM_PLATFORM_LINUX 741
+#define SYSTEM_PLATFORM_WINDOWS 742
+#define SYSTEM_PLATFORM_DARWIN 743
+#define SYSTEM_PLATFORM_DARWIN_OSX 744
+#define SYSTEM_PLATFORM_DARWIN_IOS 745
+#define SYSTEM_PLATFORM_DARWIN_ATV2 746
+#define SYSTEM_PLATFORM_ANDROID 747
+#define SYSTEM_PLATFORM_LINUX_RASPBERRY_PI 748
+
+#define SYSTEM_CAN_POWERDOWN 750
+#define SYSTEM_CAN_SUSPEND 751
+#define SYSTEM_CAN_HIBERNATE 752
+#define SYSTEM_CAN_REBOOT 753
+
+#define SLIDESHOW_ISPAUSED 800
+#define SLIDESHOW_ISRANDOM 801
+#define SLIDESHOW_ISACTIVE 802
+#define SLIDESHOW_ISVIDEO 803
+
+#define SLIDE_INFO_START 900
+#define SLIDE_INFO_END 980
+
+#define FANART_COLOR1 1000
+#define FANART_COLOR2 1001
+#define FANART_COLOR3 1002
+#define FANART_IMAGE 1003
+
+#define SYSTEM_PROFILEAUTOLOGIN 1004
+#define SYSTEM_HAS_ADSP 1005
+
+#define PVR_CONDITIONS_START 1100
+#define PVR_IS_RECORDING (PVR_CONDITIONS_START)
+#define PVR_HAS_TIMER (PVR_CONDITIONS_START + 1)
+#define PVR_HAS_NONRECORDING_TIMER (PVR_CONDITIONS_START + 2)
+#define PVR_HAS_EPG (PVR_CONDITIONS_START + 3)
+#define PVR_HAS_TXT (PVR_CONDITIONS_START + 4)
+#define PVR_HAS_DIRECTOR (PVR_CONDITIONS_START + 5)
+#define PVR_IS_PLAYING_TV (PVR_CONDITIONS_START + 6)
+#define PVR_IS_PLAYING_RADIO (PVR_CONDITIONS_START + 7)
+#define PVR_IS_PLAYING_RECORDING (PVR_CONDITIONS_START + 8)
+#define PVR_ACTUAL_STREAM_ENCRYPTED (PVR_CONDITIONS_START + 9)
+#define PVR_HAS_TV_CHANNELS (PVR_CONDITIONS_START + 10)
+#define PVR_HAS_RADIO_CHANNELS (PVR_CONDITIONS_START + 11)
+#define PVR_CONDITIONS_END PVR_HAS_RADIO_CHANNELS
+
+#define PVR_STRINGS_START 1200
+#define PVR_NEXT_RECORDING_CHANNEL (PVR_STRINGS_START)
+#define PVR_NEXT_RECORDING_CHAN_ICO (PVR_STRINGS_START + 1)
+#define PVR_NEXT_RECORDING_DATETIME (PVR_STRINGS_START + 2)
+#define PVR_NEXT_RECORDING_TITLE (PVR_STRINGS_START + 3)
+#define PVR_NOW_RECORDING_CHANNEL (PVR_STRINGS_START + 4)
+#define PVR_NOW_RECORDING_CHAN_ICO (PVR_STRINGS_START + 5)
+#define PVR_NOW_RECORDING_DATETIME (PVR_STRINGS_START + 6)
+#define PVR_NOW_RECORDING_TITLE (PVR_STRINGS_START + 7)
+#define PVR_BACKEND_NAME (PVR_STRINGS_START + 8)
+#define PVR_BACKEND_VERSION (PVR_STRINGS_START + 9)
+#define PVR_BACKEND_HOST (PVR_STRINGS_START + 10)
+#define PVR_BACKEND_DISKSPACE (PVR_STRINGS_START + 11)
+#define PVR_BACKEND_CHANNELS (PVR_STRINGS_START + 12)
+#define PVR_BACKEND_TIMERS (PVR_STRINGS_START + 13)
+#define PVR_BACKEND_RECORDINGS (PVR_STRINGS_START + 14)
+#define PVR_BACKEND_DELETED_RECORDINGS (PVR_STRINGS_START + 15)
+#define PVR_BACKEND_NUMBER (PVR_STRINGS_START + 16)
+#define PVR_TOTAL_DISKSPACE (PVR_STRINGS_START + 17)
+#define PVR_NEXT_TIMER (PVR_STRINGS_START + 18)
+#define PVR_PLAYING_DURATION (PVR_STRINGS_START + 19)
+#define PVR_PLAYING_TIME (PVR_STRINGS_START + 20)
+#define PVR_PLAYING_PROGRESS (PVR_STRINGS_START + 21)
+#define PVR_ACTUAL_STREAM_CLIENT (PVR_STRINGS_START + 22)
+#define PVR_ACTUAL_STREAM_DEVICE (PVR_STRINGS_START + 23)
+#define PVR_ACTUAL_STREAM_STATUS (PVR_STRINGS_START + 24)
+#define PVR_ACTUAL_STREAM_SIG (PVR_STRINGS_START + 25)
+#define PVR_ACTUAL_STREAM_SNR (PVR_STRINGS_START + 26)
+#define PVR_ACTUAL_STREAM_SIG_PROGR (PVR_STRINGS_START + 27)
+#define PVR_ACTUAL_STREAM_SNR_PROGR (PVR_STRINGS_START + 28)
+#define PVR_ACTUAL_STREAM_BER (PVR_STRINGS_START + 29)
+#define PVR_ACTUAL_STREAM_UNC (PVR_STRINGS_START + 30)
+#define PVR_ACTUAL_STREAM_VIDEO_BR (PVR_STRINGS_START + 31)
+#define PVR_ACTUAL_STREAM_AUDIO_BR (PVR_STRINGS_START + 32)
+#define PVR_ACTUAL_STREAM_DOLBY_BR (PVR_STRINGS_START + 33)
+#define PVR_ACTUAL_STREAM_CRYPTION (PVR_STRINGS_START + 34)
+#define PVR_ACTUAL_STREAM_SERVICE (PVR_STRINGS_START + 35)
+#define PVR_ACTUAL_STREAM_MUX (PVR_STRINGS_START + 36)
+#define PVR_ACTUAL_STREAM_PROVIDER (PVR_STRINGS_START + 37)
+#define PVR_BACKEND_DISKSPACE_PROGR (PVR_STRINGS_START + 38)
+#define PVR_STRINGS_END PVR_ACTUAL_STREAM_PROVIDER
+
+#define ADSP_CONDITIONS_START 1300
+#define ADSP_IS_ACTIVE (ADSP_CONDITIONS_START)
+#define ADSP_HAS_INPUT_RESAMPLE (ADSP_CONDITIONS_START + 1)
+#define ADSP_HAS_PRE_PROCESS (ADSP_CONDITIONS_START + 2)
+#define ADSP_HAS_MASTER_PROCESS (ADSP_CONDITIONS_START + 3)
+#define ADSP_HAS_POST_PROCESS (ADSP_CONDITIONS_START + 4)
+#define ADSP_HAS_OUTPUT_RESAMPLE (ADSP_CONDITIONS_START + 5)
+#define ADSP_MASTER_ACTIVE (ADSP_CONDITIONS_START + 6)
+#define ADSP_CONDITIONS_END ADSP_MASTER_ACTIVE
+
+#define ADSP_STRINGS_START 1350
+#define ADSP_ACTIVE_STREAM_TYPE (ADSP_STRINGS_START)
+#define ADSP_DETECTED_STREAM_TYPE (ADSP_STRINGS_START + 1)
+#define ADSP_MASTER_NAME (ADSP_STRINGS_START + 7)
+#define ADSP_MASTER_INFO (ADSP_STRINGS_START + 8)
+#define ADSP_MASTER_OWN_ICON (ADSP_STRINGS_START + 9)
+#define ADSP_MASTER_OVERRIDE_ICON (ADSP_STRINGS_START + 10)
+#define ADSP_STRINGS_END ADSP_MASTER_OVERRIDE_ICON
+
+#define WINDOW_PROPERTY 9993
+#define WINDOW_IS_TOPMOST 9994
+#define WINDOW_IS_VISIBLE 9995
+#define WINDOW_NEXT 9996
+#define WINDOW_PREVIOUS 9997
+#define WINDOW_IS_MEDIA 9998
+#define WINDOW_IS_ACTIVE 9999
+
+#define CONTROL_GET_LABEL 29996
+#define CONTROL_IS_ENABLED 29997
+#define CONTROL_IS_VISIBLE 29998
+#define CONTROL_GROUP_HAS_FOCUS 29999
+#define CONTROL_HAS_FOCUS 30000
+
+#define LISTITEM_START 35000
+#define LISTITEM_THUMB (LISTITEM_START)
+#define LISTITEM_LABEL (LISTITEM_START + 1)
+#define LISTITEM_TITLE (LISTITEM_START + 2)
+#define LISTITEM_TRACKNUMBER (LISTITEM_START + 3)
+#define LISTITEM_ARTIST (LISTITEM_START + 4)
+#define LISTITEM_ALBUM (LISTITEM_START + 5)
+#define LISTITEM_YEAR (LISTITEM_START + 6)
+#define LISTITEM_GENRE (LISTITEM_START + 7)
+#define LISTITEM_ICON (LISTITEM_START + 8)
+#define LISTITEM_DIRECTOR (LISTITEM_START + 9)
+#define LISTITEM_OVERLAY (LISTITEM_START + 10)
+#define LISTITEM_LABEL2 (LISTITEM_START + 11)
+#define LISTITEM_FILENAME (LISTITEM_START + 12)
+#define LISTITEM_DATE (LISTITEM_START + 13)
+#define LISTITEM_SIZE (LISTITEM_START + 14)
+#define LISTITEM_RATING (LISTITEM_START + 15)
+#define LISTITEM_PROGRAM_COUNT (LISTITEM_START + 16)
+#define LISTITEM_DURATION (LISTITEM_START + 17)
+#define LISTITEM_ISPLAYING (LISTITEM_START + 18)
+#define LISTITEM_ISSELECTED (LISTITEM_START + 19)
+#define LISTITEM_PLOT (LISTITEM_START + 20)
+#define LISTITEM_PLOT_OUTLINE (LISTITEM_START + 21)
+#define LISTITEM_EPISODE (LISTITEM_START + 22)
+#define LISTITEM_SEASON (LISTITEM_START + 23)
+#define LISTITEM_TVSHOW (LISTITEM_START + 24)
+#define LISTITEM_PREMIERED (LISTITEM_START + 25)
+#define LISTITEM_COMMENT (LISTITEM_START + 26)
+#define LISTITEM_ACTUAL_ICON (LISTITEM_START + 27)
+#define LISTITEM_PATH (LISTITEM_START + 28)
+#define LISTITEM_PICTURE_PATH (LISTITEM_START + 29)
+// the ordering of LISTITEM_PICTURE_* is important as they're mapped to SLIDE_* items in GUIInfoManager.cpp
+#define LISTITEM_PICTURE_START (LISTITEM_START + 30)
+#define LISTITEM_PICTURE_RESOLUTION (LISTITEM_PICTURE_START) // => SLIDE_RESOLUTION
+#define LISTITEM_PICTURE_LONGDATE (LISTITEM_START + 31) // => SLIDE_EXIF_LONG_DATE
+#define LISTITEM_PICTURE_LONGDATETIME (LISTITEM_START + 32) // => SLIDE_EXIF_LONG_DATE_TIME
+#define LISTITEM_PICTURE_DATE (LISTITEM_START + 33) // => SLIDE_EXIF_DATE
+#define LISTITEM_PICTURE_DATETIME (LISTITEM_START + 34) // => SLIDE_EXIF_DATE_TIME
+#define LISTITEM_PICTURE_COMMENT (LISTITEM_START + 35) // => SLIDE_COMMENT
+#define LISTITEM_PICTURE_CAPTION (LISTITEM_START + 36) // => SLIDE_IPTC_CAPTION
+#define LISTITEM_PICTURE_DESC (LISTITEM_START + 37) // => SLIDE_EXIF_DESCRIPTION
+#define LISTITEM_PICTURE_KEYWORDS (LISTITEM_START + 38) // => SLIDE_IPTC_KEYWORDS
+#define LISTITEM_PICTURE_CAM_MAKE (LISTITEM_START + 39) // => SLIDE_EXIF_CAMERA_MAKE
+#define LISTITEM_PICTURE_CAM_MODEL (LISTITEM_START + 40) // => SLIDE_EXIF_CAMERA_MODEL
+#define LISTITEM_PICTURE_APERTURE (LISTITEM_START + 41) // => SLIDE_EXIF_APERTURE
+#define LISTITEM_PICTURE_FOCAL_LEN (LISTITEM_START + 42) // => SLIDE_EXIF_FOCAL_LENGTH
+#define LISTITEM_PICTURE_FOCUS_DIST (LISTITEM_START + 43) // => SLIDE_EXIF_FOCUS_DIST
+#define LISTITEM_PICTURE_EXP_MODE (LISTITEM_START + 44) // => SLIDE_EXIF_EXPOSURE_MODE
+#define LISTITEM_PICTURE_EXP_TIME (LISTITEM_START + 45) // => SLIDE_EXIF_EXPOSURE_TIME
+#define LISTITEM_PICTURE_ISO (LISTITEM_START + 46) // => SLIDE_EXIF_ISO_EQUIV
+#define LISTITEM_PICTURE_AUTHOR (LISTITEM_START + 47) // => SLIDE_IPTC_AUTHOR
+#define LISTITEM_PICTURE_BYLINE (LISTITEM_START + 48) // => SLIDE_IPTC_BYLINE
+#define LISTITEM_PICTURE_BYLINE_TITLE (LISTITEM_START + 49) // => SLIDE_IPTC_BYLINE_TITLE
+#define LISTITEM_PICTURE_CATEGORY (LISTITEM_START + 50) // => SLIDE_IPTC_CATEGORY
+#define LISTITEM_PICTURE_CCD_WIDTH (LISTITEM_START + 51) // => SLIDE_EXIF_CCD_WIDTH
+#define LISTITEM_PICTURE_CITY (LISTITEM_START + 52) // => SLIDE_IPTC_CITY
+#define LISTITEM_PICTURE_URGENCY (LISTITEM_START + 53) // => SLIDE_IPTC_URGENCY
+#define LISTITEM_PICTURE_COPYRIGHT_NOTICE (LISTITEM_START + 54) // => SLIDE_IPTC_COPYRIGHT_NOTICE
+#define LISTITEM_PICTURE_COUNTRY (LISTITEM_START + 55) // => SLIDE_IPTC_COUNTRY
+#define LISTITEM_PICTURE_COUNTRY_CODE (LISTITEM_START + 56) // => SLIDE_IPTC_COUNTRY_CODE
+#define LISTITEM_PICTURE_CREDIT (LISTITEM_START + 57) // => SLIDE_IPTC_CREDIT
+#define LISTITEM_PICTURE_IPTCDATE (LISTITEM_START + 58) // => SLIDE_IPTC_DATE
+#define LISTITEM_PICTURE_DIGITAL_ZOOM (LISTITEM_START + 59) // => SLIDE_EXIF_DIGITAL_ZOOM
+#define LISTITEM_PICTURE_EXPOSURE (LISTITEM_START + 60) // => SLIDE_EXIF_EXPOSURE
+#define LISTITEM_PICTURE_EXPOSURE_BIAS (LISTITEM_START + 61) // => SLIDE_EXIF_EXPOSURE_BIAS
+#define LISTITEM_PICTURE_FLASH_USED (LISTITEM_START + 62) // => SLIDE_EXIF_FLASH_USED
+#define LISTITEM_PICTURE_HEADLINE (LISTITEM_START + 63) // => SLIDE_IPTC_HEADLINE
+#define LISTITEM_PICTURE_COLOUR (LISTITEM_START + 64) // => SLIDE_COLOUR
+#define LISTITEM_PICTURE_LIGHT_SOURCE (LISTITEM_START + 65) // => SLIDE_EXIF_LIGHT_SOURCE
+#define LISTITEM_PICTURE_METERING_MODE (LISTITEM_START + 66) // => SLIDE_EXIF_METERING_MODE
+#define LISTITEM_PICTURE_OBJECT_NAME (LISTITEM_START + 67) // => SLIDE_IPTC_OBJECT_NAME
+#define LISTITEM_PICTURE_ORIENTATION (LISTITEM_START + 68) // => SLIDE_EXIF_ORIENTATION
+#define LISTITEM_PICTURE_PROCESS (LISTITEM_START + 69) // => SLIDE_PROCESS
+#define LISTITEM_PICTURE_REF_SERVICE (LISTITEM_START + 70) // => SLIDE_IPTC_REF_SERVICE
+#define LISTITEM_PICTURE_SOURCE (LISTITEM_START + 71) // => SLIDE_IPTC_SOURCE
+#define LISTITEM_PICTURE_SPEC_INSTR (LISTITEM_START + 72) // => SLIDE_IPTC_SPEC_INSTR
+#define LISTITEM_PICTURE_STATE (LISTITEM_START + 73) // => SLIDE_IPTC_STATE
+#define LISTITEM_PICTURE_SUP_CATEGORIES (LISTITEM_START + 74) // => SLIDE_IPTC_SUP_CATEGORIES
+#define LISTITEM_PICTURE_TX_REFERENCE (LISTITEM_START + 75) // => SLIDE_IPTC_TX_REFERENCE
+#define LISTITEM_PICTURE_WHITE_BALANCE (LISTITEM_START + 76) // => SLIDE_EXIF_WHITE_BALANCE
+#define LISTITEM_PICTURE_IMAGETYPE (LISTITEM_START + 77) // => SLIDE_IPTC_IMAGETYPE
+#define LISTITEM_PICTURE_SUBLOCATION (LISTITEM_START + 78) // => SLIDE_IPTC_SUBLOCATION
+#define LISTITEM_PICTURE_TIMECREATED (LISTITEM_START + 79) // => SLIDE_IPTC_TIMECREATED
+#define LISTITEM_PICTURE_GPS_LAT (LISTITEM_START + 80) // => SLIDE_EXIF_GPS_LATITUDE
+#define LISTITEM_PICTURE_GPS_LON (LISTITEM_START + 81) // => SLIDE_EXIF_GPS_LONGITUDE
+#define LISTITEM_PICTURE_GPS_ALT (LISTITEM_START + 82) // => SLIDE_EXIF_GPS_ALTITUDE
+#define LISTITEM_PICTURE_END (LISTITEM_PICTURE_GPS_ALT)
+#define LISTITEM_STUDIO (LISTITEM_START + 83)
+#define LISTITEM_MPAA (LISTITEM_START + 84)
+#define LISTITEM_CAST (LISTITEM_START + 85)
+#define LISTITEM_CAST_AND_ROLE (LISTITEM_START + 86)
+#define LISTITEM_WRITER (LISTITEM_START + 87)
+#define LISTITEM_TAGLINE (LISTITEM_START + 88)
+#define LISTITEM_TOP250 (LISTITEM_START + 89)
+#define LISTITEM_RATING_AND_VOTES (LISTITEM_START + 90)
+#define LISTITEM_TRAILER (LISTITEM_START + 91)
+#define LISTITEM_STAR_RATING (LISTITEM_START + 92)
+#define LISTITEM_FILENAME_AND_PATH (LISTITEM_START + 93)
+#define LISTITEM_SORT_LETTER (LISTITEM_START + 94)
+#define LISTITEM_ALBUM_ARTIST (LISTITEM_START + 95)
+#define LISTITEM_FOLDERNAME (LISTITEM_START + 96)
+#define LISTITEM_VIDEO_CODEC (LISTITEM_START + 97)
+#define LISTITEM_VIDEO_RESOLUTION (LISTITEM_START + 98)
+#define LISTITEM_VIDEO_ASPECT (LISTITEM_START + 99)
+#define LISTITEM_AUDIO_CODEC (LISTITEM_START + 100)
+#define LISTITEM_AUDIO_CHANNELS (LISTITEM_START + 101)
+#define LISTITEM_AUDIO_LANGUAGE (LISTITEM_START + 102)
+#define LISTITEM_SUBTITLE_LANGUAGE (LISTITEM_START + 103)
+#define LISTITEM_IS_FOLDER (LISTITEM_START + 104)
+#define LISTITEM_ORIGINALTITLE (LISTITEM_START + 105)
+#define LISTITEM_COUNTRY (LISTITEM_START + 106)
+#define LISTITEM_PLAYCOUNT (LISTITEM_START + 107)
+#define LISTITEM_LASTPLAYED (LISTITEM_START + 108)
+#define LISTITEM_FOLDERPATH (LISTITEM_START + 109)
+#define LISTITEM_DISC_NUMBER (LISTITEM_START + 110)
+#define LISTITEM_FILE_EXTENSION (LISTITEM_START + 111)
+#define LISTITEM_IS_RESUMABLE (LISTITEM_START + 112)
+#define LISTITEM_PERCENT_PLAYED (LISTITEM_START + 113)
+#define LISTITEM_DATE_ADDED (LISTITEM_START + 114)
+#define LISTITEM_DBTYPE (LISTITEM_START + 115)
+#define LISTITEM_DBID (LISTITEM_START + 116)
+
+#define LISTITEM_STARTTIME (LISTITEM_START + 117)
+#define LISTITEM_ENDTIME (LISTITEM_START + 118)
+#define LISTITEM_STARTDATE (LISTITEM_START + 119)
+#define LISTITEM_ENDDATE (LISTITEM_START + 120)
+#define LISTITEM_NEXT_TITLE (LISTITEM_START + 121)
+#define LISTITEM_NEXT_GENRE (LISTITEM_START + 122)
+#define LISTITEM_NEXT_PLOT (LISTITEM_START + 123)
+#define LISTITEM_NEXT_PLOT_OUTLINE (LISTITEM_START + 124)
+#define LISTITEM_NEXT_STARTTIME (LISTITEM_START + 125)
+#define LISTITEM_NEXT_ENDTIME (LISTITEM_START + 126)
+#define LISTITEM_NEXT_STARTDATE (LISTITEM_START + 127)
+#define LISTITEM_NEXT_ENDDATE (LISTITEM_START + 128)
+#define LISTITEM_NEXT_DURATION (LISTITEM_START + 129)
+#define LISTITEM_CHANNEL_NAME (LISTITEM_START + 130)
+#define LISTITEM_CHANNEL_NUMBER (LISTITEM_START + 131)
+#define LISTITEM_CHANNEL_GROUP (LISTITEM_START + 132)
+#define LISTITEM_HASTIMER (LISTITEM_START + 133)
+#define LISTITEM_ISRECORDING (LISTITEM_START + 134)
+#define LISTITEM_ISENCRYPTED (LISTITEM_START + 135)
+#define LISTITEM_PARENTALRATING (LISTITEM_START + 136)
+#define LISTITEM_PROGRESS (LISTITEM_START + 137)
+#define LISTITEM_HAS_EPG (LISTITEM_START + 138)
+#define LISTITEM_VOTES (LISTITEM_START + 139)
+#define LISTITEM_STEREOSCOPIC_MODE (LISTITEM_START + 140)
+#define LISTITEM_IS_STEREOSCOPIC (LISTITEM_START + 141)
+#define LISTITEM_INPROGRESS (LISTITEM_START + 142)
+#define LISTITEM_HASRECORDING (LISTITEM_START + 143)
+#define LISTITEM_SUB_CHANNEL_NUMBER (LISTITEM_START + 144)
+#define LISTITEM_CHANNEL_NUMBER_LBL (LISTITEM_START + 145)
+#define LISTITEM_IMDBNUMBER (LISTITEM_START + 146)
+#define LISTITEM_EPISODENAME (LISTITEM_START + 147)
+#define LISTITEM_IS_COLLECTION (LISTITEM_START + 148)
+
+#define LISTITEM_PROPERTY_START (LISTITEM_START + 200)
+#define LISTITEM_PROPERTY_END (LISTITEM_PROPERTY_START + 1000)
+#define LISTITEM_END (LISTITEM_PROPERTY_END)
+
+#define MUSICPLAYER_PROPERTY_OFFSET 800 // 100 id's reserved for musicplayer props.
+#define LISTITEM_ART_OFFSET 900 // 100 id's reserved for listitem art.
+
+#define CONDITIONAL_LABEL_START LISTITEM_END + 1 // 36001
+#define CONDITIONAL_LABEL_END 37000
+
+// the multiple information vector
+#define MULTI_INFO_START 40000
+#define MULTI_INFO_END 99999
+#define COMBINED_VALUES_START 100000
+
// forward
class CGUIWindow;
namespace EPG
diff --git a/xbmc/cores/AudioEngine/DSPAddons/ActiveAEDSP.cpp b/xbmc/cores/AudioEngine/DSPAddons/ActiveAEDSP.cpp
index 6448fcc48d..0f9fef4598 100644
--- a/xbmc/cores/AudioEngine/DSPAddons/ActiveAEDSP.cpp
+++ b/xbmc/cores/AudioEngine/DSPAddons/ActiveAEDSP.cpp
@@ -333,6 +333,97 @@ int CActiveAEDSP::GetAudioDSPAddonId(const AddonPtr addon) const
}
//@}
+/*! @name GUIInfoManager calls */
+//@{
+bool CActiveAEDSP::TranslateBoolInfo(DWORD dwInfo) const
+{
+ bool bReturn(false);
+
+ CSingleLock lock(m_critSection);
+
+ if (!IsProcessing() || !m_usedProcesses[m_activeProcessId])
+ return bReturn;
+
+ switch (dwInfo)
+ {
+ case ADSP_IS_ACTIVE:
+ bReturn = true;
+ break;
+ case ADSP_HAS_INPUT_RESAMPLE:
+ bReturn = m_usedProcesses[m_activeProcessId]->HasActiveModes(AE_DSP_MODE_TYPE_INPUT_RESAMPLE);
+ break;
+ case ADSP_HAS_PRE_PROCESS:
+ bReturn = m_usedProcesses[m_activeProcessId]->HasActiveModes(AE_DSP_MODE_TYPE_PRE_PROCESS);
+ break;
+ case ADSP_HAS_MASTER_PROCESS:
+ bReturn = m_usedProcesses[m_activeProcessId]->HasActiveModes(AE_DSP_MODE_TYPE_MASTER_PROCESS);
+ break;
+ case ADSP_HAS_POST_PROCESS:
+ bReturn = m_usedProcesses[m_activeProcessId]->HasActiveModes(AE_DSP_MODE_TYPE_POST_PROCESS);
+ break;
+ case ADSP_HAS_OUTPUT_RESAMPLE:
+ bReturn = m_usedProcesses[m_activeProcessId]->HasActiveModes(AE_DSP_MODE_TYPE_OUTPUT_RESAMPLE);
+ break;
+ case ADSP_MASTER_ACTIVE:
+ bReturn = m_usedProcesses[m_activeProcessId]->GetActiveMasterMode() != NULL;
+ break;
+ default:
+ break;
+ };
+
+ return bReturn;
+}
+
+bool CActiveAEDSP::TranslateCharInfo(DWORD dwInfo, std::string &strValue) const
+{
+ bool bReturn(true);
+
+ CSingleLock lock(m_critSection);
+
+ if (!IsProcessing() || !m_usedProcesses[m_activeProcessId])
+ return false;
+
+ CActiveAEDSPModePtr activeMaster = m_usedProcesses[m_activeProcessId]->GetActiveMasterMode();
+ if (activeMaster == NULL)
+ return false;
+
+ switch (dwInfo)
+ {
+ case ADSP_ACTIVE_STREAM_TYPE:
+ strValue = g_localizeStrings.Get(GetStreamTypeName(m_usedProcesses[m_activeProcessId]->GetUsedStreamType()));
+ break;
+ case ADSP_DETECTED_STREAM_TYPE:
+ strValue = g_localizeStrings.Get(GetStreamTypeName(m_usedProcesses[m_activeProcessId]->GetDetectedStreamType()));
+ break;
+ case ADSP_MASTER_NAME:
+ {
+ AE_DSP_ADDON addon;
+ int modeId = activeMaster->ModeID();
+ if (modeId == AE_DSP_MASTER_MODE_ID_PASSOVER || modeId >= AE_DSP_MASTER_MODE_ID_INTERNAL_TYPES)
+ strValue = g_localizeStrings.Get(activeMaster->ModeName());
+ else if (CActiveAEDSP::Get().GetAudioDSPAddon(activeMaster->AddonID(), addon))
+ strValue = addon->GetString(activeMaster->ModeName());
+ }
+ break;
+ case ADSP_MASTER_INFO:
+ bReturn = m_usedProcesses[m_activeProcessId]->GetMasterModeStreamInfoString(strValue);
+ break;
+ case ADSP_MASTER_OWN_ICON:
+ strValue = activeMaster->IconOwnModePath();
+ break;
+ case ADSP_MASTER_OVERRIDE_ICON:
+ strValue = activeMaster->IconOverrideModePath();
+ break;
+ default:
+ strValue.clear();
+ bReturn = false;
+ break;
+ };
+
+ return bReturn;
+}
+//@}
+
/*! @name Current processing streams control function methods */
//@{
CAEChannelInfo CActiveAEDSP::GetInternalChannelLayout(AEStdChLayout stdLayout)
@@ -1020,4 +1111,26 @@ AE_DSP_CHANNEL CActiveAEDSP::GetDSPChannel(enum AEChannel channel)
return AE_DSP_CH_INVALID;
}
}
+
+/*!
+ * Contains string name id's related to the AE_DSP_ASTREAM_ values
+ */
+const int CActiveAEDSP::m_StreamTypeNameTable[] =
+{
+ 15004, //!< "Basic"
+ 249, //!< "Music"
+ 157, //!< "Video"
+ 15016, //!< "Games"
+ 15005, //!< "Application"
+ 15006, //!< "Phone"
+ 15007, //!< "Message"
+ 14061 //!< "Auto"
+};
+
+int CActiveAEDSP::GetStreamTypeName(unsigned int streamType)
+{
+ if (streamType > AE_DSP_ASTREAM_AUTO)
+ return -1;
+ return m_StreamTypeNameTable[streamType];
+}
//@}
diff --git a/xbmc/cores/AudioEngine/DSPAddons/ActiveAEDSP.h b/xbmc/cores/AudioEngine/DSPAddons/ActiveAEDSP.h
index f483afe7b5..b30e0564ec 100644
--- a/xbmc/cores/AudioEngine/DSPAddons/ActiveAEDSP.h
+++ b/xbmc/cores/AudioEngine/DSPAddons/ActiveAEDSP.h
@@ -255,6 +255,23 @@ namespace ActiveAE
bool GetAudioDSPAddonName(int iAddonId, std::string &strName) const;
//@}
+ /*! @name GUIInfoManager calls */
+ //@{
+ /*!
+ * @brief Get a GUIInfoManager boolean.
+ * @param dwInfo The boolean to get.
+ * @return The requested boolean or false if it wasn't found.
+ */
+ bool TranslateBoolInfo(DWORD dwInfo) const;
+
+ /*!
+ * @brief Get a GUIInfoManager character string.
+ * @param dwInfo The string to get.
+ * @return The requested string or an empty one if it wasn't found.
+ */
+ bool TranslateCharInfo(DWORD dwInfo, std::string &strValue) const;
+ //@}
+
/*! @name Current processing streams control function methods */
//@{
/*!>
@@ -358,6 +375,11 @@ namespace ActiveAE
* @brief Translate KODI channel flag to audio dsp channel flag
*/
static AE_DSP_CHANNEL GetDSPChannel(enum AEChannel channel);
+
+ /*!
+ * @brief Get name label id to given stream type id
+ */
+ static int GetStreamTypeName(unsigned int streamType);
//@}
protected:
@@ -415,6 +437,7 @@ namespace ActiveAE
*/
int GetAudioDSPAddonId(const ADDON::AddonPtr addon) const;
+ static const int m_StreamTypeNameTable[]; /*!< Table for stream type strings related to type id */
bool m_isActive; /*!< set to true if all available dsp addons are loaded */
ADDON::VECADDONS m_addons; /*!< List of all currently usable addons */
AE_DSP_ADDONMAP m_addonMap; /*!< a map of all known audio dsp addons */