Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
Todo List
Member [TVOSDisplayManager observeValueForKeyPath:ofObject:change:context:]
Member ActiveAE::CActiveAE::Configure (AEAudioFormat *desiredFmt=NULL)

implement

adjust to decoder

use cache of sync + water level

Member ActiveAE::CActiveAE::MakeStream (AEAudioFormat &audioFormat, unsigned int options=0, IAEClockCallback *clock=NULL) override
pass number of samples in audio packet
Member ActiveAE::CActiveAE::PauseStream (CActiveAEStream *stream, bool pause)
pause sink, needs api change
Member ActiveAE::CActiveAE::RunStages ()
find better solution for this gapless bites audiophile
Member ActiveAE::CActiveAESink::StateMachine (int signal, Protocol *port, Message *msg)
use max raw packet size, for now use max size of an IEC packed packet maxIECPpacket > maxRawPacket for raw packets frameSize is set to 1
Member ActiveAE::CActiveAESound::IsPlaying () override
implement
Member ActiveAE::CActiveAEStreamBuffers::SetExtraData (int profile, enum AVMatrixEncoding matrix_encoding, enum AVAudioServiceType audio_service_type)
Implement set dsp config with new AudioDSP buffer implementation
Member ADDON::ADDON_INSTANCE_HANDLER
As long game addon system use CAddonDll itself and not IAddonInstanceHandler as parent, is the set of this as "void*" needed. After game system is changed should by this also changed to "const IAddonInstanceHandler*" or direct in map below.
Member ADDON::CAddonDatabase::OnPostUnInstall (const std::string &addonId)
should be done before uninstall to avoid any race conditions
Member ADDON::CAddonStatusHandler::CAddonStatusHandler (const std::string &addonID, AddonInstanceId instanceId, ADDON_STATUS status, bool sameThread=true)
The status handled CAddonStatusHandler by is related to the class, not the instance having CAddonMgr construct an instance makes no sense
Member ADDON::CAddonStatusHandler::Process () override
Doesn't dialogaddonsettings save these automatically? It should do this.
Member ADDON::CRepository::CRepository (const AddonInfoPtr &addonInfo)
remove if block completely in v21
Member ANNOUNCEMENT::CAnnouncementManager::DoAnnounce (AnnouncementFlag flag, const std::string &sender, const std::string &message, const std::shared_ptr< CFileItem > &item, const CVariant &data)

Can be removed once this is properly handled when starting playback of a file

Can be removed once this is properly handled when starting playback of a file

Can be removed once this is properly handled when starting playback of a file

Can be removed once this is properly handled when starting playback of a file

Member ByPlaylistOrder (SortAttribute attributes, const SortItem &values)
Playlist order is hacked into program count variable (not nice, but ok until 2.0)
Member CAdvancedSettings::ParseSettingsFile (const std::string &file)
Should cache path be given in terms of our predefined paths?? Are we even going to have predefined paths??
Member CAEELDParser::Parse (const uint8_t *data, size_t length, CAEDeviceInfo &info)
implement
Member CAESinkDARWINOSX::Initialize (AEAudioFormat &format, std::string &device) override
Should we use the virtual format to determine our data format?
Member CAESinkXAudio::Drain () override
use FormatMessage for a human readable error message
Member CAndroidKey::onKeyboardEvent (AInputEvent *event)
implement
Member CApplication::Create ()
Win32 has no special://home/ mapping by default, so we
Member CApplication::FrameMove (bool processEvents, bool processGUI=true) override
look into the possibility to use this for GBM int fps = 0;
Member CApplication::Initialize ()
Move GUIFontManager into service broker and drop the global reference
Member CApplication::PlayFile (CFileItem item, const std::string &player, bool bRestart=false, bool forceSelection=false)
- this will fail if user seeks back to first file in stack
Member CApplicationPowerHandling::WakeUpScreenSaverAndDPMS (bool bPowerOffKeyPressed=false)
if screensaver lock is specified but screensaver is not active (DPMS came first), activate screensaver now.
Member CApplicationStackHelper::InitializeStackStartPartAndOffset (const CFileItem &item)
If user changes the time speed (FPS via framerate conversion stuff) then these times will be wrong. Also, this is really just a hack for the slow load up times we have A much better solution is a fast reader of FPS and fileLength that we can use on a file to get it's time.
Member CAudioDecoder::ReadSamples (int numsamples)
trash this useless ringbuffer
Member CBitstreamConverter::Open (enum AVCodecID codec, uint8_t *in_extradata, int in_extrasize, bool to_annexb)
convert annexb to bitstream format
Member CContextMenuManager::GetItems (const CFileItem &fileItem, const CContextMenuItem &root) const
implement group support
Member CContextMenuManager::HasItems (const CFileItem &fileItem, const CContextMenuItem &root) const
implement group support
Member CCoreAudioStream::Close (bool restore=true)
Should it even be possible to change both the physical and virtual formats, since the devices do it themselves?
Member CDateTime::SetFromDateString (const std::string &date)
STRING_CLEANUP
Member CDDB::Xcddb::parseData (const char *buffer)
STRING_CLEANUP
Member CDemuxStreamAudio::GetStreamType ()

: With ffmpeg >= 6.1 add new AC4 codec

: With ffmpeg >= 6.1 add new atmos profile case

: With ffmpeg >= 6.1 add new DTSX profile cases

Member CDirectoryProvider::Update (bool forceRefresh) override
Also returned changed if properties are changed (if so, need to update scroll to letter).
Member CDisplaySettings::UpdateCalibrations ()
erase calibrations with default values
Member CDTEXT_FIELD_TITLE
- remove after Ubuntu 16.04 (Xenial) is EOL
Member CDVDAudioCodecFFmpeg::AddData (const DemuxPacket &packet) override
: properly handle avpkt side_data. this works around our improper use of the side_data
Member CDVDDemuxClient::Read () override
drop this block
Member CDVDDemuxFFmpeg::AddStream (int streamIdx)
: temporary font file management should be completely removed, by sending font data to the subtitle renderer and using libass ass_add_font to add the fonts directly in memory.
Member CDVDDemuxUtils::FreeDemuxPacket (DemuxPacket *pPacket)
: properly handle avpkt side_data. this works around our improper use of the side_data
Member CDVDDemuxUtils::StoreSideData (DemuxPacket *pkt, AVPacket *src)
: properly handle avpkt side_data. this works around our improper use of the side_data
Member CDVDInputStream::CanPause ()
drop this
Member CDVDOverlayCodecCCText::PostProcess (std::string &text) override
This must be removed after the rework of the CC decoders
Member CDVDTeletextData::Process () override
implement
Member CDVDVideoCodecDRMPRIME::AddData (const DemuxPacket &packet) override
: properly handle avpkt side_data. this works around our improper use of the side_data
Member CDVDVideoCodecDRMPRIME::Open (CDVDStreamInfo &hints, CDVDCodecOptions &options) override
: fix with proper device when dma-hints wayland protocol works
Member CDVDVideoCodecFFmpeg::AddData (const DemuxPacket &packet) override
: properly handle avpkt side_data. this works around our improper use of the side_data
Member CDVDVideoCodecFFmpeg::GetPictureCommon (VideoPicture *pVideoPicture) override
: ffmpeg doesn't seem like they know how they want to handle this.
Member CDVDVideoCodecFFmpeg::Open (CDVDStreamInfo &hints, CDVDCodecOptions &options) override
allow per video setting?
Member CFileExtensionProvider::CanOperateExtension (const std::string &path) const

Improve this function to support all cases and not only audio decoder.

Check addons can also be types in conflict with Kodi's supported parts!

Member CFileItem::FillInMimeType (bool lookup=true)
adapt this to use CMime::GetMimeType()
Member CFileItem::LoadDetails ()
add support for other types on demand.
Member CFileItem::LoadGameTag ()
Member CFileItem::SetURL (const CURL &url)
Ideally this (and SetPath) would not be available outside of construction for CFileItem objects, or at least restricted to essentially be equivalent to construction. This would require re-formulating a bunch of CFileItem construction, and also allowing CFileItemList to have its own (public) SetURL() function, so for now we give direct access.
Member CFileItem::UpdateInfo (const CFileItem &item, bool replaceLabels=true)
premiered info is normally stored in m_dateTime by the db
Member CFileUtils::RemoteAccessAllowed (const std::string &strPath)
Make sharing of auto-mounted sources user configurable
Member CGreedyDirtyRegionSolver::Solve (const CDirtyRegionList &input, CDirtyRegionList &output) override
if the temporaryCost is 0 then we could skip checking the other regions since there exist no better solution
Member CGUIControl::SetVisible (bool bVisible, bool setVisState=false)
currently we only update m_visible from GUI_MSG_VISIBLE (SET_CONTROL_VISIBLE) otherwise we just set m_forceHidden
Member CGUIControlFactory::Create (int parentID, const CRect &rect, TiXmlElement *pControlNode, bool insideContainer=false)
Perhaps we should check here whether id is valid for focusable controls such as buttons etc. For labels/fadelabels/images it does not matter
Member CGUIDialogAudioSettings::FrameMove () override
(needs special handling): m_settingsManager->SetInt(SETTING_AUDIO_STREAM, g_application.GetAppPlayer().GetAudioStream());
Member CGUIDialogContextMenu::GetContextButtons (const std::string &type, const CFileItemPtr &item, CContextButtons &buttons)
might be smart to also combine editing source & plugin settings into one concept/dialog
Member CGUIDialogContextMenu::SourcesMenu (const std::string &strType, const CFileItemPtr &item, float posX, float posY)
This should be callable even if we don't have any valid items
Member CGUIDialogFileBrowser::HaveDiscOrConnection (int iDriveType)
Handle not connected to a remote share
Member CGUIDialogGamepad::ShowAndVerifyNewPassword (std::string &strNewPassword)

Show error to user saying the password entry was blank

Show error to user saying the password re-entry failed

Member CGUIDialogMusicInfo::OnGetArt ()
: Add support for extracting embedded art from song files to use for album
Member CGUIDialogSmartPlaylistRule::OnBrowse ()
Add browseability in here.
Member CGUIDialogSongInfo::OnGetArt ()

: label fallback art so user knows?

: Add support for extracting embedded art

Member CGUIDialogSubtitles::OnDownloadComplete (const CFileItemList *items, const std::string &language)
We need some way to avoid special casing this all over the place for rar/zip (perhaps modify GetDirectory?)
Member CGUIDialogSubtitleSettings::FrameMove () override

m_settingsManager->SetBool(SETTING_SUBTITLE_ENABLE, g_application.GetAppPlayer().GetSubtitleVisible());

(needs special handling): m_settingsManager->SetInt(SETTING_SUBTITLE_STREAM, g_application.GetAppPlayer().GetSubtitle());

Member CGUIDialogVideoManager::ChooseVideoAsset (const std::shared_ptr< CFileItem > &item, VideoAssetType assetType, const std::string &defaultName)

db refactor: should not be version, but asset

db refactor: should not be version, but asset

db refactor: should not be versions, but assets

Member CGUIDialogVideoManager::Refresh ()
db refactor: should not be versions, but assets
Member CGUIDialogVideoManager::Rename ()
db refactor: should not be version, but asset
Member CGUIDialogVideoSettings::OnSettingAction (const std::shared_ptr< const CSetting > &setting) override
implement
Member CGUIEditControl::OnClick () override
Ideally we'd send this to the keyboard and tell the keyboard we have this type of input
Member CGUIEditControl::SetInputType (INPUT_TYPE type, const CVariant &heading)
Verify the current input string?
Member CGUIFontTTF::DrawTextInternal (CGraphicContext &context, float x, float y, const std::vector< KODI::UTILS::COLOR::Color > &colors, const vecText &text, uint32_t alignment, float maxPixelWidth, bool scrolling, float dx=0.0f, float dy=0.0f)
: This validate is the last resort and can result in a bad rendered text because the alignment it is used also by caller components for other operations this inform the problem on the log, potentially can be improved by add validating alignments from each parent caller component
Member CGUIInfoManager::TranslateSingleString (const std::string &strCondition, bool &listItemDependent)

change to IsScanning(Video)

remove these, they're repeats

remove these, they're repeats

this doesn't support foo.xml

The parameter for these should really be on the first not the second property

The parameter for these should really be on the first not the second property

replace with a single system.platform

these two don't allow duration(foo) and also don't allow more than this number of levels...

these two don't allow duration(foo) and also don't allow more than this number of levels...

these two don't allow duration(foo) and also don't allow more than this number of levels...

The parameter for these should really be on the first not the second property

Member CGUIKeyboardFactory::ShowAndVerifyPassword (std::string &strPassword, const std::string &strHeading, int iRetries, unsigned int autoCloseMs=0)
GUI Setting to enable disable this feature y/n?
Member CGUILabel::Process (unsigned int currentTime)
Add the correct processing
Member CGUIMediaWindow::GetDirectory (const std::string &strDirectory, CFileItemList &items)
Do we want to limit the directories we apply the video ones to?
Member CGUIMediaWindow::GetFilteredItems (const std::string &filter, CFileItemList &items)
Need to update this to get all labels, ideally out of the displayed info (ie from m_layout and m_focusedLayout) though that isn't practical. Perhaps a better idea would be to just grab the info that we should filter on based on where we are in the library tree. Another idea is tying the filter string to the current level of the tree, so that going deeper disables the filter, but it's re-enabled on the way back out.
Member CGUIMediaWindow::GetStartFolder (const std::string &url)
This ifdef block probably belongs somewhere else. Move it to a better place!
Member CGUIMediaWindow::HaveDiscOrConnection (const std::string &strPath, int iDriveType)
Handle not connected to a remote share
Member CGUIMediaWindow::Update (const std::string &strDirectory, bool updateFilterPath=true)
OnInitWindow calls Update() before window path has been set properly.
Member CGUIMoverControl::CGUIMoverControl (int parentID, int controlID, float posX, float posY, float width, float height, const CTextureInfo &textureFocus, const CTextureInfo &textureNoFocus, KODI::UTILS::MOVING_SPEED::MapEventConfig &movingSpeedCfg)
implement correct analog speed
Member CGUIRenderingControl::FreeResources (bool immediately=false) override
locking
Member CGUIRenderingControl::Process (unsigned int currentTime, CDirtyRegionList &dirtyregions) override

Add processing to the addon so it could mark when actually changing

check for naughties

Member CGUIResizeControl::CGUIResizeControl (int parentID, int controlID, float posX, float posY, float width, float height, const CTextureInfo &textureFocus, const CTextureInfo &textureNoFocus, KODI::UTILS::MOVING_SPEED::MapEventConfig &movingSpeedCfg)
implement correct analog speed
Member CGUITextLayout::RenderOutline (float x, float y, KODI::UTILS::COLOR::Color color, KODI::UTILS::COLOR::Color outlineColor, uint32_t alignment, float maxWidth)
We should really have a better way to handle text extent - at the moment we assume that text is rendered from a posx, posy, width, and height which isn't enough to accurately position text. We need a vertical and horizontal offset of the baseline and cursor as well.
Member CGUITexture::Render (int32_t depthOffset=0, int32_t overrideDepth=-1)
The diffuse coloring applies to all vertices, which will look weird for stuff with borders, as will the -ve height/width for flipping
Member CGUIVideoControl::Process (unsigned int currentTime, CDirtyRegionList &dirtyregions) override
Proper processing which marks when its actually changed. Just mark always for now.
Member CGUIViewStateFromItems::CGUIViewStateFromItems (const CFileItemList &items)
Should default sort/view mode be specified?
Member CGUIVisualisationControl::OnInitialize (int channels, int samplesPerSec, int bitsPerSample) override
check for naughties
Member CGUIWindowFileManager::CanCopy (int iList)
Perhaps if the source is removeable media (DVD/CD etc.) we could put ripping/backup in here.
Member CGUIWindowFileManager::CanRename (int iList)
Renaming of shares (requires writing to sources.xml) this might be able to be done via the webserver code stuff...
Member CGUIWindowFileManager::HaveDiscOrConnection (std::string &strPath, int iDriveType)
Handle not connected to a remote share
Member CGUIWindowFileManager::OnPopupMenu (int iList, int iItem, bool bContextDriven=true)
We should add the option here for shares to be added if there aren't any
Member CGUIWindowFileManager::OnStart (CFileItem *pItem, const std::string &player)
2.0: Can this be removed, or should we run without the "special" file directories while
Member CGUIWindowFullScreen::Process (unsigned int currentTime, CDirtyRegionList &dirtyregion) override
This isn't quite optimal - ideally we'd only be dirtying up the actual video render rect which is probably the job of the renderer as it can more easily track resizing etc.
Member CGUIWindowManager::PreviousWindow ()
we may need to test here for the whether our history should be changed
Member CGUIWindowMusicBase::GetContextButtons (int itemNumber, CContextButtons &buttons) override
get rid of IsAddonsPath and IsScript check. CanQueue should be enough!
Member CGUIWindowMusicBase::OnAssignContent (const std::string &oldName, const CMediaSource &source)
: do async as updating sources for all albums could be slow??
Member CGUIWindowMusicBase::OnPlayMedia (int iItem, const std::string &player="") override
Should the playlist be cleared if nothing is already playing?
Member CGUIWindowMusicBase::OnScan (int iItem, bool bPromptRescan=false)
MUSICDB - should we allow scanning a single item into the database? This will require changes to the info scanner, which assumes we're running on a folder
Member CGUIWindowMusicBase::PlayItem (int iItem)
Add music-specific code for single playback of an item here (See OnClick in MediaWindow, and OnPlayMedia below)
Member CGUIWindowMusicBase::RetrieveMusicInfo ()
Scan for multitrack items here...
Member CGUIWindowPictures::LoadPlayList (const std::string &strPlayList) override

this should be reactive, based on a given event app player should stop the playback

this should be reactive based on a triggered event the window manager is the only component

Member CGUIWindowPictures::OnShowPictureRecursive (const std::string &strPath)

this should be reactive, based on a given event app player should stop the playback

window manager should react to a given event and start the window itself!

Member CGUIWindowPictures::ShowPicture (int iItem, bool startSlideShow)

this should be reactive, based on a given event app player should stop the playback

this should trigger some event that should led the window manager to activate another window

Member CGUIWindowVideoBase::LoadVideoInfo (CFileItemList &items, CVideoDatabase &database, bool allowReplaceLabels=true)
this could possibly be threaded as per the music info loading, we could also cache the info
Member CGUIWindowVideoBase::PlayItem (const std::shared_ptr< CFileItem > &item, const std::string &player)
get rid of "videos with versions as folder" hack!
Member CGUIWindowVideoBase::UpdateVideoVersionItems ()
patching the items after loading is a hack, which only works in the video window, not for example for home screen widgets!
Member CGUIWindowVisualisation::OnAction (const CAction &action) override
These should be mapped to its own function - at the moment it's overriding the global action of fastforward/rewind and OSD.
Member CHTTPImageTransformationHandler::CHTTPImageTransformationHandler (const HTTPRequest &request)
determine the maximum age
Member CInputStreamAddon::CanPause () override
drop this
Member CInputStreamAddon::ConvertAudioCodecProfile (STREAMCODEC_PROFILE profile)

: with ffmpeg >= 6.1 set the appropriate profile

: with ffmpeg >= 6.1 set the appropriate profile

: with ffmpeg >= 6.1 set the appropriate profile

Member CInputStreamAddon::Supports (const ADDON::AddonInfoPtr &addonInfo, const CFileItem &fileitem)
Error for users to show deprecation, can be removed in Kodi 20
Member CInputStreamPVRBase::CanPause () override
drop this
Member CLangInfo::CRegion::SetGlobalLocale ()
move to CLangInfo class
Member CLocalizeStrings::LoadSkinStrings (const std::string &path, const std::string &language)
shouldn't hold lock while loading file
Member CMediaLibraryEvent::Execute () const override

remove the filename for now as CGUIMediaWindow::GetDirectory() can't handle it

remove the filename for now as CGUIMediaWindow::GetDirectory() can't handle it

Member CMediaManager::TranslateDevicePath (const std::string &devicePath, bool bReturnAsDevice=false)
translate cdda://<device>/
Member CMime::GetFileTypeFromContent (const std::string &fileContent)

add detection for text types

add detection for other types if required

Member CMusicDatabase::GetArtistsByWhereJSON (const std::set< std::string > &fields, const std::string &baseDir, CVariant &result, int &total, const SortDescription &sortDescription=SortDescription())
: replace GetFilter to avoid exists as well as JOIn to albm_artist and song_artist tables
Member CMusicDatabase::GetSourcesByAlbum (int idAlbum, CFileItem *item)
: handle singles, or don't waste time checking songs
Member CMusicDatabase::RemoveSongsFromPath (const std::string &path, MAPSONGS &songmap, bool exact=true)

SQLite probably doesn't allow this, but can we rely on that??

move this below the m_pDS->exec block, once UPnP doesn't rely on this anymore

Member CMusicThumbLoader::LoadItemCached (CFileItem *pItem) override
Remove as "fanart" is never been cached for music folders (only for
Member CNetworkInterfaceIOS::GetHostMacAddress (unsigned long host, std::string &mac) const override
Unable to retrieve MAC address of an interface/ARP table from ios11 onwards.
Member CNetworkInterfaceIOS::GetMacAddress () const override
Unable to retrieve MAC address of an interface/ARP table from ios11 onwards.
Member CNetworkInterfaceIOS::GetMacAddressRaw (char rawMac[6]) const override
Unable to retrieve MAC address of an interface/ARP table from ios11 onwards.
Member CNetworkInterfaceWin10::GetHostMacAddress (unsigned long host, std::string &mac) const
implement raw ARP requests
Member CNetworkIOS::PingHost (unsigned long host, unsigned int timeout_ms=2000) override
ARP table is not accessible from iOS11 on. Was initially deprecated in iOS7 WOL/WakeOnAccess can not work without MAC addresses, so was no need to implement this at this stage.
Member CNetworkServices::OnSettingChanged (const std::shared_ptr< const CSetting > &setting) override
- General way of handling setting changes that require restart
Member CONTEXTMENU::CVideoPlayAndQueue::Execute (const std::shared_ptr< CFileItem > &item) const override
implement
Member CONTEXTMENU::CVideoPlayAndQueue::IsVisible (const CFileItem &item) const override
implement
Member CPlayerUtils::IsItemPlayable (const CFileItem &item)
add more types on demand.
Member CPreflightHandler::CheckForRemovedCacheFolder ()
: implement some sort of backup/restore if folder no longer exists?
Member CRenderSystemGLES::CaptureStateBlock () override
- NOTE: Only for Screensavers & Visualisations
Member CSaveFileState::DoWork (CFileItem &item, CBookmark &bookmark, bool updatePlayCount)

check possible failure of BeginTransaction

handle db failures to maintain data integrity

Member CSlideShowPic::Process (unsigned int currentTime, CDirtyRegionList &dirtyregions)
change m_displayEffect != EFFECT_NO_TIMEOUT to whether we're running the slideshow
Member CStaticListProvider::Update (bool forceRefresh) override
Also returned changed if properties are changed (if so, need to update scroll to letter).
Member CStereoscopicsManager::CStereoscopicsManager ()
Move this to Initialize() to avoid potential problems in ctor
Member CTagLoaderTagLib::ParseTag (ID3v2::Tag *id3v2, EmbeddedArt *art, MUSIC_INFO::CMusicInfoTag &tag)
wtf? Why 51 find some explanation, somewhere...
Member CTextureBundleXBT::UnpackFrame (const CXBTFReader &reader, const CXBTFFrame &frame)
Change return to std::optional<std::vector<uint8_t>>> when c++17 is allowed
Member CTextureCache::CleanAllUnusedImages ()
BACKWARD COMPATIBILITY FOR MUSIC THUMBS
Member CTextureCache::ClearCachedImage (const std::string &image, bool deleteSource=false)
This can be removed when the texture cache covers everything.
Member CTextureDatabase::CreateAnalytics () override
Should the path index be a covering index? (we need only retrieve texture)
Member CUDisksProvider::CUDisksProvider ()
do not use dbus_connection_pop_message() that requires the use of a private connection
Member CUPowerSyscall::CUPowerSyscall ()
do not use dbus_connection_pop_message() that requires the use of a private connection
Member CURL::Encode (std::string_view strURLData)
Update it to "-_.~" after Gotham according to RFC3986
Member CURL::Parse (std::string strURL)
fix all Addon paths
Member CVideoDatabase::DeleteEpisode (int idEpisode, bool bKeepId=false)
move this below CommitTransaction() once UPnP doesn't rely on this anymore
Member CVideoDatabase::DeleteMovie (int idMovie, DeleteMovieCascadeAction action=DeleteMovieCascadeAction::ALL_ASSETS, DeleteMovieHashAction hashAction=DeleteMovieHashAction::HASH_DELETE)
move this below CommitTransaction() once UPnP doesn't rely on this anymore
Member CVideoDatabase::DeleteMusicVideo (int idMusicVideo, bool bKeepId=false)
move this below CommitTransaction() once UPnP doesn't rely on this anymore
Member CVideoDatabase::DeleteTvShow (int idTvShow, bool bKeepId=false)
move this below CommitTransaction() once UPnP doesn't rely on this anymore
Member CVideoDatabase::GetAssetsForVideo (VideoDbContentType itemType, int mediaId, VideoAssetType assetType, CFileItemList &items)
add bool return type to GetVideoVersions
Member CVideoDatabase::GetDetailsForTvShow (const dbiplus::sql_record *const record, int getDetails=VideoDbDetailsNone, CFileItem *item=NULL)
videotag member + guiinfo int needed? – Currently not needed; having it available as item prop seems sufficient for skinning
Member CVideoDatabase::GetMovieInfo (const std::string &strFilenameAndPath, CVideoInfoTag &details, int idMovie=-1, int idVersion=-1, int getDetails=VideoDbDetailsAll)
get rid of "videos with versions as folder" hack!
Member CVideoDatabase::GetMoviesByWhere (const std::string &strBaseDir, const Filter &filter, CFileItemList &items, const SortDescription &sortDescription=SortDescription(), int getDetails=VideoDbDetailsNone)
get rid of "videos with versions as folder" hack!
Member CVideoDatabase::GetMusicVideosByArtist (const std::string &strArtist, CFileItemList &items)
SMARTPLAYLISTS what is this here for???
Member CVideoDatabase::GetPeopleNav (const std::string &strBaseDir, CFileItemList &items, const char *type, VideoDbContentType idContent=VideoDbContentType::UNKNOWN, const Filter &filter=Filter(), bool countOnly=false)
This routine (and probably others at this same level) use playcount as a reference to filter on at a later point. This means that we MUST filter these levels as you'll get double ups. Ideally we'd allow playcount to filter through as we normally do for tvshows to save this happening. Also, we apply this same filtering logic to the locked or unlocked paths to prevent these from showing. Whether or not this should happen is a tricky one - it complicates all the high level categories (everything above titles).
Member CVideoDatabase::GetPlayCounts (const std::string &path, CFileItemList &items)
also test a single query for the above and below
Member CVideoDatabase::SetStreamDetailsForFile (const CStreamDetails &details, const std::string &strFileNameAndPath)
ugly error return mechanism, fixme
Member CVideoPlayer::HandleMessages ()
After demuxer we add an offset to input pts so that displayed time and clock are increasing steadily. For seeking we need to determine the boundaries and offset of the desired segment. With the current approach calculated time may point to nirvana
Member CVideoPlayerVideo::Process () override
this needs to be set on a streamchange instead
Member CVideoPlayerVideo::ProcessDecoderOutput (double &frametime, double &pts)

implement

implement

Member CVideoThumbLoader::DetectAndAddMissingItemData (CFileItem &item)
in case of too many false positives due to using the full path, extract the filename only using string utils
Member CVideoThumbLoader::FillLibraryArt (CFileItem &item) override
Is m_artist set other than musicvideo? Remove this fallback if not.
Member CWeatherManager::OnSettingAction (const std::shared_ptr< const CSetting > &setting) override
maybe have ShowAndGetInput return a bool if settings changed, then only reset weather if true.
Member CWIN32Util::XBMCShellExecute (const std::string &strPath, bool bWaitForScriptExit=false)
Pause music and video playback
Member CXRandR::LoadCustomModeLinesToAllOutputs (void)
ERROR
Member CXRandR::Query (bool force, int screennum, bool ignoreoff=true)
ERROR
Class CZeroconf
Make me safe for use in static initialization. CritSec is a static member :/ use e.g. loki's singleton implementation to make do it properly
Member CZeroconfAvahi::CZeroconfAvahi ()
throw exception?
Member CZeroconfAvahi::~CZeroconfAvahi () override
does tv survive the thread?
Member CZeroconfBrowserAvahi::CZeroconfBrowserAvahi ()
throw exception? can this even happen?
Member dbiplus::MysqlDataset::exec (const std::string &sql) override
collect results and store in exec_res
Member deleteWindow (cc708_service_decoder *decoder, int window)
Do the actual deletion (remove from display if needed, etc), mark as
Member EVENTCLIENT::CEventClient::AddPacket (std::unique_ptr< EVENTPACKET::CEventPacket > packet)
limit payload size
Member EVENTCLIENT::CEventClient::OnPacketHELO (EVENTPACKET::CEventPacket *packet)
check it last HELO packet was received less than 5 minutes back if so, do not show notification of connection.
Member game_analog_stick_event
Document which coordinate system is used, left-hand or right-hand.
Member game_stream_hw_framebuffer_properties::bottom_left_origin
: Move to GL specific interface
Member game_stream_hw_framebuffer_properties::cache_context
: Obsolete? Maybe frontend should just always assume this...
Member game_stream_hw_framebuffer_properties::depth
: Obsolete
Member game_stream_hw_framebuffer_properties::stencil
: Obsolete.
Member get_internal_from_G2 (unsigned char g2_char)
Probably not right
Member get_internal_from_G3 (unsigned char g3_char)
Probably not right
Member handle_708_C0 (cc708_service_decoder *decoder, unsigned char *data, int data_length)

Process HDR

Process FF

Handle PE16

Do something useful eventually

Member handle_708_C2 (cc708_service_decoder *decoder, unsigned char *data, int data_length)
This code is completely untested due to lack of samples. Just following specs!
Member handle_708_C3 (cc708_service_decoder *decoder, unsigned char *data, int data_length)
Implement if a sample ever appears
Member handle_708_DFx_DefineWindow (cc708_service_decoder *decoder, int window, unsigned char *data)

COLORS

Warn somehow

Member handle_708_DLC_DelayCancel (cc708_service_decoder *decoder)
See above
Member handle_708_DLY_Delay (cc708_service_decoder *decoder, int tenths_of_sec)
Probably ask for the current FTS and wait for this time before resuming -
Member handle_708_extended_char (cc708_service_decoder *decoder, unsigned char *data, int data_length)

This code is completely untested due to lack of samples. Just following specs!

Something

Member handle_708_G0 (cc708_service_decoder *decoder, unsigned char *data, int data_length)
Substitution of the music note character for the ASCII DEL character
Member handle_708_HDW_HideWindows (cc708_service_decoder *decoder, int windows_bitmap)
Actually Hide Window
Member HTML::CHTMLUtil::ConvertHTMLToW (const std::wstring &strHTML, std::wstring &strStripped)
STRING_CLEANUP
Page Infolabels and Boolean conditions

[docs] Improve the description and create links for functions

[docs] Separate boolean conditions from infolabels

[docs] Order items alphabetically within subsections for a better search experience

[docs] Order subsections alphabetically

[docs] Use links instead of bold values for infolabels/bools so we can use a link to point users when providing help

get a way of centralize all random art strings used in core so we can point users to them while still making it clear they can have any value.

Player.HasPerformedSeek(interval) boolean

some values are hardcoded in the middle of the code - refactor to make it easier to track

Labels Type

Description

System.AlarmLessOrEqual(alarmname,seconds) boolean

Not currently used

MusicPartyMode.RandomSongsPicked string

So maybe rather than a row each have one entry for Role.XXXXX with composer, arranger etc. as listed values

List of all art types


description might be outdated

ListItem.Duration string

missing reference in GuiInfoManager.cpp making it hard to track.

ListItem.Property(Addon.Orphaned) boolean

missing reference in GuiInfoManager.cpp making it hard to track.


Find a better way of finding the art types instead of manually defining them here.


move to a future window document.


move to a future window document.


Make this annotate an array of infobools/labels to make it easier to track

Labels Type Description
Library.IsScanning boolean
Member ISlideShowDelegate::AddFromPath (const std::string &strPath, bool bRecursive, SortBy method=SortByLabel, SortOrder order=SortOrderAscending, SortAttribute sortAttributes=SortAttributeNone, const std::string &strExtensions="")=0
- refactor to use an options struct. Methods with so many arguments are a sign of a bad design...
Member ISlideShowDelegate::RunSlideShow (const std::string &strPath, bool bRecursive=false, bool bRandom=false, bool bNotRandom=false, const std::string &beginSlidePath="", bool startSlideShow=true, SortBy method=SortByLabel, SortOrder order=SortOrderAscending, SortAttribute sortAttributes=SortAttributeNone, const std::string &strExtensions="")=0
- refactor to use an options struct. Methods with so many arguments are a sign of a bad design...
Member JSONRPC::CPlayerOperations::GetItem (const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result)

remove this once there is no route to playback that updates

remove this once there is no route to playback that updates

Member JSONRPC::CPlayerOperations::Open (const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result)
: This should be a delegator method instead of going via GUI! look into triggering stop from Reset() itself!
Member JSONRPC::CPlaylistOperations::Clear (const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result)
: Stop should be a delegator method to void GUI coupling! Same goes for other player controls.
Member JSONRPC::CVideoLibrary::FillFileItemList (const CVariant &parameterObject, CFileItemList &list)
API support for video version id
Member JSONRPC::CVideoLibrary::GetMovieDetails (const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result)
API support for video version id
Member JSONRPC::CVideoLibrary::RefreshMovie (const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result)
API support for video version id
Member JSONRPC::CVideoLibrary::SetMovieDetails (const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result)
API support for video version id)
Member KODI::ADDONS::CAudioDecoder::Init (const CFileItem &file, unsigned int filecache) override
About audio decoder in most cases Kodi's one not work, add fallback to use addon if this fails. Need API change about addons music info tag!
Member KODI::ADDONS::CImageDecoder::LoadInfoTag (const std::string &fileName, CPictureInfoTag *tag)
Rework CPictureInfoTag to not limit on fixed structures ExifInfo & IPTCInfo.
Class KODI::ADDONS::IAddonSupportList
Extend this class with database usage and support to activate / deactivate the respective formats and thus to override add-ons if several support the same.
Member KODI::GAME::CControllerActivity::OnMouseMotion (const MOUSE::PointerName &relpointer, int differenceX, int differenceY)

Fix mouse pointer handling

Handle multiple pointers

Member KODI::GAME::CGameClient::GetInstanceInterface ()
This function becomes removed after old callback library system is removed.
Member KODI::GAME::CGameClientController::CGameClientController (CGameClientInput &input, ControllerPtr controller)
Sort vectors
Member KODI::GAME::CGameClientInput::PortAddress
de-duplicate
Member KODI::GAME::CGameClientMouse::OnMotion (const std::string &relpointer, int dx, int dy) override
Allow mouse motion to activate controller This will follow a larger refactoring of the mouse input system
Member KODI::GAME::CGameSettings::SetShowOSDHelp (bool bShow)
Asynchronous save
Member KODI::GAME::CGUIConfigurationWizard::MapPrimitive (JOYSTICK::IButtonMap *buttonMap, KEYMAP::IKeymap *keymap, const JOYSTICK::CDriverPrimitive &primitive) override

This only succeeds for game.controller.default; no actions are

Handle multiple actions mapped to the same key

Check if primitive is a cancel or motion action

Member KODI::GAME::CGUIControllerList::OnFocus (unsigned int controllerIndex) override
Activate controller for all game controller controls
Member KODI::GAME::CGUIControllerList::ResetController () override
Choose peripheral
Member KODI::GAME::CGUIDialogButtonCapture::Process () override
Move to rendering thread when there is a rendering thread
Member KODI::GAME::CGUIWindowGames::OnItemInfo (int itemNumber)
Member KODI::GAME::CGUIWindowGames::OnMessage (CGUIMessage &message) override

Class KODI::GAME::IGameInputCallback
Remove this file when Game API is updated for input polling
Member KODI::GUILIB::GUIINFO::CGamesGUIInfo::InitCurrentItem (CFileItem *item) override
Savestates were removed from v18
Member KODI::GUILIB::GUIINFO::CVideoGUIInfo::GetLabel (std::string &value, const CFileItem *item, int contextWindow, const CGUIInfo &info, std::string *fallback) const override
get rid of "videos with versions as folder" hack!
Member KODI::JOYSTICK::CJoystickEasterEgg::OnFinish (void)
Shake screen
Member KODI::KEYBOARD::Modifier
Move CKey enum to this file
Member KODI::KEYMAP::CKeymapHandler::OnAccelerometerMotion (const JOYSTICK::FeatureName &feature, float x, float y, float z) override
implement
Member KODI::MUSIC::IsAudio (const CFileItem &item)
If the file is a zip file, ask the game clients if any support this
Member KODI::PLAYLIST::CPlayListPlayer::Play (int index, const std::string &player, bool replace=false, bool playPreviousOnFail=false, bool forceSelection=false)
- move the above failure logic and the below success logic to callbacks instead so we don't rely on the return value of PlayFile()
Member KODI::PLAYLIST::CSmartPlaylistRule::GetOperator (const std::string &type) const override
SMARTPLAYLISTS do we really need this, or should we just make this field the premiered date and request a date?
Member KODI::RETRO::CGameWindowFullScreen::OnDeinitWindow (int nextWindowID) override
Member KODI::RETRO::CGameWindowFullScreen::OnInitWindow () override

We need to route this check through the GUI bridge. By adding the

Member KODI::RETRO::CGameWindowFullScreen::Process (unsigned int currentTime, CDirtyRegionList &dirtyregion) override
This isn't quite optimal - ideally we'd only be dirtying up the actual video render rect which is probably the job of the renderer as it can more easily track resizing etc.
Member KODI::RETRO::CGUIGameControl::Process (unsigned int currentTime, CDirtyRegionList &dirtyregions) override
Proper processing which marks when its actually changed
Member KODI::RETRO::CGUIRenderControl::RenderEx () override
Member KODI::RETRO::CGUIRenderFullScreen::RenderEx () override
Member KODI::RETRO::CGUIRenderTarget::IsDirty ()
Member KODI::RETRO::CGUIRenderTarget::m_renderManager
Member KODI::RETRO::CRenderBufferOpenGL::UploadTexture () override
This is subject to change: We want to use PBO's instead of glTexSubImage2D! This code has been borrowed from OpenGL ES in order to remove GL dependencies on GLES.
Member KODI::RETRO::CRetroPlayer::Seek (bool bPlus=true, bool bLargeStep=false, bool bChapterOverride=false) override
Member KODI::RETRO::CReversiblePlayback::CreateSavestate (bool autosave, const std::string &savestatePath="") override
Handle savestates for standalone game clients
Member KODI::RETRO::CRPRenderManager::GetVideoBuffer (unsigned int width, unsigned int height, VideoStreamBuffer &buffer)
De-prioritize buffer pools with write-only or unaligned memory
Member KODI::RETRO::CRPRenderManager::SaveThumbnail (const std::string &thumbnailPath)
rotate image by rotationCCW
Member KODI::RETRO::CRPRenderManager::SupportsRenderFeature (RENDERFEATURE feature) const override
Move to ProcessInfo
Member KODI::RETRO::CRPRenderManager::SupportsScalingMethod (SCALINGMETHOD method) const override
Move to ProcessInfo
Member KODI::RETRO::CSavestateDatabase::ClearSavestatesOfGame (const std::string &gamePath, const std::string &gameClient="")
Member KODI::RETRO::IRenderBuffer::GetFrameSize () const =0
Remove me
Member KODI::VIDEO::CVideoInfoScanner::GetDetails (CFileItem *pItem, const std::unordered_map< std::string, std::string > &uniqueIDs, CScraperUrl &url, const ADDON::ScraperPtr &scraper, VIDEO::IVideoInfoTagLoader *nfoFile=nullptr, CGUIDialogProgress *pDialog=nullptr)
sort out some better return codes.
Member KODI::VIDEO::CVideoInfoScanner::GetRecursiveFastHash (const std::string &directory, const std::vector< std::string > &excludes) const
some filesystems may return the mtime/ctime inline, in which case this is unnecessarily expensive. Consider supporting Stat() in our directory cache?
Member KODI::VIDEO::CVideoInfoScanner::OnProcessSeriesFolder (EPISODELIST &files, const ADDON::ScraperPtr &scraper, bool useLocal, const CVideoInfoTag &showInfo, CGUIDialogProgress *pDlgProgress=NULL)

should we just skip to the next episode?

Ideally we would return INFO_HAVE_ALREADY if we don't have to update any episodes and we should return INFO_NOT_FOUND only if no information is found for any of the episodes. INFO_ADDED then indicates we've added one or more episodes.

Member KODI::VIDEO::CVideoInfoScanner::RetrieveInfoForMovie (CFileItem *pItem, bool bDirNames, ADDON::ScraperPtr &scraper, bool useLocal, CScraperUrl *pURL, CGUIDialogProgress *pDlgProgress)
This is not strictly correct as we could fail to download information here or error, or be cancelled
Member KODI::VIDEO::CVideoInfoScanner::RetrieveInfoForMusicVideo (CFileItem *pItem, bool bDirNames, ADDON::ScraperPtr &scraper, bool useLocal, CScraperUrl *pURL, CGUIDialogProgress *pDlgProgress)
This is not strictly correct as we could fail to download information here or error, or be cancelled
Member KODI::VIDEO::IsVideo (const CFileItem &item)
If the file is a zip file, ask the game clients if any support this
Member KODI::WINDOWING::GBM::CDRMAtomic::InitDrm () override
: disabled until upstream kernel changes are merged
Member KODI::WINDOWING::GBM::CWinSystemGbm::UpdateDisplayHardwareScaling (const RESOLUTION_INFO &resInfo) override
The PR that made the res struct constant was abandoned due to drama.
Member KodiToAddonFuncTable_Peripheral
Mouse, light gun, multitouch
Member MEDIA_DETECT::CCdIoSupport::GetCdTextInfo (xbmc_cdtext_t &xcdt, int trackNum)

- remove after Ubuntu 16.04 (Xenial) is EOL

- remove after Ubuntu 16.04 (Xenial) is EOL

Member MEDIA_DETECT::CCdIoSupport::IsIt (int num)
check that num < largest sig.
Member MUSIC_GRABBER::CMusicInfoScraper::CheckValidOrFallback (const std::string &fallbackScraper)
Handle fallback mechanism
Member MUSIC_INFO::CMusicInfoScanner::FileItemsToAlbums (CFileItemList &items, VECALBUMS &albums, MAPSONGS *songsMap=NULL)
in future we may wish to union up the genres, for now we assume they're the same
Member MUSIC_INFO::CMusicInfoScanner::RetrieveLocalArt ()
: title = Checking for local art
Member MUSIC_INFO::CMusicInfoTagLoaderSHN::Load (const std::string &strFileName, CMusicInfoTag &tag, EmbeddedArt *art=NULL) override
Use libavformat to calculate duration.
Member PCRE2_CODE_UNIT_WIDTH
- move to std::regex (after switching to gcc 4.9 or higher) and get rid of CRegExp
Member PERIPHERALS::CGUIDialogPeripheralSettings::InitializeSettings () override
add more types if needed
Member PERIPHERALS::CPeripheral::AddSetting (const std::string &strKey, const std::shared_ptr< const CSetting > &setting, int order)
add more types if needed
Member PERIPHERALS::CPeripheralBusApplication::PerformDeviceScan (PeripheralScanResults &results) override
Fix game clients to handle mouse disconnecting For now mouse is always connected
Member PERIPHERALS::CPeripheralBusGCController::ProcessEvents () override

Multiple controller event processing

Multiple controller handling

Member PERIPHERALS::CPeripheralBusUSB::PerformDeviceScan (PeripheralScanResults &results) override
just assume this is a HID device for now, since the only devices that we're currently interested in are HID devices
Member PERIPHERALS::CPeripherals::GetNextKeypress (float frameTime, CKey &key)
CEC only supports toggling the mute status at this time
Member PERIPHERALS::CPeripherals::OnDeviceAdded (const CPeripheralBus &bus, const CPeripheral &peripheral)
Improve device notifications in v18
Member PERIPHERALS::CPeripherals::OnDeviceDeleted (const CPeripheralBus &bus, const CPeripheral &peripheral)
Improve device notifications in v18
Member PERIPHERALS::CPeripherals::ResetButtonMaps (const std::string &controllerId)
Add a device parameter to allow resetting button maps per-device
Member PERIPHERALS::CPeripherals::UnMute ()
CEC only supports toggling the mute status at this time
Member process_service_block (cc708_service_decoder *decoder, unsigned char *data, int data_length)
Not sure if a local reset is going to be helpful here.
Member PROFILES_FILE

Remove me

Remove me

Remove me

Remove me

Remove me

Remove me

Remove me

Remove me

Remove me

Remove me

Remove me

Remove me

Remove me

eventually the profile should dictate where special://masterprofile/ is but for now it makes sense to leave all the profile settings in a user writeable location like special://masterprofile/

Struct pty_skin_info
Improve and test alarm message
Member PVR::CGUIWindowPVRChannelsBase::GetRootPath () const override
Would it make sense to change GetRootPath() declaration in CGUIMediaWindow to be non-const to get rid of the const_cast's here?
Member PVR::CPVRChannelGroup::SetClientGroupName (const std::string &groupName)
why must we persist immediately?
Member PVR::CPVRChannelGroup::SetClientID (int clientID)
why must we persist immediately?
Member PVR::CPVRChannelGroup::SetPath (const CPVRChannelsPath &path)
why must we persist immediately?
Member PVR::CPVRChannelGroupAllChannels::CheckGroupName ()
major design flaw to fix: channel and group URLs must not contain the group name!
Member PVR::CPVRChannelGroups::Update (const std::shared_ptr< CPVRChannelGroup > &group, bool bUpdateFromClient=false)
If a group was renamed in the backend, no chance to find it here! PVR API should be extended by a uuid for channel groups which never must change, not even after rename.
Member PVR::CPVRDescrambleInfo::Caid () const
add other getters (currently not used).
Member PVR::CPVREpg::Update (time_t start, time_t end, int iUpdateTime, int iPastDays, const std::shared_ptr< CPVREpgDatabase > &database, bool bForceUpdate=false)
why the channelid check?
Member PVR::CPVRGUIActionsEPG::FindSimilar (const CFileItem &item) const
If we want dialogs to spawn program search in a clean way - without having to force-close any
Member PVR::CPVRProviders::GetProviders () const
optimize; get rid of iteration.
Member PythonBindings::PyXBMCGetUnicodeString (std::string &buf, PyObject *pObject, bool coerceToString, const char *argumentName, const char *methodname)
UTF-8: Does python use UTF-16? Do we need to convert from the string charset to UTF-8 for non-unicode data?
Member Shaders::GLSLOutput::OnCompiledAndLinked (GLuint programHandle)
create a dither pattern
Member SOCKETS::CPosixUDPSocket::Broadcast (const CAddress &addr, const int datasize, const void *data) override
implement
Member TEST (TestDatabaseUtils, GetFieldIndex_MediaTypeAlbum)
Should enums in CMusicDatabase be made public instead?
Member TEST (TestDatabaseUtils, BuildLimitClause)
Need some way to test this function
Member TEST (TestRegExp, RegFind)
gtest/gtest.h needs to come in before utils/RegExp.h. Investigate why.
Member TEST_F (TestCharsetConverter, wToUTF8)
Resolve correct input/output for this function
Member TEST_F (TestCharsetConverter, getCharsetLabels)
Resolve correct input/output for this function
Member TestBasicEnvironment::SetUp () override

Something should be done about all the asserts in GUISettings so that the initialization of these components won't be needed.

Make the initialization of the VFS here optional so it can be testable in a test case.

Member UPNP::BuildObject (CFileItem &item, NPT_String &file_path, bool with_count, NPT_Reference< CThumbLoader > &thumb_loader, const PLT_HttpRequestContext *context, CUPnPServer *upnp_server, UPnPService upnp_service)
- get file count of this directory
Member UPNP::BuildObject (PLT_MediaObject *entry, UPnPService upnp_service)
fill pictureinfotag?
Member UPNP::CUPnPRenderer::OnSetNextAVTransportURI (PLT_ActionReference &action) override
get rid of window checks (go via SlideshowDelegator)
Member UPNP::CUPnPRenderer::UpdateState ()
: Remove dependency on GUI, go via slideshowdelegator
Member UPNP::CUPnPServer::OnBrowseMetadata (PLT_ActionReference &action, const char *object_id, const char *filter, NPT_UInt32 starting_index, NPT_UInt32 requested_count, const char *sort_criteria, const PLT_HttpRequestContext &context) override
We need to keep track of the overall SystemUpdateID of the CDS
Member UPNP::CUPnPServer::OnUpdateObject (PLT_ActionReference &action, const char *object_id, NPT_Map< NPT_String, NPT_String > &current_vals, NPT_Map< NPT_String, NPT_String > &new_vals, const PLT_HttpRequestContext &context) override
implement this
Member UPNP::DecodeObjectId (const std::string &id)
all other items except upnproot and -1 (the parent of upnproot) seem to only be enabled
Member UPNP::EncodeObjectId (const std::string &id)
all other items except upnproot and -1 (the parent of upnproot) seem to only be enabled
Member UPNP::GetProtocolInfo (const CFileItem &item, const char *protocol, const PLT_HttpRequestContext *context)

fixup the protocol just in case nothing was passed

add rtsp ?

Member URIUtils::GetParentPath (const std::string &strPath, std::string &strParent)
Make a new python call to get the plugin content type and remove this temporary hack
Member URIUtils::IsStreamedFilesystem (const std::string &strPath)
sftp/ssh special case has to be handled by vfs addon
Member UTILS::DISCS::GetDiscInfo (DiscInfo &info, const std::string &mediaPath)
it's wrong to include videoplayer scoped files, refactor
Member VAAPI::CFFmpegPostproc::UpdateDeintMethod (EINTERLACEMETHOD method) override
switching between certain methods could be done without deinit/init
Member VIDEODB_SEASON_IDS
is this comment valid for seasons? There is no offset structure or am I wrong?
Member VideoPlayerCodec::Init (const CFileItem &file, unsigned int filecache) override
convey CFileItem::ContentLookup() into Open()
Member WINDOW_DIALOG_SELECT_VIDEO_VERSION
Numbers given here must match the ids given in strings.po for a translatable string for the window. 12009 to 12014 are already taken for something else in strings.po (accidentally). So, do not define windows with ids 12009 to 12014, unless strings.po got fixed.
Member XBMCAddon::Python::PythonCallbackHandler::shouldRemoveCallback (AddonClass *obj, void *threadState) override
This is a stupid way to get this information back to the handler. there should be a more language neutral means.
Class XBMCAddon::RetardedAsyncCallbackHandler
Allow a cross thread synchronous execution. Fix the stupid means of calling the clearPendingCalls by passing userData which is specific to the handler/language type.
Member XBMCAddon::xbmc::getSupportedMedia (const char *mediaType)

Add a mediaType enum

implement

Member XBMCAddon::xbmc::PlayList::PlayList (int playList)
need a means to check for a valid construction either by throwing an exception or by an "isValid" check
Member XBMCAddon::xbmcgui::ListItem::setInfo (...)
add the rest of the infolabels
Member XBMCAddon::xbmcgui::Window::dispose ()
rework locking
Member XBMCAddon::xbmcgui::Window::GetControlById (int iControlId, CCriticalSection *gc)
Yuck! Should probably be done with a Factory pattern
Member XBMCAddon::xbmcgui::WindowDialogMixin::OnAction (const CAction &action)
Figure out how to clean up the CAction
Member XBMCAddon::xbmcgui::WindowXML::OnMessage (CGUIMessage &message) override
We shouldn't be dropping down to CGUIWindow in any of this ideally. We have to make up our minds about what python should be doing and what this side of things should be doing
Class XBMCAddon::xbmcgui::WindowXMLInterceptor
This should be done with template specialization
Member XFILE::CAddonsDirectory::FileItemFromAddon (const std::shared_ptr< ADDON::IAddon > &addon, const std::string &path, bool folder=false)
fix hacks that depends on these
Member XFILE::CAPKDirectory::ContainsFiles (const CURL &url) override
why might we need this ?
Member XFILE::CCurlFile::CReadState::WriteCallback (char *buffer, size_t size, size_t nitems)
Limit max. amount of the overflowbuffer
Member XFILE::CCurlFile::ParseAndCorrectUrl (CURL &url)
create a tokenizer that doesn't skip empty's
Member XFILE::CCurlFile::Seek (int64_t iFilePosition, int iWhence=SEEK_SET) override
daap is gone. is this needed for something else?
Member XFILE::CDirectory::GetDirectory (const CURL &url, const std::shared_ptr< IDirectory > &pDirectory, CFileItemList &items, const CHints &hints)
we shouldn't be checking the gui setting here, callers should use getHidden instead
Member XFILE::CPluginDirectory::AddSortMethod (int handle, SORT_METHOD sortMethod, const std::string &labelMask, const std::string &label2Mask)
Add all sort methods and fix which labels go on the right or left
Member XFILE::CVirtualDirectory::IsInSource (const std::string &strPath) const
May need to handle other special cases that GetMatchingSource() fails on
Member XFILE::CWin32Directory::GetDirectory (const CURL &url, CFileItemList &items) override
support m_strFileMask, require rewrite of internal caching
Member XFILE::CWin32File::Rename (const CURL &urlCurrentName, const CURL &urlNewName)
check whether it's file or directory
Member XFILE::CWin32SMBDirectory::GetDirectory (const CURL &url, CFileItemList &items)
support m_strFileMask, require rewrite of internal caching
Member XFILE::CWin32SMBDirectory::RealExists (const CURL &url, bool tryToConnect)
use real caseless string comparison everywhere in this function
Member XFILE::CZeroconfDirectory::GetDirectory (const CURL &url, CFileItemList &items) override
try automatic conversion -> remove leading '_' and '._tcp'?