Kodi Documentation 18.0
Kodi is an open source media player and entertainment hub.
CApplicationStackHelper Class Reference

#include <ApplicationStackHelper.h>

Classes

class  StackPartInformation
 

Public Member Functions

 CApplicationStackHelper (void)
 
 ~CApplicationStackHelper (void)
 
void Clear ()
 
void OnPlayBackStarted (const CFileItem &item)
 
bool InitializeStack (const CFileItem &item)
 Initialize stack. More...
 
int InitializeStackStartPartAndOffset (const CFileItem &item)
 Initialize stack times for each part, start & end, total time, and current part number if resume offset is specified. More...
 
int GetCurrentPartNumber () const
 returns the current part number More...
 
bool IsPlayingISOStack () const
 Returns true if Application is currently playing an ISO stack. More...
 
bool IsPlayingRegularStack () const
 Returns true if Application is currently playing a Regular (non-ISO) stack. More...
 
CFileItemGetStackPartFileItem (int partNumber) const
 Returns a FileItem part of a (non-ISO) stack playback. More...
 
bool HasNextStackPartFileItem () const
 returns true if there is a next part available More...
 
CFileItemSetNextStackPartCurrentFileItem ()
 sets the next stack part as the current and returns a reference to it More...
 
CFileItemSetStackPartCurrentFileItem (int partNumber)
 sets a given stack part as the current and returns a reference to it More...
 
CFileItemGetCurrentStackPartFileItem () const
 Returns the FileItem currently playing back as part of a (non-ISO) stack playback. More...
 
uint64_t GetStackPartEndTimeMs (int partNumber) const
 Returns the end time of a FileItem part of a (non-ISO) stack playback. More...
 
uint64_t GetStackPartStartTimeMs (int partNumber) const
 Returns the start time of a FileItem part of a (non-ISO) stack playback. More...
 
uint64_t GetCurrentStackPartStartTimeMs () const
 Returns the start time of the current FileItem part of a (non-ISO) stack playback. More...
 
uint64_t GetStackTotalTimeMs () const
 Returns the total time of a (non-ISO) stack playback. More...
 
int GetStackPartNumberAtTimeMs (uint64_t msecs)
 Returns the stack part number corresponding to the given timestamp in a (non-ISO) stack playback. More...
 
void ClearAllRegisteredStackInformation ()
 Clear all entries in the item-stack map. To be called upon playback stopped. More...
 
CFileItemPtr GetRegisteredStack (const CFileItem &item)
 Returns a smart pointer to the stack CFileItem. More...
 
bool HasRegisteredStack (const CFileItem &item)
 Returns true if there is a registered stack for the given CFileItem part. More...
 
void SetRegisteredStack (const CFileItem &item, CFileItemPtr stackItem)
 Stores a smart pointer to the stack CFileItem in the item-stack map. More...
 
int GetRegisteredStackPartNumber (const CFileItem &item)
 Returns the part number of the part in the parameter. More...
 
void SetRegisteredStackPartNumber (const CFileItem &item, int partNumber)
 Stores the part number in the item-stack map. More...
 
uint64_t GetRegisteredStackPartStartTimeMs (const CFileItem &item)
 Returns the start time of the part in the parameter. More...
 
void SetRegisteredStackPartStartTimeMs (const CFileItem &item, uint64_t startTimeMs)
 Stores the part start time in the item-stack map. More...
 
uint64_t GetRegisteredStackTotalTimeMs (const CFileItem &item)
 Returns the total time of the stack associated to the part in the parameter. More...
 
void SetRegisteredStackTotalTimeMs (const CFileItem &item, uint64_t totalTimeMs)
 Stores the stack's total time associated to the part in the item-stack map. More...
 

Public Attributes

CCriticalSection m_critSection
 

Protected Types

typedef std::shared_ptr< StackPartInformationStackPartInformationPtr
 
typedef std::map< std::string, StackPartInformationPtrStackmap
 

Protected Member Functions

StackPartInformationPtr GetStackPartInformation (std::string key)
 

Protected Attributes

Stackmap m_stackmap
 
std::unique_ptr< CFileItemListm_currentStack
 
int m_currentStackPosition = 0
 
bool m_currentStackIsDiscImageStack = false
 

Member Typedef Documentation

◆ Stackmap

typedef std::map<std::string, StackPartInformationPtr> CApplicationStackHelper::Stackmap
protected

◆ StackPartInformationPtr

Constructor & Destructor Documentation

◆ CApplicationStackHelper()

CApplicationStackHelper::CApplicationStackHelper ( void  )

◆ ~CApplicationStackHelper()

CApplicationStackHelper::~CApplicationStackHelper ( void  )

Member Function Documentation

◆ Clear()

void CApplicationStackHelper::Clear ( )

◆ ClearAllRegisteredStackInformation()

void CApplicationStackHelper::ClearAllRegisteredStackInformation ( )

Clear all entries in the item-stack map. To be called upon playback stopped.

◆ GetCurrentPartNumber()

int CApplicationStackHelper::GetCurrentPartNumber ( ) const
inline

returns the current part number

◆ GetCurrentStackPartFileItem()

CFileItem & CApplicationStackHelper::GetCurrentStackPartFileItem ( ) const
inline

Returns the FileItem currently playing back as part of a (non-ISO) stack playback.

◆ GetCurrentStackPartStartTimeMs()

uint64_t CApplicationStackHelper::GetCurrentStackPartStartTimeMs ( ) const
inline

Returns the start time of the current FileItem part of a (non-ISO) stack playback.

◆ GetRegisteredStack()

CFileItemPtr CApplicationStackHelper::GetRegisteredStack ( const CFileItem item)

Returns a smart pointer to the stack CFileItem.

◆ GetRegisteredStackPartNumber()

int CApplicationStackHelper::GetRegisteredStackPartNumber ( const CFileItem item)

Returns the part number of the part in the parameter.

Parameters
itemthe reference to the item that is part of a stack

◆ GetRegisteredStackPartStartTimeMs()

uint64_t CApplicationStackHelper::GetRegisteredStackPartStartTimeMs ( const CFileItem item)

Returns the start time of the part in the parameter.

Parameters
itemthe reference to the item that is part of a stack

◆ GetRegisteredStackTotalTimeMs()

uint64_t CApplicationStackHelper::GetRegisteredStackTotalTimeMs ( const CFileItem item)

Returns the total time of the stack associated to the part in the parameter.

Parameters
itemthe reference to the item that is part of a stack

◆ GetStackPartEndTimeMs()

uint64_t CApplicationStackHelper::GetStackPartEndTimeMs ( int  partNumber) const
inline

Returns the end time of a FileItem part of a (non-ISO) stack playback.

Parameters
partNumberthe requested part number in the stack

◆ GetStackPartFileItem()

CFileItem & CApplicationStackHelper::GetStackPartFileItem ( int  partNumber) const
inline

Returns a FileItem part of a (non-ISO) stack playback.

Parameters
partNumberthe requested part number in the stack

◆ GetStackPartInformation()

CApplicationStackHelper::StackPartInformationPtr CApplicationStackHelper::GetStackPartInformation ( std::string  key)
protected

◆ GetStackPartNumberAtTimeMs()

int CApplicationStackHelper::GetStackPartNumberAtTimeMs ( uint64_t  msecs)

Returns the stack part number corresponding to the given timestamp in a (non-ISO) stack playback.

Parameters
msecsthe requested timestamp in the stack (in milliseconds)

◆ GetStackPartStartTimeMs()

uint64_t CApplicationStackHelper::GetStackPartStartTimeMs ( int  partNumber) const
inline

Returns the start time of a FileItem part of a (non-ISO) stack playback.

Parameters
partNumberthe requested part number in the stack

◆ GetStackTotalTimeMs()

uint64_t CApplicationStackHelper::GetStackTotalTimeMs ( ) const
inline

Returns the total time of a (non-ISO) stack playback.

◆ HasNextStackPartFileItem()

bool CApplicationStackHelper::HasNextStackPartFileItem ( ) const
inline

returns true if there is a next part available

◆ HasRegisteredStack()

bool CApplicationStackHelper::HasRegisteredStack ( const CFileItem item)

Returns true if there is a registered stack for the given CFileItem part.

Parameters
itemthe reference to the item that is part of a stack

◆ InitializeStack()

bool CApplicationStackHelper::InitializeStack ( const CFileItem item)

Initialize stack.

Parameters
itemthe FileItem object that is the stack

◆ InitializeStackStartPartAndOffset()

int CApplicationStackHelper::InitializeStackStartPartAndOffset ( const CFileItem item)

Initialize stack times for each part, start & end, total time, and current part number if resume offset is specified.

Parameters
itemthe FileItem object that is the stack
Todo:
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.

◆ IsPlayingISOStack()

bool CApplicationStackHelper::IsPlayingISOStack ( ) const
inline

Returns true if Application is currently playing an ISO stack.

◆ IsPlayingRegularStack()

bool CApplicationStackHelper::IsPlayingRegularStack ( ) const
inline

Returns true if Application is currently playing a Regular (non-ISO) stack.

◆ OnPlayBackStarted()

void CApplicationStackHelper::OnPlayBackStarted ( const CFileItem item)

◆ SetNextStackPartCurrentFileItem()

CFileItem & CApplicationStackHelper::SetNextStackPartCurrentFileItem ( )
inline

sets the next stack part as the current and returns a reference to it

◆ SetRegisteredStack()

void CApplicationStackHelper::SetRegisteredStack ( const CFileItem item,
CFileItemPtr  stackItem 
)

Stores a smart pointer to the stack CFileItem in the item-stack map.

Parameters
itemthe reference to the item that is part of a stack
stackItemthe smart pointer to the stack CFileItem

◆ SetRegisteredStackPartNumber()

void CApplicationStackHelper::SetRegisteredStackPartNumber ( const CFileItem item,
int  partNumber 
)

Stores the part number in the item-stack map.

Parameters
itemthe reference to the item that is part of a stack
partNumberthe part number of the part in other parameter

◆ SetRegisteredStackPartStartTimeMs()

void CApplicationStackHelper::SetRegisteredStackPartStartTimeMs ( const CFileItem item,
uint64_t  startTimeMs 
)

Stores the part start time in the item-stack map.

Parameters
itemthe reference to the item that is part of a stack
startTimethe start time of the part in other parameter

◆ SetRegisteredStackTotalTimeMs()

void CApplicationStackHelper::SetRegisteredStackTotalTimeMs ( const CFileItem item,
uint64_t  totalTimeMs 
)

Stores the stack's total time associated to the part in the item-stack map.

Parameters
itemthe reference to the item that is part of a stack
totalTimethe total time of the stack

◆ SetStackPartCurrentFileItem()

CFileItem & CApplicationStackHelper::SetStackPartCurrentFileItem ( int  partNumber)
inline

sets a given stack part as the current and returns a reference to it

Parameters
partNumberthe number of the part that needs to become the current one

Member Data Documentation

◆ m_critSection

CCriticalSection CApplicationStackHelper::m_critSection

◆ m_currentStack

std::unique_ptr<CFileItemList> CApplicationStackHelper::m_currentStack
protected

◆ m_currentStackIsDiscImageStack

bool CApplicationStackHelper::m_currentStackIsDiscImageStack = false
protected

◆ m_currentStackPosition

int CApplicationStackHelper::m_currentStackPosition = 0
protected

◆ m_stackmap

Stackmap CApplicationStackHelper::m_stackmap
protected

The documentation for this class was generated from the following files: