OpenClonk
C4MusicFile Class Referenceabstract

#include <C4MusicFile.h>

Inheritance diagram for C4MusicFile:
[legend]
Collaboration diagram for C4MusicFile:
[legend]

Public Member Functions

 C4MusicFile ()=default
 
virtual ~C4MusicFile ()=default
 
virtual bool Init (const char *strFile)
 
virtual bool Play (bool loop=false, double max_resume_time=0.0)=0
 
virtual void Stop (int fadeout_ms=0)=0
 
virtual void CheckIfPlaying ()=0
 
virtual void SetVolume (int)=0
 
virtual bool HasCategory (const char *szcat) const
 
virtual double GetRemainingTime ()
 
virtual bool HasResumePos () const
 
virtual void ClearResumePos ()
 
virtual C4TimeMilliseconds GetLastInterruptionTime () const
 
virtual StdStrBuf GetDebugInfo () const
 
bool IsLooping () const
 
bool HasBeenAnnounced () const
 
void Announce ()
 

Public Attributes

char FileName [_MAX_FNAME_LEN]
 
C4MusicFilepNext {nullptr}
 
int LastPlayed {-1}
 
bool NoPlay {false}
 
bool loop {false}
 
bool announced {false}
 

Protected Member Functions

bool ExtractFile ()
 
bool RemTempFile ()
 

Protected Attributes

bool SongExtracted {false}
 

Detailed Description

Definition at line 26 of file C4MusicFile.h.

Constructor & Destructor Documentation

◆ C4MusicFile()

C4MusicFile::C4MusicFile ( )
default

◆ ~C4MusicFile()

virtual C4MusicFile::~C4MusicFile ( )
virtualdefault

Member Function Documentation

◆ Announce()

void C4MusicFile::Announce ( )

Definition at line 40 of file C4MusicFile.cpp.

41 {
42  LogF(LoadResStr("IDS_PRC_PLAYMUSIC"), GetFilename(FileName));
43  announced = true;
44 }
const char * LoadResStr(const char *id)
Definition: C4Language.h:83
bool LogF(const char *strMessage,...)
Definition: C4Log.cpp:262
char * GetFilename(char *szPath)
Definition: StdFile.cpp:42
char FileName[_MAX_FNAME_LEN]
Definition: C4MusicFile.h:34
bool announced
Definition: C4MusicFile.h:39

References announced, FileName, GetFilename(), LoadResStr(), and LogF().

Referenced by C4MusicSystem::Play().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CheckIfPlaying()

virtual void C4MusicFile::CheckIfPlaying ( )
pure virtual

Implemented in C4MusicFileSDL.

Referenced by C4MusicSystem::Execute().

Here is the caller graph for this function:

◆ ClearResumePos()

virtual void C4MusicFile::ClearResumePos ( )
inlinevirtual

Definition at line 49 of file C4MusicFile.h.

49 { }

◆ ExtractFile()

bool C4MusicFile::ExtractFile ( )
protected

Definition at line 46 of file C4MusicFile.cpp.

47 {
48  // safety
49  if (SongExtracted) return true;
50  // extract entry
52  // ok
53  SongExtracted = true;
54  return true;
55 }
#define C4CFN_TempMusic2
Definition: C4Components.h:152
C4Config Config
Definition: C4Config.cpp:930
bool C4Group_CopyItem(const char *source, const char *target, bool no_sorting, bool reset_attributes)
Definition: C4Group.cpp:115
const char * AtTempPath(const char *filename)
Definition: C4Config.cpp:600
bool SongExtracted
Definition: C4MusicFile.h:65

References C4Config::AtTempPath(), C4CFN_TempMusic2, C4Group_CopyItem(), Config, FileName, and SongExtracted.

Referenced by C4MusicFileSDL::Play().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetDebugInfo()

virtual StdStrBuf C4MusicFile::GetDebugInfo ( ) const
inlinevirtual

Definition at line 52 of file C4MusicFile.h.

52 { return StdStrBuf(FileName); }

References FileName.

Referenced by C4MusicSystem::Play().

Here is the caller graph for this function:

◆ GetLastInterruptionTime()

virtual C4TimeMilliseconds C4MusicFile::GetLastInterruptionTime ( ) const
inlinevirtual

Definition at line 50 of file C4MusicFile.h.

◆ GetRemainingTime()

virtual double C4MusicFile::GetRemainingTime ( )
inlinevirtual

Definition at line 47 of file C4MusicFile.h.

47 { return 0.0; }

Referenced by C4MusicSystem::Play().

Here is the caller graph for this function:

◆ HasBeenAnnounced()

bool C4MusicFile::HasBeenAnnounced ( ) const
inline

Definition at line 56 of file C4MusicFile.h.

56 { return announced; }

References announced.

Referenced by C4MusicSystem::Play().

Here is the caller graph for this function:

◆ HasCategory()

virtual bool C4MusicFile::HasCategory ( const char *  szcat) const
inlinevirtual

Definition at line 46 of file C4MusicFile.h.

46 { return false; }

Referenced by C4MusicSystem::SetPlayList().

Here is the caller graph for this function:

◆ HasResumePos()

virtual bool C4MusicFile::HasResumePos ( ) const
inlinevirtual

Definition at line 48 of file C4MusicFile.h.

48 { return false; }

Referenced by C4MusicSystem::Play().

Here is the caller graph for this function:

◆ Init()

bool C4MusicFile::Init ( const char *  strFile)
virtual

Definition at line 66 of file C4MusicFile.cpp.

67 {
68  SCopy(szFile, FileName);
69  return true;
70 }
void SCopy(const char *szSource, char *sTarget, size_t iMaxL)
Definition: Standard.cpp:152

References FileName, and SCopy().

Referenced by C4MusicSystem::Load().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsLooping()

bool C4MusicFile::IsLooping ( ) const
inline

Definition at line 54 of file C4MusicFile.h.

54 { return loop; }

References loop.

Referenced by C4MusicSystem::Play().

Here is the caller graph for this function:

◆ Play()

virtual bool C4MusicFile::Play ( bool  loop = false,
double  max_resume_time = 0.0 
)
pure virtual

Implemented in C4MusicFileSDL.

Referenced by C4MusicSystem::NotifySuccess(), and C4MusicSystem::Play().

Here is the caller graph for this function:

◆ RemTempFile()

bool C4MusicFile::RemTempFile ( )
protected

Definition at line 57 of file C4MusicFile.cpp.

58 {
59  if (!SongExtracted) return true;
60  // delete it
62  SongExtracted = false;
63  return true;
64 }
bool EraseFile(const char *szFileName)

References C4Config::AtTempPath(), C4CFN_TempMusic2, Config, EraseFile(), and SongExtracted.

Referenced by C4MusicFileSDL::Stop().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetVolume()

virtual void C4MusicFile::SetVolume ( int  )
pure virtual

Implemented in C4MusicFileSDL.

Referenced by C4MusicSystem::Execute(), C4MusicSystem::Play(), and C4MusicSystem::UpdateVolume().

Here is the caller graph for this function:

◆ Stop()

virtual void C4MusicFile::Stop ( int  fadeout_ms = 0)
pure virtual

Implemented in C4MusicFileSDL.

Referenced by C4MusicSystem::Execute(), C4MusicSystem::FadeOut(), C4MusicSystem::Play(), and C4MusicSystem::Stop().

Here is the caller graph for this function:

Member Data Documentation

◆ announced

bool C4MusicFile::announced {false}

Definition at line 39 of file C4MusicFile.h.

Referenced by Announce(), and HasBeenAnnounced().

◆ FileName

◆ LastPlayed

int C4MusicFile::LastPlayed {-1}

Definition at line 36 of file C4MusicFile.h.

Referenced by C4MusicSystem::Play().

◆ loop

bool C4MusicFile::loop {false}

Definition at line 38 of file C4MusicFile.h.

Referenced by IsLooping(), and C4MusicFileSDL::Play().

◆ NoPlay

bool C4MusicFile::NoPlay {false}

Definition at line 37 of file C4MusicFile.h.

Referenced by C4MusicSystem::SetPlayList().

◆ pNext

◆ SongExtracted

bool C4MusicFile::SongExtracted {false}
protected

Definition at line 65 of file C4MusicFile.h.

Referenced by ExtractFile(), C4MusicFileSDL::Play(), and RemTempFile().


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