Kodi Documentation  20.0
Kodi is an open source media player and entertainment hub.
Todo List
Member [TVOSDisplayManager observeValueForKeyPath:ofObject:change:context:]
Member ActionName
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::CAddonInstallJob::DoWork () override
fix design flaw in file copying: We use CFileOperationJob to download the package from the internet
Member ADDON::CAddonStatusHandler::CAddonStatusHandler (const std::string &addonID, ADDON_STATUS status, std::string message, 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::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 ANNOUNCEMENT::CAnnouncementManager::DoAnnounce (AnnouncementFlag flag, const std::string &sender, const std::string &message, const CFileItemPtr &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 BS_RB24 (const uint8_t *x)
refactor this so as not to need these ffmpeg routines. These are not exposed in ffmpeg's API so we dupe them here.
Member BS_WB32 (p, d)
refactor this so as not to need these ffmpeg routines. These are not exposed in ffmpeg's API so we dupe them here.
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 CAndroidKey::onKeyboardEvent (AInputEvent *event)
implement
Member CApplication::FrameMove (bool processEvents, bool processGUI=true) override
look into the possibility to use this for GBM int fps = 0;
Member CApplication::PlayFile (CFileItem item, const std::string &player, bool bRestart=false)
- this will fail if user seeks back to first file in stack
Member CApplication::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 &item, const CContextMenuItem &root=MAIN) 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 CCustomControllerTranslator::MapActions (int windowID, const TiXmlNode *pDevice) override
Member CDateTime::SetFromDateString (const std::string &date)
STRING_CLEANUP
Member CDDB::Xcddb::parseData (const char *buffer)
STRING_CLEANUP
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 inproper use of the side_data
Member CDVDDemuxClient::Read () override
drop this block
Member CDVDDemuxUtils::FreeDemuxPacket (DemuxPacket *pPacket)
: properly handle avpkt side_data. this works around our inproper use of the side_data
Member CDVDDemuxUtils::StoreSideData (DemuxPacket *pkt, AVPacket *src)
: properly handle avpkt side_data. this works around our inproper use of the side_data
Member CDVDInputStream::CanPause ()
drop this
Member CDVDTeletextData::Process () override
implement
Member CDVDVideoCodecDRMPRIME::AddData (const DemuxPacket &packet) override
: properly handle avpkt side_data. this works around our inproper 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 inproper 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 CEdl::RemoveCutTime (int iSeek) const
Consider an optimization of using the (now unused) total cut time if the seek time requested is later than the end of the last recorded cut. For example, when calculating the total duration for display.
Member CFavouritesService::GetExecutePath (const CFileItem &item, const std::string &contextWindow) const
STRING_CLEANUP
Member CFileExtensionProvider::CanOperateExtension (const std::string &path) const

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

Check VFS 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::IsAudio () const
If the file is a zip file, ask the game clients if any support this
Member CFileItem::IsVideo () const
If the file is a zip file, ask the game clients if any support this
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 CGUIDialogVideoInfo::ManageVideoItemArtwork (const CFileItemPtr &item, const MediaType &type)
Do we need to clear the cached image?
Member CGUIDialogVideoInfo::OnGetArt ()

this can be removed once these are unified.

Do we need to clear the cached image?

Member CGUIDialogVideoInfo::OnGetFanart ()

Do we need to clear the cached image?

Do we need to clear the cached image?

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 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)

implement correct analog speed

implement correct computation of acceleration

implement correct computation of maxspeed

Member CGUIRenderingControl::FreeResources (bool immediately=false) override
locking
Member CGUIRenderingControl::Process (unsigned int currentTime, CDirtyRegionList &dirtyregions) override

check for naughties

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

Member CGUIResizeControl::CGUIResizeControl (int parentID, int controlID, float posX, float posY, float width, float height, const CTextureInfo &textureFocus, const CTextureInfo &textureNoFocus)

implement correct analog speed

implement correct computation of acceleration

implement correct computation of maxspeed

Member CGUITextLayout::RenderOutline (float x, float y, UTILS::Color color, UTILS::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 ()
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::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 CGUIWindowVideoNav::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 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::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 CMediaSourceSettings::Save (const std::string &file) const
Should we be specifying utf8 here??
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::CPlay::IsVisible (const CFileItem &item) const override
implement
Member CONTEXTMENU::CPlayAndQueue::Execute (const CFileItemPtr &item) const override
implement
Member CONTEXTMENU::CPlayAndQueue::IsVisible (const CFileItem &item) const override
implement
Member CONTEXTMENU::CPlayNext::Execute (const CFileItemPtr &item) const override
implement
Member CONTEXTMENU::CPlayNext::IsVisible (const CFileItem &item) const override
implement
Member CONTEXTMENU::CQueue::Execute (const CFileItemPtr &item) const override
implement
Member CONTEXTMENU::CQueue::IsVisible (const CFileItem &item) const override
implement
Member CPosixTimezone::CPosixTimezone ()
STRING_CLEANUP
Member CPreflightHandler::CheckForRemovedCacheFolder ()
: implement some sort of backup/restore if folder no longer exists?
Member CRenderSystemGLES::CaptureStateBlock () override
- NOTE: Only for Screensavers & Visualisations
Member CRssManager::Load ()
UTF-8: Do these URLs need to be converted to UTF-8? What about the xml encoding?
Member CSettings::Initialize () override
: remove in c++17
Member CSettings::SETTING_LOOKANDFEEL_SKIN
: remove in c++17
Member CSlideShowPic::Process (unsigned int currentTime, CDirtyRegionList &dirtyregions)
change m_displayEffect != EFFECT_NO_TIMEOUT to whether we're running the slideshow
Member 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 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 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 (const std::string &strURLData)
Update it to "-_.~" after Gotham according to RFC3986
Member CURL::Parse (const 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, bool bKeepId=false)
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::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, int idContent=-1, 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 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 DllLoader::LoadExports ()
Validate all pointers are valid. Is a zero RVA valid or not? I'd guess not as it would point to the coff file header, thus not right.
Member EVENTCLIENT::CEventClient::AddPacket (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 FunctionNeedsWrapping (Export *exports, const char *functionName, void **fixup)
Should we be tracking stuff?
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 GUIFontManager::LoadFonts (const TiXmlNode *fontNode)
Why do we tolower() this shit?
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

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 KEY_BUTTON_A
Remove dependence on CAction
Member KODI::GAME::CDialogGameOSDHelp::OnInitWindow ()

Define Select + X combo elsewhere

Define SNES controller elsewhere

Activate controller for all game controller controls

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::HasAgent () const
We check m_portMap instead of m_joysticks because m_joysticks is
Member KODI::GAME::CGameClientInput::OpenKeyboard (const ControllerPtr &controller)
Move to player manager
Member KODI::GAME::CGameClientInput::OpenMouse (const ControllerPtr &controller)
Move to player manager
Member KODI::GAME::CGameClientInput::Start (IGameInputCallback *input)

Move to player manager

Move to player manager

Move to player manager

Member KODI::GAME::CGameSettings::SetShowOSDHelp (bool bShow)
Asynchronous save
Member KODI::GAME::CGUIConfigurationWizard::MapPrimitive (JOYSTICK::IButtonMap *buttonMap, 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::CGUIGameController::ActivateController (const ControllerPtr &controller)
Sometimes this fails on window init
Member KODI::GAME::CGUIGameController::Render () override
Render pressed buttons
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::JOYSTICK::CJoystickEasterEgg::OnFinish (void)
Shake screen
Member KODI::JOYSTICK::CKeymapHandler::OnAccelerometerMotion (const FeatureName &feature, float x, float y, float z) override
implement
Member KODI::KEYBOARD::Modifier
Move CKey enum to this file
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 () override

Handle savestates for standalone game clients

Accumulate playtime instead of deriving it

Member KODI::RETRO::CRPProcessInfo::ResetInfo ()

Member KODI::RETRO::CRPRenderManager::GetVideoBuffer (unsigned int width, unsigned int height, AVPixelFormat &format, uint8_t *&data, size_t &size)
Handle multiple buffers
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::CSavestateDatabase::DeleteSavestate (const std::string &path)
Member KODI::RETRO::CSavestateDatabase::GetSavestatesNav (CFileItemList &items, const std::string &gamePath, const std::string &gameClient="")
Member KODI::RETRO::CSavestateDatabase::RenameSavestate (const std::string &path, const std::string &label)
Member KODI::RETRO::IRenderBuffer::GetFrameSize () const =0
Remove me
Member KODI::WINDOWING::GBM::CDRMAtomic::InitDrm () override
: disabled until upstream kernel changes are merged
Member KODI::WINDOWING::GBM::CDRMObject::GetPropertyValue (const std::string &name, const std::string &valueName) const
: improve with c++17
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 listitem_labels []
Find a better way of finding the art types instead of manually defining them here.
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.
Namespace PCRE
- 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 PLAYLIST::CPlayListPlayer::Play (int index, const std::string &player, bool replace=false, bool playPreviousOnFail=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 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/

Class pty_skin_info
Improve and test alarm message
Member PVR::CPVRChannelGroup::SetGroupName (const std::string &strGroupName)
why must we persist immediately?
Member PVR::CPVRChannelGroup::SetPath (const CPVRChannelsPath &path)
why must we persist immediately?
Member PVR::CPVRChannelGroup::UpdateChannel (const std::pair< int, int > &storageId, const std::string &strChannelName, const std::string &strIconPath, int iEPGSource, int iChannelNumber, bool bHidden, bool bEPGEnabled, bool bParentalLocked, bool bUserSetIcon)
add other scrapers
Member PVR::CPVRClient::GetInstanceInterface ()
This function will be removed after old callback library system is removed.
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::CPVRGUIActions::FindSimilar (const std::shared_ptr< CFileItem > &item) const
If we want dialogs to spawn program search in a clean way - without having to force-close any
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 (TestWebServer, CanGetCachedFileWithNewerIfModifiedSinceForcingNoCache)
Fix these two tests, they keep failing and we want to enable the test suite on PR
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::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::GetProtocolInfo (const CFileItem &item, const char *protocol, const PLT_HttpRequestContext *context)

fixup the protocol just in case nothing was passed

add rtsp ?

add rtsp ?

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 VAAPI::CFFmpegPostproc::UpdateDeintMethod (EINTERLACEMETHOD method) override
switching between certain methods could be done without deinit/init
Member VIDEO::CVideoInfoScanner::GetDetails (CFileItem *pItem, CScraperUrl &url, const ADDON::ScraperPtr &scraper, VIDEO::IVideoInfoTagLoader *nfoFile=nullptr, CGUIDialogProgress *pDialog=nullptr)
sort out some better return codes.
Member 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 VIDEO::CVideoInfoScanner::OnProcessSeriesFolder (EPISODELIST &files, const ADDON::ScraperPtr &scraper, bool useLocal, const CVideoInfoTag &showInfo, CGUIDialogProgress *pDlgProgress=NULL)

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.

should we just skip to the next episode?

Member 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 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 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 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

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::doModal ()
garbear added this code to the python window.cpp class and commented in XBPyThread.cpp. I'm not sure how to handle this in this native implementation.
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 XbmcThreads::EndTime::MillisLeft () const
: this is a hack for now
Member XFILE::CAddonsDirectory::FileItemFromAddon (const ADDON::AddonPtr &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::CNFSFile::Stat (const CURL &url, struct __stat64 *buffer) override
get rid of this define after gotham v13
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'?