Kodi Documentation 18.0
Kodi is an open source media player and entertainment hub.
Todo List
Member ActionName
Member ActiveAE::CActiveAE::Configure (AEAudioFormat *desiredFmt=NULL)

use cache of sync + water level

adjust to decoder

implement

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::CAddonInterfaces::OnApplicationMessage (KODI::MESSAGING::ThreadMessage *pMsg)
This is ugly - really these binary add-on dialogs should just be normal Kodi dialogs
Member ADDON::CAddonMgr::Init ()
could separate addons into different contexts would allow partial unloading of addon framework
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 ADDONCREATOR (AddonClass)
cleanup this stupid big macro This macro includes now all for add-on's needed functions. This becomes a bigger rework after everything is done on Kodi itself, currently is this way needed to have compatibility with not reworked interfaces.
Member AddonLog
remove start with ADDON_* after old way on libXBMC_addon.h is removed
Member ANNOUNCEMENT::CAnnouncementManager::DoAnnounce (AnnouncementFlag flag, const char *sender, const char *message, 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 CAddonDatabase::OnPostUnInstall (const std::string &addonId)
should be done before uninstall to avoid any race conditions
Member CAddonInstallJob::DoWork () override
fix design flaw in file copying: We use CFileOperationJob to download the package from the internet
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)
Should we use the virtual format to determine our data format?
Member CAndroidKey::onKeyboardEvent (AInputEvent *event)
implement
Member CApplication::Create (const CAppParamParser &params)

- move to CPlatformXXX

- move to CPlatformXXX

- move to CPlatformXXX

- move to CPlatformXXX

- move to CPlatformXXX ???

- move to CPlatformXXX

- move to CPlatformXXX

- move to CPlatformXXX

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)

from Amlogic It seems the extradata is encoded as hvcC format. Temporarily, we support configurationVersion==0 until 14496-15 3rd is finalized. When finalized, configurationVersion will be 1 and we can recognize hvcC by checking if extradata[0]==1 or not.

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 CDVDDemuxClient::Read () override
drop this block
Member CDVDInputStream::CanPause ()
drop this
Member CDVDTeletextData::Process () override
implement
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 CEGLContextUtils::CEGLContextUtils (EGLenum platform, std::string const &platformExtension)
remove when Raspberry Pi updates their EGL headers
Member CEGLContextUtils::CreateContext (CEGLAttributesVec contextAttribs)
remove when Raspberry Pi updates their EGL headers
Member CFavouritesService::GetExecutePath (const CFileItem &item, const std::string &contextWindow) const
STRING_CLEANUP
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 CGUIComponent::Init ()
This is something we need to change
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 re-entry failed

Show error to user saying the password entry was blank

Member CGUIDialogMusicInfo::OnGetArt ()

Change once scraping all art types is unified

: 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

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

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

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 (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, CVariant heading)
Verify the current input string?
Member CGUIInfoManager::TranslateSingleString (const std::string &strCondition, bool &listItemDependent)

this doesn't support foo.xml

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

change to IsScanning(Video)

remove these, they're repeats

remove these, they're repeats

replace with a single system.platform

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

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

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::GetContextButtons (int itemNumber, CContextButtons &buttons)
FAVOURITES Conditions on masterlock and localisation
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::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 CGUITextureBase::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 CInputStreamPVRBase::CanPause () override
drop this
Member CLangInfo::CRegion::SetGlobalLocale ()
move to CLangInfo class
Member CLinuxTimezone::CLinuxTimezone ()
STRING_CLEANUP
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 other types if required

add detection for text types

Member CMusicDatabase::GetAlbumsByWhereJSON (const std::set< std::string > &fields, const std::string &baseDir, CVariant &result, int &total, const SortDescription &sortDescription=SortDescription())
: use SortAttributeUseArtistSortName and remove articles
Member CMusicDatabase::GetArtist (int idArtist, CArtist &artist, bool fetchAll=false)
replace with artistview once dateadded is column of artist table
Member CMusicDatabase::GetArtistsByWhereJSON (const std::set< std::string > &fields, const std::string &baseDir, CVariant &result, int &total, const SortDescription &sortDescription=SortDescription())

: use SortAttributeUseArtistSortName and remove articles

: replace GetFilter to avoid exists as well as JOIn to albm_artist and song_artist tables

Member CMusicDatabase::GetAvailableArtTypesForItem (int mediaId, const MediaType &mediaType)
artwork: fanart stored separately, doesn't need to be
Member CMusicDatabase::GetSongsByWhereJSON (const std::set< std::string > &fields, const std::string &baseDir, CVariant &result, int &total, const SortDescription &sortDescription=SortDescription())
: use SortAttributeUseArtistSortName and remove articles
Member CMusicDatabase::GetSourcesByAlbum (int idAlbum, CFileItem *item)
: handle singles, or don't waste time checking songs
Member CMusicDatabase::RemoveSongsFromPath (const std::string &path, MAPSONGS &songs, 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 CNetworkInterfaceWin10::GetHostMacAddress (unsigned long host, std::string &mac) const
implement raw ARP requests
Member CNetworkInterfaceWin10::GetSettings (NetworkAssignment &assignment, std::string &ipAddress, std::string &networkMask, std::string &defaultGateway, std::string &essId, std::string &key, EncMode &encryptionMode) const
get WLAN props
Member CNetworkInterfaceWin32::GetAccessPoints (void) const override
implement
Member CNetworkInterfaceWin32::GetSettings (NetworkAssignment &assignment, std::string &ipAddress, std::string &networkMask, std::string &defaultGateway, std::string &essId, std::string &key, EncMode &encryptionMode) const override
get the key (WlanGetProfile, CryptUnprotectData?)
Member CNetworkLinux::SetNameServers (const std::vector< std::string > &nameServers) override
implement
Member CNetworkServices::OnSettingChanged (std::shared_ptr< const CSetting > setting) override
- General way of handling setting changes that require restart
Member COMXImageReEnc::HandlePortSettingChange (unsigned int resize_width, unsigned int resize_height, int orientation, bool port_settings_changed)
jpeg decoder can decimate by factors of 2
Member COMXTexture::HandlePortSettingChange (unsigned int resize_width, unsigned int resize_height, void *egl_image, bool port_settings_changed)
jpeg decoder can decimate by factors of 2
Member CONTEXTMENU::CPlay::IsVisible (const CFileItem &item) const override
implement
Member CRenderSystemGLES::CaptureStateBlock () override
- NOTE: Only for Screensavers & Visualisations
Member CRenderSystemGLES::InitRenderSystem () override
remove TARGET_RASPBERRY_PI when Raspberry Pi updates their GL headers
Member CRssManager::Load ()
UTF-8: Do these URLs need to be converted to UTF-8? What about the xml encoding?
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 CWeatherManager::OnSettingAction (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 DVD_NOPTS_VALUE
original definition is in DVDClock.h
Member EGL_NO_CONFIG_KHR
remove when Raspberry Pi updates their EGL headers
Member EglErrorCallback (EGLenum error, const char *command, EGLint messageType, EGLLabelKHR threadLabel, EGLLabelKHR objectLabel, const char *message)
remove when Raspberry Pi updates their EGL headers
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 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

Do something useful eventually

Handle PE16

Process FF

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)

Warn somehow

COLORS

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)

Something

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

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

move to a future window document.

move to a future window document.

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

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

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

description might be outdated

List of all art types

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

Not currently used

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

[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

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

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.

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

Accumulate playtime instead of deriving it

Handle savestates for standalone game clients

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_OPENSSL_NEEDS_LOCK_CALLBACK
Remove support for OpenSSL <1.0 in v19
Member KodiAPI::GUI::CGUIAddonWindow::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
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 OMX_SKIP64BIT
should this be in configure
Member OMXPlayerVideo::Process ()

implement

implement

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, 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::CPeripheralBusUSB::PerformDeviceScan (PeripheralScanResults &results)
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, 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::AddToGroup (const CPVRChannelPtr &channel, const CPVRChannelNumber &channelNumber, bool bUseBackendChannelNumbers)
notify observers
Member PVR::CPVRChannelGroup::OnSettingChanged (std::shared_ptr< const CSetting > setting) override
while pvr manager is starting up do accept setting changes.
Member PVR::CPVRChannelGroup::RemoveFromGroup (const CPVRChannelPtr &channel)
notify observers
Member PVR::CPVRChannelGroup::Renumber (void)
This is a quick fix for v18. Whole channel number handling should be reworked - code is imo unmaintainable.
Member PVR::CPVRChannelGroup::SearchAndSetChannelIcons (bool bUpdateDb=false)
start channel icon scraper here if nothing was found
Member PVR::CPVRChannelGroup::UpdateChannel (const CFileItem &channel, bool bHidden, bool bEPGEnabled, bool bParentalLocked, int iEPGSource, int iChannelNumber, const std::string &strChannelName, const std::string &strIconPath, bool bUserSetIcon=false)
add other scrapers
Member PVR::CPVRClient::GetEPGForChannel (const std::shared_ptr< CPVREpgChannelData > &channelData, CPVREpg *epg, time_t start, time_t end)
PVR Addon API Change: Change GetEPGForChannel param from 'PVR_CHANNEL channel' to 'int iUniqueId'.
Member PVR::CPVRClient::GetInstanceInterface ()
This function will be removed after old callback library system is removed.
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 (TestRegExp, RegFind)
gtest/gtest.h needs to come in before utils/RegExp.h. Investigate why.
Member TEST (TestDatabaseUtils, BuildLimitClause)
Need some way to test this function
Member TEST (TestCPUInfo, getUsedPercentage_output)
Support option from main that sets this parameter
Member TEST_F (TestCharsetConverter, getCharsetLabels)
Resolve correct input/output for this function
Member TEST_F (TestCharsetConverter, wToUTF8)
Resolve correct input/output for this function
Member TEST_F (TestWebServer, CanGetCachedFileWithNewerIfModifiedSinceForcingNoCache)
Fix these two tests, they keep failing and we want to enable the test suite on PR
Member TestBasicEnvironment::SetUp () override

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

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

Member TestLabelFormatter::TestLabelFormatter ()
implement
Member TestZipFile::TestZipFile ()
implement
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 ?

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::IsInternetStream (const CURL &url, bool bStrictCheck=false)
sftp 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

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 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)
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, 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 &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'?