diff options
Diffstat (limited to 'addons')
40 files changed, 470 insertions, 116 deletions
diff --git a/addons/library.kodi.audioengine/libKODI_audioengine.h b/addons/library.kodi.audioengine/libKODI_audioengine.h new file mode 100644 index 0000000000..58e59cf9d0 --- /dev/null +++ b/addons/library.kodi.audioengine/libKODI_audioengine.h @@ -0,0 +1,332 @@ +#pragma once +/* + * Copyright (C) 2005-2014 Team KODI + * http://kodi.tv + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with KODI; see the file COPYING. If not, see + * <http://www.gnu.org/licenses/>. + * + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string> +#include <string.h> +#include <vector> + +#ifdef BUILD_KODI_ADDON + #include "kodi/AudioEngine/AEChannelData.h" + #include "kodi/AudioEngine/AEChannelInfo.h" + #include "kodi/AudioEngine/AEStreamData.h" + #include "kodi/AudioEngine/kodi_audioengine_types.h" +#else + #include "cores/AudioEngine/Utils/AEChannelData.h" + #include "cores/AudioEngine/Utils/AEChannelInfo.h" + #include "cores/AudioEngine/Utils/AEStreamData.h" + #include "addons/include/kodi_audioengine_types.h" +#endif + +#include "libXBMC_addon.h" + +#ifdef _WIN32 +#define AUDIOENGINE_HELPER_DLL "\\library.kodi.audioengine\\libKODI_audioengine" ADDON_HELPER_EXT +#else +#define AUDIOENGINE_HELPER_DLL_NAME "libKODI_audioengine-" ADDON_HELPER_ARCH ADDON_HELPER_EXT +#define AUDIOENGINE_HELPER_DLL "/library.kodi.audioengine/" AUDIOENGINE_HELPER_DLL_NAME +#endif + +class CAddonAEStream; + +class CHelper_libKODI_audioengine +{ +public: + CHelper_libKODI_audioengine(void) + { + m_libKODI_audioengine = NULL; + m_Handle = NULL; + } + + ~CHelper_libKODI_audioengine(void) + { + if (m_libKODI_audioengine) + { + AudioEngine_unregister_me(m_Handle, m_Callbacks); + dlclose(m_libKODI_audioengine); + } + } + + /*! + * @brief Resolve all callback methods + * @param handle Pointer to the add-on + * @return True when all methods were resolved, false otherwise. + */ + bool RegisterMe(void* handle) + { + m_Handle = handle; + + std::string libBasePath; + libBasePath = ((cb_array*)m_Handle)->libPath; + libBasePath += AUDIOENGINE_HELPER_DLL; + +#if defined(ANDROID) + struct stat st; + if(stat(libBasePath.c_str(),&st) != 0) + { + std::string tempbin = getenv("XBMC_ANDROID_LIBS"); + libBasePath = tempbin + "/" + AUDIOENGINE_HELPER_DLL; + } +#endif + + m_libKODI_audioengine = dlopen(libBasePath.c_str(), RTLD_LAZY); + if (m_libKODI_audioengine == NULL) + { + fprintf(stderr, "Unable to load %s\n", dlerror()); + return false; + } + + AudioEngine_register_me = (void* (*)(void *HANDLE)) + dlsym(m_libKODI_audioengine, "AudioEngine_register_me"); + if (AudioEngine_register_me == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } + + AudioEngine_unregister_me = (void(*)(void* HANDLE, void* CB)) + dlsym(m_libKODI_audioengine, "AudioEngine_unregister_me"); + if (AudioEngine_unregister_me == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } + + AudioEngine_MakeStream = (CAddonAEStream* (*)(void*, void*, AEDataFormat, unsigned int, unsigned int, enum AEChannel*, unsigned int)) + dlsym(m_libKODI_audioengine, "AudioEngine_make_stream"); + if (AudioEngine_MakeStream == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } + + AudioEngine_FreeStream = (void(*)(CAddonAEStream*)) + dlsym(m_libKODI_audioengine, "AudioEngine_free_stream"); + if (AudioEngine_FreeStream == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } + + AudioEngine_GetCurrentSinkFormat = (bool(*)(void*, void*, AudioEngineFormat*)) + dlsym(m_libKODI_audioengine, "AudioEngine_get_current_sink_Format"); + if (AudioEngine_GetCurrentSinkFormat == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } + + m_Callbacks = AudioEngine_register_me(m_Handle); + return m_Callbacks != NULL; + } + + /** + * Creates and returns a new handle to an IAEStream in the format specified, this function should never fail + * @param DataFormat The data format the incoming audio will be in (eg, AE_FMT_S16LE) + * @param SampleRate The sample rate of the audio data (eg, 48000) + * @prarm EncodedSampleRate The sample rate of the encoded audio data if AE_IS_RAW(dataFormat) + * @param ChannelLayout The order of the channels in the audio data + * @param Options A bit field of stream options (see: enum AEStreamOptions) + * @return a new Handle to an IAEStream that will accept data in the requested format + */ + CAddonAEStream* MakeStream(AEDataFormat DataFormat, unsigned int SampleRate, unsigned int EncodedSampleRate, CAEChannelInfo &ChannelLayout, unsigned int Options = 0) + { + return AudioEngine_MakeStream(m_Handle, m_Callbacks, DataFormat, SampleRate, EncodedSampleRate, ChannelLayout.m_channels, Options); + } + + /** + * This method will remove the specifyed stream from the engine. + * For OSX/IOS this is essential to reconfigure the audio output. + * @param stream The stream to be altered + * @return NULL + */ + void FreeStream(CAddonAEStream **Stream) + { + AudioEngine_FreeStream(*Stream); + *Stream = NULL; + } + + /** + * Get the current sink data format + * + * @param Current sink data format. For more details see AudioEngineFormat. + * @return Returns true on success, else false. + */ + bool GetCurrentSinkFormat(AudioEngineFormat &SinkFormat) + { + return AudioEngine_GetCurrentSinkFormat(m_Handle, m_Callbacks, &SinkFormat); + } + +protected: + void* (*AudioEngine_register_me)(void*); + void (*AudioEngine_unregister_me)(void*, void*); + CAddonAEStream* (*AudioEngine_MakeStream)(void*, void*, AEDataFormat, unsigned int, unsigned int, enum AEChannel*, unsigned int); + bool (*AudioEngine_GetCurrentSinkFormat)(void*, void*, AudioEngineFormat *SinkFormat); + void (*AudioEngine_FreeStream)(CAddonAEStream*); + +private: + void* m_libKODI_audioengine; + void* m_Handle; + void* m_Callbacks; + struct cb_array + { + const char* libPath; + }; +}; + +// Audio Engine Stream Class +class CAddonAEStream +{ +public: + CAddonAEStream(void *Addon, void *Callbacks, AEStreamHandle *StreamHandle); + virtual ~CAddonAEStream(); + + /** + * Returns the amount of space available in the stream + * @return The number of bytes AddData will consume + */ + virtual unsigned int GetSpace(); + + /** + * Add planar or interleaved PCM data to the stream + * @param Data array of pointers to the planes + * @param Offset to frame in frames + * @param Frames number of frames + * @return The number of frames consumed + */ + virtual unsigned int AddData(uint8_t* const *Data, unsigned int Offset, unsigned int Frames); + + /** + * Returns the time in seconds that it will take + * for the next added packet to be heard from the speakers. + * @return seconds + */ + virtual double GetDelay(); + + /** + * Returns if the stream is buffering + * @return True if the stream is buffering + */ + virtual bool IsBuffering(); + + /** + * Returns the time in seconds that it will take + * to underrun the cache if no sample is added. + * @return seconds + */ + virtual double GetCacheTime(); + + /** + * Returns the total time in seconds of the cache + * @return seconds + */ + virtual double GetCacheTotal(); + + /** + * Pauses the stream playback + */ + virtual void Pause(); + + /** + * Resumes the stream after pausing + */ + virtual void Resume(); + + /** + * Start draining the stream + * @note Once called AddData will not consume more data. + */ + virtual void Drain(bool Wait); + + /** + * Returns true if the is stream draining + */ + virtual bool IsDraining(); + + /** + * Returns true if the is stream has finished draining + */ + virtual bool IsDrained(); + + /** + * Flush all buffers dropping the audio data + */ + virtual void Flush(); + + /** + * Return the stream's current volume level + * @return The volume level between 0.0 and 1.0 + */ + virtual float GetVolume(); + + /** + * Set the stream's volume level + * @param volume The new volume level between 0.0 and 1.0 + */ + virtual void SetVolume(float Volume); + + /** + * Gets the stream's volume amplification in linear units. + * @return The volume amplification factor between 1.0 and 1000.0 + */ + virtual float GetAmplification(); + + /** + * Sets the stream's volume amplification in linear units. + * @param The volume amplification factor between 1.0 and 1000.0 + */ + virtual void SetAmplification(float Amplify); + + /** + * Returns the size of one audio frame in bytes (channelCount * resolution) + * @return The size in bytes of one frame + */ + virtual const unsigned int GetFrameSize() const; + + /** + * Returns the number of channels the stream is configured to accept + * @return The channel count + */ + virtual const unsigned int GetChannelCount() const; + + /** + * Returns the stream's sample rate, if the stream is using a dynamic sample rate, this value will NOT reflect any changes made by calls to SetResampleRatio() + * @return The stream's sample rate (eg, 48000) + */ + virtual const unsigned int GetSampleRate() const; + + /** + * Returns the stream's encoded sample rate if the stream is RAW + * @return The stream's encoded sample rate + */ + virtual const unsigned int GetEncodedSampleRate() const; + + /** + * Return the data format the stream has been configured with + * @return The stream's data format (eg, AE_FMT_S16LE) + */ + virtual const AEDataFormat GetDataFormat() const; + + /** + * Return the resample ratio + * @note This will return an undefined value if the stream is not resampling + * @return the current resample ratio or undefined if the stream is not resampling + */ + virtual double GetResampleRatio(); + + /** + * Sets the resample ratio + * @note This function may return false if the stream is not resampling, if you wish to use this be sure to set the AESTREAM_FORCE_RESAMPLE option + * @param ratio the new sample rate ratio, calculated by ((double)desiredRate / (double)GetSampleRate()) + */ + virtual bool SetResampleRatio(double Ratio); + + /** + * Sginal a clock change + */ + virtual void Discontinuity(); + + private: + AEStreamHandle *m_StreamHandle; + void *m_Callbacks; + void *m_AddonHandle; +}; diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po index e3135577ce..07bdb00bc3 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po @@ -5798,6 +5798,7 @@ msgctxt "#13204" msgid "Last loaded profile:" msgstr "" +#: xbmc/addons/GUIDialogAddonInfo.cpp #: xbmc/music/karaoke/GUIDialogKaraokeSongSelector.cpp #: xbmc/peripherals/devices/Peripheral.cpp #: xbmc/peripherals/bus/PeripheralBus.cpp @@ -11930,7 +11931,12 @@ msgctxt "#20469" msgid "Keep current set (%s)" msgstr "" -#empty strings from id 20470 to 21329 +#: system/settings/settings.xml +msgctxt "#20470" +msgid "Group single movies into sets" +msgstr "" + +#empty strings from id 20471 to 21329 #up to 21329 is reserved for the video db !! ! #: system/settings/settings.xml @@ -11974,7 +11980,17 @@ msgctxt "#21337" msgid "Never" msgstr "" -#empty strings from id 21338 to 21358 +#: xbmc/addons/GUIDialogAddonInfo.cpp +msgctxt "#21338" +msgid "Select version" +msgstr "" + +#: xbmc/addons/GUIDialogAddonInfo.cpp +msgctxt "#21339" +msgid "Version %s" +msgstr "" + +#empty strings from id 21340 to 21358 #: xbmc/dialogs/GUIDialogFileBrowser.cpp msgctxt "#21359" @@ -12529,7 +12545,22 @@ msgctxt "#21477" msgid "Just \"Specials\"" msgstr "" -#empty strings from id 21478 to 21601 +#: xbmc/addons/GUIDialogAddonInfo.cpp +msgctxt "#21478" +msgid "Open" +msgstr "" + +#: xbmc/addons/GUIDialogAddonInfo.cpp +msgctxt "#21479" +msgid "Run" +msgstr "" + +#: xbmc/addons/GUIDialogAddonInfo.cpp +msgctxt "#21480" +msgid "Use" +msgstr "" + +#empty strings from id 21481 to 21601 #: xbmc/Util.cpp msgctxt "#21602" @@ -15795,7 +15826,11 @@ msgctxt "#36156" msgid "Enable VAAPI hardware decoding of video files, mainly used for Intel graphics and in some circumstances AMD graphics." msgstr "" -#empty string with id 36157 +#. Description of setting "Videos -> Library -> Group single movies into sets" with label #20470 +#: system/settings/settings.xml +msgctxt "#36157" +msgid "When scanned into the library a movie may be identified as forming part of a \"Movie set\". With this setting enabled you may get movie sets displayed that contain only a single movie. If it is disabled only movie sets with multiple movies will be displayed." +msgstr "" #. Description of setting "Videos -> Playback -> Allow hardware acceleration (DXVA2)" with label #13427 #: system/settings/settings.xml diff --git a/addons/skin.confluence/720p/AddonBrowser.xml b/addons/skin.confluence/720p/AddonBrowser.xml index 47578eaaed..d7b681f401 100644 --- a/addons/skin.confluence/720p/AddonBrowser.xml +++ b/addons/skin.confluence/720p/AddonBrowser.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <views>50,51,550,551</views> <controls> diff --git a/addons/skin.confluence/720p/DialogAlbumInfo.xml b/addons/skin.confluence/720p/DialogAlbumInfo.xml index c8a3bef813..56f82a8eba 100644 --- a/addons/skin.confluence/720p/DialogAlbumInfo.xml +++ b/addons/skin.confluence/720p/DialogAlbumInfo.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">5</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <control type="group"> <visible>!Window.IsVisible(FileBrowser)</visible> diff --git a/addons/skin.confluence/720p/DialogAudioDSPManager.xml b/addons/skin.confluence/720p/DialogAudioDSPManager.xml index 965ff7e7d9..62cedc76bf 100644 --- a/addons/skin.confluence/720p/DialogAudioDSPManager.xml +++ b/addons/skin.confluence/720p/DialogAudioDSPManager.xml @@ -3,7 +3,6 @@ <zorder>1</zorder> <defaultcontrol>9000</defaultcontrol> <include>dialogeffect</include> - <allowoverlay>no</allowoverlay> <coordinates> <left>40</left> <top>40</top> diff --git a/addons/skin.confluence/720p/DialogNumeric.xml b/addons/skin.confluence/720p/DialogNumeric.xml index 446d70418c..a94f7436d8 100644 --- a/addons/skin.confluence/720p/DialogNumeric.xml +++ b/addons/skin.confluence/720p/DialogNumeric.xml @@ -3,30 +3,43 @@ <defaultcontrol always="true">21</defaultcontrol> <include>dialogeffect</include> <coordinates> - <left>510</left> - <top>115</top> + <left>420</left> + <top>175</top> </coordinates> <controls> <control type="image"> <left>0</left> <top>0</top> - <width>260</width> - <height>490</height> + <width>380</width> + <height>430</height> <texture border="40">DialogBack.png</texture> </control> <control type="image"> <description>Dialog Header image</description> <left>40</left> - <top>16</top> - <width>180</width> - <height>40</height> + <top>18</top> + <width>300</width> + <height>50</height> <texture>dialogheader.png</texture> </control> + <control type="button"> + <description>Close Window button</description> + <left>290</left> + <top>15</top> + <width>64</width> + <height>32</height> + <label>-</label> + <font>-</font> + <onclick>PreviousMenu</onclick> + <texturefocus>DialogCloseButton-focus.png</texturefocus> + <texturenofocus>DialogCloseButton.png</texturenofocus> + <visible>system.getbool(input.enablemouse)</visible> + </control> <control type="label" id="1"> <description>dialog Heading</description> <left>20</left> - <top>20</top> - <width>220</width> + <top>28</top> + <width>340</width> <height>35</height> <font>font12_title</font> <textcolor>selected</textcolor> @@ -38,7 +51,7 @@ <control type="image"> <left>30</left> <top>70</top> - <width>200</width> + <width>320</width> <height>50</height> <aspectratio>stretch</aspectratio> <texture border="20">KeyboardEditArea.png</texture> @@ -47,7 +60,7 @@ <description>Edit Text</description> <left>35</left> <top>70</top> - <width>190</width> + <width>310</width> <height>50</height> <font>font13</font> <textcolor>selected</textcolor> @@ -58,13 +71,13 @@ <control type="image"> <left>40</left> <top>120</top> - <width>180</width> + <width>300</width> <height>30</height> <aspectratio>stretch</aspectratio> <texture>dialogheader.png</texture> </control> <control type="group"> - <left>40</left> + <left>55</left> <top>155</top> <control type="button" id="11"> <description>1 button</description> @@ -79,9 +92,9 @@ <texturefocus border="25,25,5,5">KeyboardCornerTop.png</texturefocus> <label>12311</label> <focusedcolor>black</focusedcolor> - <onleft>13</onleft> + <onleft>23</onleft> <onright>12</onright> - <onup>21</onup> + <onup>20</onup> <ondown>14</ondown> </control> <control type="button" id="12"> @@ -99,7 +112,7 @@ <focusedcolor>black</focusedcolor> <onleft>11</onleft> <onright>13</onright> - <onup>21</onup> + <onup>10</onup> <ondown>15</ondown> </control> <control type="button" id="13"> @@ -111,15 +124,42 @@ <font>font13</font> <align>center</align> <aligny>center</aligny> - <texturenofocus flipx="true" border="5,25,25,5">KeyboardCornerTopNF.png</texturenofocus> - <texturefocus flipx="true" border="5,25,25,5">KeyboardCornerTop.png</texturefocus> + <texturenofocus border="3">KeyboardKeyNF.png</texturenofocus> + <texturefocus border="5">KeyboardKey.png</texturefocus> <label>12313</label> <focusedcolor>black</focusedcolor> <onleft>12</onleft> - <onright>11</onright> - <onup>23</onup> + <onright>23</onright> + <onup>22</onup> <ondown>16</ondown> </control> + <control type="button" id="23"> + <description>Backspace button</description> + <left>180</left> + <top>0</top> + <width>90</width> + <height>120</height> + <font>font12</font> + <align>center</align> + <aligny>center</aligny> + <texturenofocus flipx="true" border="5,25,25,5">KeyboardCornerTopNF.png</texturenofocus> + <texturefocus flipx="true" border="5,25,25,5">KeyboardCornerTop.png</texturefocus> + <textwidth>120</textwidth> + <label>-</label> + <focusedcolor>black</focusedcolor> + <onleft>13</onleft> + <onright>11</onright> + <onup>21</onup> + <ondown>21</ondown> + </control> + <control type="image"> + <description>Backspace icon</description> + <left>210</left> + <top>45</top> + <width>30</width> + <height>30</height> + <texture>KeyboardBackKey.png</texture> + </control> <control type="button" id="14"> <description>4 button</description> <left>0</left> @@ -133,7 +173,7 @@ <texturefocus border="5">KeyboardKey.png</texturefocus> <label>12314</label> <focusedcolor>black</focusedcolor> - <onleft>16</onleft> + <onleft>23</onleft> <onright>15</onright> <onup>11</onup> <ondown>17</ondown> @@ -170,7 +210,7 @@ <label>12316</label> <focusedcolor>black</focusedcolor> <onleft>15</onleft> - <onright>14</onright> + <onright>23</onright> <onup>13</onup> <ondown>19</ondown> </control> @@ -187,7 +227,7 @@ <texturefocus border="5">KeyboardKey.png</texturefocus> <label>12317</label> <focusedcolor>black</focusedcolor> - <onleft>19</onleft> + <onleft>21</onleft> <onright>18</onright> <onup>14</onup> <ondown>20</ondown> @@ -224,10 +264,37 @@ <label>12319</label> <focusedcolor>black</focusedcolor> <onleft>18</onleft> - <onright>17</onright> + <onright>21</onright> <onup>16</onup> <ondown>22</ondown> </control> + <control type="button" id="21"> + <description>Done button</description> + <left>180</left> + <top>120</top> + <width>90</width> + <height>120</height> + <font>font12</font> + <align>center</align> + <aligny>center</aligny> + <texturenofocus flipx="true" border="25,5,5,25">KeyboardCornerBottomNF.png</texturenofocus> + <texturefocus flipx="true" border="5,5,25,25">KeyboardCornerBottom.png</texturefocus> + <textwidth>120</textwidth> + <label>-</label> + <focusedcolor>black</focusedcolor> + <onleft>19</onleft> + <onright>17</onright> + <onup>23</onup> + <ondown>23</ondown> + </control> + <control type="image"> + <description>Done icon</description> + <left>210</left> + <top>165</top> + <width>30</width> + <height>30</height> + <texture>KeyboardDoneKey.png</texture> + </control> <control type="button" id="20"> <description>prev button</description> <left>0</left> @@ -239,12 +306,12 @@ <focusedcolor>black</focusedcolor> <align>center</align> <aligny>center</aligny> - <texturenofocus border="3">KeyboardKeyNF.png</texturenofocus> - <texturefocus border="5">KeyboardKey.png</texturefocus> - <onleft>22</onleft> + <texturenofocus border="5,25,25,5">KeyboardCornerBottomNF.png</texturenofocus> + <texturefocus border="5,25,25,5">KeyboardCornerBottom.png</texturefocus> + <onleft>21</onleft> <onright>10</onright> <onup>17</onup> - <ondown>21</ondown> + <ondown>11</ondown> </control> <control type="button" id="10"> <description>0 button</description> @@ -262,7 +329,7 @@ <onleft>20</onleft> <onright>22</onright> <onup>18</onup> - <ondown>21</ondown> + <ondown>12</ondown> </control> <control type="button" id="22"> <description>next button</description> @@ -278,56 +345,10 @@ <texturenofocus border="3">KeyboardKeyNF.png</texturenofocus> <texturefocus border="5">KeyboardKey.png</texturefocus> <onleft>10</onleft> - <onright>20</onright> - <onup>19</onup> - <ondown>23</ondown> - </control> - <control type="button" id="21"> - <description>Done button</description> - <left>0</left> - <top>240</top> - <width>90</width> - <height>60</height> - <font>font12</font> - <align>center</align> - <aligny>center</aligny> - <texturenofocus border="5,25,25,5">KeyboardCornerBottomNF.png</texturenofocus> - <texturefocus border="5,25,25,5">KeyboardCornerBottom.png</texturefocus> - <textwidth>120</textwidth> - <label>186</label> - <focusedcolor>black</focusedcolor> - <onleft>23</onleft> - <onright>23</onright> - <onup>20</onup> - <ondown>11</ondown> - </control> - <control type="button" id="23"> - <description>Backspace button</description> - <left>90</left> - <top>240</top> - <width>90</width> - <height>60</height> - <font>font12</font> - <align>center</align> - <aligny>center</aligny> - <texturenofocus flipx="true" border="25,5,5,25">KeyboardCornerBottomNF.png</texturenofocus> - <texturefocus flipx="true" border="5,5,25,25">KeyboardCornerBottom.png</texturefocus> - <textwidth>120</textwidth> - <label>-</label> - <focusedcolor>black</focusedcolor> - <onleft>21</onleft> <onright>21</onright> - <onup>22</onup> + <onup>19</onup> <ondown>13</ondown> </control> - <control type="image"> - <description>Backspace button</description> - <left>123</left> - <top>258</top> - <width>24</width> - <height>24</height> - <texture>KeyboardBackKey.png</texture> - </control> </control> </controls> </window> diff --git a/addons/skin.confluence/720p/DialogPVRChannelManager.xml b/addons/skin.confluence/720p/DialogPVRChannelManager.xml index b122979407..d81bf97aaa 100644 --- a/addons/skin.confluence/720p/DialogPVRChannelManager.xml +++ b/addons/skin.confluence/720p/DialogPVRChannelManager.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">20</defaultcontrol> - <allowoverlay>no</allowoverlay> <coordinates> <left>80</left> <top>65</top> diff --git a/addons/skin.confluence/720p/DialogVideoInfo.xml b/addons/skin.confluence/720p/DialogVideoInfo.xml index 9479c0dc3c..c60ff901a2 100644 --- a/addons/skin.confluence/720p/DialogVideoInfo.xml +++ b/addons/skin.confluence/720p/DialogVideoInfo.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">8</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <control type="group"> <visible>!Window.IsVisible(FileBrowser)</visible> diff --git a/addons/skin.confluence/720p/EventLog.xml b/addons/skin.confluence/720p/EventLog.xml index 58821cefc7..5e6c074a6a 100644 --- a/addons/skin.confluence/720p/EventLog.xml +++ b/addons/skin.confluence/720p/EventLog.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">570</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <views>570</views> <controls> diff --git a/addons/skin.confluence/720p/FileBrowser.xml b/addons/skin.confluence/720p/FileBrowser.xml index 83995fd008..be0bdb0b6c 100644 --- a/addons/skin.confluence/720p/FileBrowser.xml +++ b/addons/skin.confluence/720p/FileBrowser.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">450</defaultcontrol> - <allowoverlay>no</allowoverlay> <coordinates> <left>0</left> <top>0</top> diff --git a/addons/skin.confluence/720p/FileManager.xml b/addons/skin.confluence/720p/FileManager.xml index 2bf396ec98..8c1c157ade 100644 --- a/addons/skin.confluence/720p/FileManager.xml +++ b/addons/skin.confluence/720p/FileManager.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol>20</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <include>CommonBackground</include> <control type="image"> diff --git a/addons/skin.confluence/720p/Home.xml b/addons/skin.confluence/720p/Home.xml index e08cb1c9c0..63394e6fad 100644 --- a/addons/skin.confluence/720p/Home.xml +++ b/addons/skin.confluence/720p/Home.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">9000</defaultcontrol> - <allowoverlay>no</allowoverlay> <onunload condition="Container(9000).Hasfocus(10) | Container(9000).Hasfocus(11) | ControlGroup(9010).HasFocus | ControlGroup(9016).HasFocus | ControlGroup(9017).HasFocus">SetProperty(VideosDirectLink,True)</onunload> <onunload condition="ControlGroup(9011).HasFocus">SetProperty(MusicDirectLink,True)</onunload> <onunload condition="Control.HasFocus(9000) + Container(9000).Hasfocus(2)">ClearProperty(VideosDirectLink)</onunload> diff --git a/addons/skin.confluence/720p/LoginScreen.xml b/addons/skin.confluence/720p/LoginScreen.xml index 869da79b0a..636df255ba 100644 --- a/addons/skin.confluence/720p/LoginScreen.xml +++ b/addons/skin.confluence/720p/LoginScreen.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">52</defaultcontrol> - <allowoverlay>no</allowoverlay> <coordinates> <left>0</left> <top>0</top> diff --git a/addons/skin.confluence/720p/MusicVisualisation.xml b/addons/skin.confluence/720p/MusicVisualisation.xml index 00c183fee3..3b97ac73b5 100644 --- a/addons/skin.confluence/720p/MusicVisualisation.xml +++ b/addons/skin.confluence/720p/MusicVisualisation.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol>-</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <control type="visualisation" id="2"> <!-- FIX ME Music Visualization needs to have an id of 2 in this window to be able to lock or change preset --> diff --git a/addons/skin.confluence/720p/MyMusicNav.xml b/addons/skin.confluence/720p/MyMusicNav.xml index 1c77ae3edc..e5ce705d05 100644 --- a/addons/skin.confluence/720p/MyMusicNav.xml +++ b/addons/skin.confluence/720p/MyMusicNav.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <views>50,51,500,550,551,509,506,511,512,513</views> <controls> diff --git a/addons/skin.confluence/720p/MyMusicPlaylist.xml b/addons/skin.confluence/720p/MyMusicPlaylist.xml index 70daf9b601..cdf36e6bc8 100644 --- a/addons/skin.confluence/720p/MyMusicPlaylist.xml +++ b/addons/skin.confluence/720p/MyMusicPlaylist.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <views>50,51,506</views> <controls> diff --git a/addons/skin.confluence/720p/MyMusicPlaylistEditor.xml b/addons/skin.confluence/720p/MyMusicPlaylistEditor.xml index 110d1f27a1..4a84581d8a 100644 --- a/addons/skin.confluence/720p/MyMusicPlaylistEditor.xml +++ b/addons/skin.confluence/720p/MyMusicPlaylistEditor.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">6</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <controls> <include>CommonBackground</include> <control type="group"> diff --git a/addons/skin.confluence/720p/MyPVRChannels.xml b/addons/skin.confluence/720p/MyPVRChannels.xml index fcc5e0c83b..64791e4cfc 100644 --- a/addons/skin.confluence/720p/MyPVRChannels.xml +++ b/addons/skin.confluence/720p/MyPVRChannels.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <views>50,51</views> <controls> <include>CommonBackground</include> diff --git a/addons/skin.confluence/720p/MyPVRGuide.xml b/addons/skin.confluence/720p/MyPVRGuide.xml index a1dd2a7225..51858c066f 100644 --- a/addons/skin.confluence/720p/MyPVRGuide.xml +++ b/addons/skin.confluence/720p/MyPVRGuide.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">10</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <views>10,11,12,13</views> <controls> <include>CommonBackground</include> diff --git a/addons/skin.confluence/720p/MyPVRRecordings.xml b/addons/skin.confluence/720p/MyPVRRecordings.xml index b517e6864e..f5a102746e 100644 --- a/addons/skin.confluence/720p/MyPVRRecordings.xml +++ b/addons/skin.confluence/720p/MyPVRRecordings.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <views>50</views> <controls> <include>CommonBackground</include> diff --git a/addons/skin.confluence/720p/MyPVRSearch.xml b/addons/skin.confluence/720p/MyPVRSearch.xml index 417a684c31..7fe84d4d92 100644 --- a/addons/skin.confluence/720p/MyPVRSearch.xml +++ b/addons/skin.confluence/720p/MyPVRSearch.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <views>50</views> <controls> <include>CommonBackground</include> diff --git a/addons/skin.confluence/720p/MyPVRTimers.xml b/addons/skin.confluence/720p/MyPVRTimers.xml index a20d2352e9..1b477ad887 100644 --- a/addons/skin.confluence/720p/MyPVRTimers.xml +++ b/addons/skin.confluence/720p/MyPVRTimers.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <views>50</views> <controls> <include>CommonBackground</include> diff --git a/addons/skin.confluence/720p/MyPics.xml b/addons/skin.confluence/720p/MyPics.xml index b84fc2f9b4..4d97566c41 100644 --- a/addons/skin.confluence/720p/MyPics.xml +++ b/addons/skin.confluence/720p/MyPics.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <views>50,51,550,551,500,514,510</views> <controls> diff --git a/addons/skin.confluence/720p/MyPrograms.xml b/addons/skin.confluence/720p/MyPrograms.xml index cc5bd98f65..607a05719f 100644 --- a/addons/skin.confluence/720p/MyPrograms.xml +++ b/addons/skin.confluence/720p/MyPrograms.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <views>50,51,500,550,551</views> <controls> diff --git a/addons/skin.confluence/720p/MyVideoNav.xml b/addons/skin.confluence/720p/MyVideoNav.xml index cd5ff0e231..e41d6b7e43 100644 --- a/addons/skin.confluence/720p/MyVideoNav.xml +++ b/addons/skin.confluence/720p/MyVideoNav.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <views>50,51,500,550,551,560,501,508,504,503,515,505,511</views> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <controls> diff --git a/addons/skin.confluence/720p/MyVideoPlaylist.xml b/addons/skin.confluence/720p/MyVideoPlaylist.xml index b70ac5b022..e9cf5b9cf9 100644 --- a/addons/skin.confluence/720p/MyVideoPlaylist.xml +++ b/addons/skin.confluence/720p/MyVideoPlaylist.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <views>50,51</views> <controls> diff --git a/addons/skin.confluence/720p/MyWeather.xml b/addons/skin.confluence/720p/MyWeather.xml index ce2531a316..425b0f66f6 100644 --- a/addons/skin.confluence/720p/MyWeather.xml +++ b/addons/skin.confluence/720p/MyWeather.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <controls> <include>CommonBackground</include> diff --git a/addons/skin.confluence/720p/Settings.xml b/addons/skin.confluence/720p/Settings.xml index e2332758f5..295ebfe52b 100644 --- a/addons/skin.confluence/720p/Settings.xml +++ b/addons/skin.confluence/720p/Settings.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">9000</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <include>CommonBackground</include> <control type="image"> diff --git a/addons/skin.confluence/720p/SettingsCategory.xml b/addons/skin.confluence/720p/SettingsCategory.xml index 857f7b6a8f..cd8a9050f3 100644 --- a/addons/skin.confluence/720p/SettingsCategory.xml +++ b/addons/skin.confluence/720p/SettingsCategory.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol>3</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <include>CommonBackground</include> <control type="image"> diff --git a/addons/skin.confluence/720p/SettingsProfile.xml b/addons/skin.confluence/720p/SettingsProfile.xml index 2cda4cd555..536730d57f 100644 --- a/addons/skin.confluence/720p/SettingsProfile.xml +++ b/addons/skin.confluence/720p/SettingsProfile.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">9000</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <include>CommonBackground</include> <control type="image"> diff --git a/addons/skin.confluence/720p/SettingsSystemInfo.xml b/addons/skin.confluence/720p/SettingsSystemInfo.xml index 0c9284d6bc..fd9fa1cc5e 100644 --- a/addons/skin.confluence/720p/SettingsSystemInfo.xml +++ b/addons/skin.confluence/720p/SettingsSystemInfo.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">95</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <include>CommonBackground</include> <control type="image"> diff --git a/addons/skin.confluence/720p/SmartPlaylistEditor.xml b/addons/skin.confluence/720p/SmartPlaylistEditor.xml index 4a924a7702..a35252433b 100644 --- a/addons/skin.confluence/720p/SmartPlaylistEditor.xml +++ b/addons/skin.confluence/720p/SmartPlaylistEditor.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">22</defaultcontrol> - <allowoverlay>no</allowoverlay> <coordinates> <left>240</left> <top>22</top> diff --git a/addons/skin.confluence/720p/SmartPlaylistRule.xml b/addons/skin.confluence/720p/SmartPlaylistRule.xml index ecaca05a8c..fdc89f4f62 100644 --- a/addons/skin.confluence/720p/SmartPlaylistRule.xml +++ b/addons/skin.confluence/720p/SmartPlaylistRule.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">9001</defaultcontrol> - <allowoverlay>no</allowoverlay> <coordinates> <left>240</left> <top>220</top> diff --git a/addons/skin.confluence/720p/Startup.xml b/addons/skin.confluence/720p/Startup.xml index 455f71fe19..c8b81856ad 100644 --- a/addons/skin.confluence/720p/Startup.xml +++ b/addons/skin.confluence/720p/Startup.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">10</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <control type="button" id="10"> <description>trigger</description> diff --git a/addons/skin.confluence/720p/script-NextAired-TVGuide.xml b/addons/skin.confluence/720p/script-NextAired-TVGuide.xml index 9b96d728ca..27e1093408 100644 --- a/addons/skin.confluence/720p/script-NextAired-TVGuide.xml +++ b/addons/skin.confluence/720p/script-NextAired-TVGuide.xml @@ -7,7 +7,6 @@ <onload>ClearProperty(TVGuide.FridayList,Home)</onload> <onload>ClearProperty(TVGuide.SaturdayList,Home)</onload> <onload>ClearProperty(TVGuide.SundayList,Home)</onload> - <allowoverlay>no</allowoverlay> <controls> <include>CommonBackground</include> <control type="group"> diff --git a/addons/skin.confluence/720p/script-cu-lrclyrics-main.xml b/addons/skin.confluence/720p/script-cu-lrclyrics-main.xml index 3b9c6fce47..f7ba7b5431 100644 --- a/addons/skin.confluence/720p/script-cu-lrclyrics-main.xml +++ b/addons/skin.confluence/720p/script-cu-lrclyrics-main.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <window> - <allowoverlay>no</allowoverlay> <coordinates> <left>680</left> <top>0</top> diff --git a/addons/skin.confluence/720p/script-globalsearch-main.xml b/addons/skin.confluence/720p/script-globalsearch-main.xml index 75fad30293..9809708348 100644 --- a/addons/skin.confluence/720p/script-globalsearch-main.xml +++ b/addons/skin.confluence/720p/script-globalsearch-main.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <window> - <allowoverlay>no</allowoverlay> <coordinates> <left>0</left> <top>0</top> diff --git a/addons/skin.confluence/media/KeyboardDoneKey.png b/addons/skin.confluence/media/KeyboardDoneKey.png Binary files differnew file mode 100644 index 0000000000..d76cb59369 --- /dev/null +++ b/addons/skin.confluence/media/KeyboardDoneKey.png diff --git a/addons/skin.re-touched b/addons/skin.re-touched -Subproject 8d6616fffba8b15533195bd7e65d3f35c6dc51e +Subproject db5f915d02c315d5d23f7de8173f9ec0646cf15 diff --git a/addons/xbmc.pvr/addon.xml b/addons/xbmc.pvr/addon.xml index 1e065230a1..fc35d641c7 100644 --- a/addons/xbmc.pvr/addon.xml +++ b/addons/xbmc.pvr/addon.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<addon id="xbmc.pvr" version="4.0.0" provider-name="Team-Kodi"> - <backwards-compatibility abi="4.0.0"/> +<addon id="xbmc.pvr" version="4.1.0" provider-name="Team-Kodi"> + <backwards-compatibility abi="4.1.0"/> <requires> <import addon="xbmc.core" version="0.1.0"/> </requires> |