aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-09-19Merge pull request #18434 from basilgello/fix-testsphunkyfish
Fix tests
2020-09-18[addons] fix: override empty addon origin to find dependencies from parent repohowie-f
2020-09-18[addons] fix database wrong handle to change "broken" to new "lifecycledesc"Alwin Esch
Before was there in database the "broken" value from json checked for presence only. As them sould always present was every addon marked as broken. This now done by database update and changed to current types. Also is a fix call added to change previous changed database and have correct again.
2020-09-18[addons] update database table to ver. 33 and add update pointAlwin Esch
This increases the database version to 33 and adds an update call to change the "metadata" in json format.
2020-09-18[addons] add reworked serialization way for addon extensions on databaseAlwin Esch
This changes the way the field of the addon.xml of `<extensions point="addon_type_name">...</extension>` is stored in the database. Previously, only the addon type string was stored as "extension" in json and any sub-data was stored separately under "extrainfo". This makes it difficult to process more complex data. This introduces a way to save the complete extension's in a json format and when reading all the data of the main addon type is available. **WARNING:** A way has to be introduced in order to update the add-on database appropriately, otherwise the content of the previous version is no longer visible in Kodi. As a temporary test way, the old "Addons32.db" can be deleted so that it is recreated.
2020-09-18[addons] use CAddonInfo within repo addon content scanAlwin Esch
This changes to the following functions from IAddon to CAddonInfo: - CAddonManager::AddonsFromRepoXML - CRepository::FetchIfChanged - CRepository::FetchIndex - CAddonDatabase::UpdateRepositoryContent - SerializeMetadata (AddonDatabase.cpp) The main reason is to have CAddonInfo available on "SerializeMetadata" and to have all its content available within the database (future changes). In addition, this also has other advantages: - The performance is significantly better because the associated addon class does not have to be created for each individual repo addon - It is a step further to separate add-on management and usage - The background is that the CAddon class (and associated child class) should only be created when actually used - Adjusted the addon manager a little to separate the contained parts into groups - The aim is to have a clearer overview in the addon manager which parts are used externally and which parts are only used internally for management It is easy to contribute to this, since this chain of use is not very cross-branched.
2020-09-18Merge pull request #18425 from matthuisman/no_uninstall_for_system_addonsFrank H
[addons] fix IsSystemAddon not including optional system addons
2020-09-18TestSysfsPath: Use proper filename randomizerVasyl Gello
There is a very small probability of collisions using nanosecond ranges on systems where system timer resolution is 100 nsec or greater. This might be the reason of occassionally failing TestSysfsPath tests even with #18011 in place. Let's use properly generated 12-char pseudorandom string derived from RandomAlphaNumString. Inspired by: https://ideone.com/LxhX15
2020-09-18cmake: use c++17Lukas Rusak
2020-09-18CDVDInputStreamBluray: fix SOverlay custom deleter for c++17Lukas Rusak
2020-09-18[cmake] require lcms2 >= 2.10 for c++17 supportLukas Rusak
2020-09-18tools/depends: use c++17Lukas Rusak
2020-09-18tools/depends: libandroidjni: update to fix build with c++17Lukas Rusak
2020-09-18tools/depends: p8-platform: add patch to fix build with c++17Lukas Rusak
2020-09-18docs: Update Linux readmes for C++17 requirementGarrett Brown
2020-09-18PVR Recording Year updateemveepee
Populate PVR recording year tag value only with the PVRRecording.SetYear() value.
2020-09-18Merge pull request #18383 from sy6sy2/tvos-fix-topshelf-imagesSylvain CECCHETTO
[tvOS][Top Shelf] Fix missing thumbs + clean up
2020-09-18update IsSystemAddon to also check optional system addonsMatt Huisman
add new IsOptionalSystemAddon
2020-09-17[estouchy] replace AddonBroken with AddonLifecycleType(Desc) infolabelsronie
2020-09-17Merge pull request #18432 from AlwinEsch/add-windows-fix-macroAlwin Esch
[addons][filesystem] fix windows build about his RemoveDirectory macro
2020-09-16[Estuary] allow longer breadcrumb labels if no media is playingronie
2020-09-16[addons][filesystem] fix windows build about his RemoveDirectory macroAlwin Esch
As there is a API function about "RemoveDirectory" becomes it in conflict with Windows if used. This error then come: ``` error C2039: 'RemoveDirectoryW': is not a member of 'kodi::vfs' ```
2020-09-16XBDateTime: Do not mix signed and unsigned valuesVasyl Gello
Following the ULARGE_INTEGER -> LARGE_INTEGER migration in CDatetimeSpan and CDateTime, replace unsigned divisors with signed ones, so that undesirable conversion to unsigned does not take place.
2020-09-16XBDateTime: Use signed LARGE_INTEGER instead of unsigned ULARGE_INTEGERVasyl Gello
It is logically incorrect to use ULARGE_INTEGER in CDateTime and CDateTimeSpan, because the QuadPart can be negative (for example, assigning the negative timzeone offset in seconds to a CDateTimeSpan). We also rename private member functions ToULargeInt() and FromULargeInt() to ToLargeInt() and FromLargeInt(). Changes were made using following shell commands: sed -i 's/ULARGE_INTEGER/LARGE_INTEGER/g' xbmc/XBDateTime.* sed -i 's/ToULargeInt(/ToLargeInt(/g' xbmc/XBDateTime.* sed -i 's/FromULargeInt(/FromLargeInt(/g' xbmc/XBDateTime.*
2020-09-16[Tests]TestDateTime: fix FileTimeOperators testVasyl Gello
The test logic compares 'absolute' timestamps with timestamps corrected by timezone offset in FileTimeTolocalFileTime(). This leads to the test failure if TZ environment variable is set to UTC-01:00 to UTC-13:00 (i.e, every location eastern of Greenwich): $ cat ./test-tz.sh for i in `seq -13 1 13` do if [ $i -eq 0 ]; then export TZ="UTC+00:00" elif [ $i -lt 0 ]; then export TZ=$(printf "UTC-%02d:00" $(( $i * -1)) ) else export TZ=$(printf "UTC+%02d:00" $i ) fi ./kodi-test --gtest_filter="TestDateTime.FileTimeOperators" \ 1>/dev/null 2>&1 [ $? -eq 0 ] && RET1="Passed" || RET1="Failed" ./kodi-test --gtest_filter="TestDateTime.SetFromUTCDateTime" \ 1>/dev/null 2>&1 [ $? -eq 0 ] && RET2="Passed" || RET2="Failed" echo "$TZ: $RET1 $RET2" done $ ./test-tz.sh UTC-13:00: Failed Failed UTC-12:00: Failed Failed UTC-11:00: Failed Failed UTC-10:00: Failed Failed UTC-09:00: Failed Failed UTC-08:00: Failed Failed UTC-07:00: Failed Failed UTC-06:00: Failed Failed UTC-05:00: Failed Failed UTC-04:00: Failed Failed UTC-03:00: Failed Failed UTC-02:00: Failed Failed UTC-01:00: Failed Failed UTC+00:00: Passed Passed UTC+01:00: Passed Passed UTC+02:00: Passed Passed UTC+03:00: Passed Passed UTC+04:00: Passed Passed UTC+05:00: Passed Passed UTC+06:00: Passed Passed UTC+07:00: Passed Passed UTC+08:00: Passed Passed UTC+09:00: Passed Passed UTC+10:00: Passed Passed UTC+11:00: Passed Passed UTC+12:00: Passed Passed UTC+13:00: Passed Passed Time zones western of Greenwich do not produce the test failure because 'extern long timezone' is greater than zero. This commit fixes the test logic following the original intent of the test. The dateTime3 local object used in comparison is constructed from the timestamp corrected by the timezone so 'apples-to-apples' comparison takes place: UTC-13:00: Passed Failed UTC-12:00: Passed Failed UTC-11:00: Passed Failed UTC-10:00: Passed Failed UTC-09:00: Passed Failed UTC-08:00: Passed Failed UTC-07:00: Passed Failed UTC-06:00: Passed Failed UTC-05:00: Passed Failed UTC-04:00: Passed Failed UTC-03:00: Passed Failed UTC-02:00: Passed Failed UTC-01:00: Passed Failed UTC+00:00: Passed Passed UTC+01:00: Passed Passed UTC+02:00: Passed Passed UTC+03:00: Passed Passed UTC+04:00: Passed Passed UTC+05:00: Passed Passed UTC+06:00: Passed Passed UTC+07:00: Passed Passed UTC+08:00: Passed Passed UTC+09:00: Passed Passed UTC+10:00: Passed Passed UTC+11:00: Passed Passed UTC+12:00: Passed Passed UTC+13:00: Passed Passed
2020-09-16Merge pull request #18429 from AlwinEsch/fix-languageAlwin Esch
[addons][language] fix crash if selected language addon no more present
2020-09-16[Estuary] display origin in addonbrowser and addoninforonie
2020-09-16[Music][guiinfo] Add new MusicPlayer infolabel and booleanthe-black-eagle
2020-09-16Merge pull request #18428 from AlwinEsch/fix-stupid-mindAlwin Esch
[addons][platform] fix stupid wrong min version increase
2020-09-15[addons][language] don't use CAddon class if GetAddon returned falseAlwin Esch
Before has it after failed `GetAddon` call used the `CAddon` class to get his ID and to use on other calls. As we never know exact why `GetAddon` failed can we never sure that related class is really created.
2020-09-15[addons][language] fix crash if selected language addon no more presentAlwin Esch
Previously, if the language addon was deleted for any reason, Kodi crashed on startup. This adds a check that the add-on is actually there. Here the backtrace about crash before: ``` \#0 CLangInfo::SetLanguage (this=0x55555ad37eb0, language="resource.language.de_de", reloadServices=false) at /home/alwin/Development/Kodi/kodi-Matrix/xbmc/LangInfo.cpp:670 \#1 0x0000555557ad51eb in CApplication::LoadLanguage (this=0x55555ad34c20, reload=false) at /home/alwin/Development/Kodi/kodi-Matrix/xbmc/Application.cpp:4915 \#2 0x0000555557abdbd0 in CApplication::Initialize (this=0x55555ad34c20) at /home/alwin/Development/Kodi/kodi-Matrix/xbmc/Application.cpp:737 \#3 0x0000555557635500 in XBMC_Run (renderGUI=true, params=...) at /home/alwin/Development/Kodi/kodi-Matrix/xbmc/platform/xbmc.cpp:46 \#4 0x0000555556e0b08c in main (argc=1, argv=0x7fffffffdf38) at /home/alwin/Development/Kodi/kodi-Matrix/xbmc/platform/posix/main.cpp:77 ```
2020-09-15[addons][platform] fix stupid wrong min version increaseAlwin Esch
Before have I'm wrongly increased min version! SORRY! This swaps them from min to normal. As there was no version increase on inputstream.adaptive (where used), is no place attacked about this mistake.
2020-09-15Merge pull request #18197 from AlwinEsch/change-vfs2Alwin Esch
[addons][vfs] cleanup API, improve "C" interface, not use void* direct as value
2020-09-15Merge pull request #18408 from AlwinEsch/change-addon-guiAlwin Esch
[addons][gui] cleanup API, improve "C" interface, documentation rework for Doxygen
2020-09-15Merge pull request #18421 from ronie/fix-pr18286Alwin Esch
fix ListItem.AddonLifecycleDesc infolabel
2020-09-15Merge pull request #18422 from AlwinEsch/vfs-changeAlwin Esch
[vfs][addons][audiodecoder] continue addon search if open of extension failed
2020-09-15Merge pull request #18414 from anxdpanic/settings_crashanxdpanic
potential read access violation with an addon path setting
2020-09-15Merge pull request #18340 from Tolriq/fix_esDave Blake
Fix event server unable to send raw key strikes
2020-09-15set repo origin to self when enabling repo without originMatt Huisman
2020-09-14[Estuary] improve multidisc supportronie
2020-09-14[vfs][addons][audiodecoder] continue addon search if open of extension failedAlwin Esch
This thought for the case that a addon tried with a extension where can also be on other types. Before has it returned the function and no further search to find process part. The error and fix specially visible by *.iso's and use of audiodecoder.sacd with vfs.libarchive (where iso support added). Before has it called the audiodecoder where fails on a normal file ISO and returned the scan function as unsupported. With this change here is the search continued and try then also with other addons and with Kodi's own VFS support.
2020-09-14fix ListItem.AddonLifecycleDesc infolabelronie
2020-09-14[addons][filesystem][vfs] increase API versionsAlwin Esch
There becomes increased: - ADDON_INSTANCE_VERSION_VFS = 3.0.0 - ADDON_INSTANCE_VERSION_VFS_MIN = 3.0.0 - ADDON_GLOBAL_VERSION_FILESYSTEM = 1.1.5
2020-09-14[addons][filesystem] allow recursive directory delete on ↵Alwin Esch
kodi::vfs::RemoveDirectory There becomes another "C" part added about (to prevent min version change") where then called if kodi::vfs::RemoveDirectory(..., true).
2020-09-14[addons][vfs] cleanup vfs addon instance documentationAlwin Esch
To make it a bit cleaner, fix few doxygen parts and add few new text parts.
2020-09-14[addons][vfs] separate "C" and "C++" to different headersAlwin Esch
This place the "C" parts to "kodi/c-api/addon-instance/vfs.h" to have clean for other languages and to confirm a correct ABI between Kodi and addon used.
2020-09-14[addons][vfs] prevent direct use of "void*" on addon interfaceAlwin Esch
There becomes the "void*" usage replaced to a "C define VFS_FILE_HANDLE" and "C++ using VFSFileHandle". Also is a from addon used memory pointer changed from void* to uint8_t*. On other parts where only relate to Kodi is changed to KODI_HANDLE. So is on addon not direct a void* used and more clean on other languages.
2020-09-14[addons][vfs] improve IO file callsAlwin Esch
There was before on few IO types a void* used to write/read where makes it harder for other languages and more unsafe in C/C++. This change every for addons usable part in a own function where the void* no more needed.
2020-09-14[addons][vfs] use C++ kodi::addon::VFSUrl for URLAlwin Esch
Before was the "C" structure used, this change to use the C++ translation class about, done to match the with PVR started style about.
2020-09-14[addons][vfs][filesystem] increase stat support and use also on VFS addonAlwin Esch
There becomes the following stat parts support added to STAT_STRUCTURE: - isBlock (S_IFBLK) - isCharacter (S_IFCHR) - isFifo (S_IFIFO) - isRegular (S_IFREG) - isSocket (S_IFSOCK) To get file serial number (if available). And then also with STAT_STRUCTURE/FileStatus used on VFS addon stat calls.