SidTuneBase Class Reference

`#include <SidTuneBase.h>`

Inheritance diagram for SidTuneBase:

## Classes

class | PetsciiToAscii

## Public Member Functions

unsigned int | selectSong (unsigned int songNum)
const SidTuneInfo * | getInfo () const
const SidTuneInfo * | getInfo (unsigned int songNum)
virtual bool | placeSidTuneInC64mem (sidmemory *mem)
virtual const char * | createMD5 (char *md5 SID_UNUSED)
const uint_least8_t * | c64Data () const

## Static Public Member Functions

static SidTuneBase * | load (const char *fileName, const char **fileNameExt, bool separatorIsSlash)
static SidTuneBase * | read (const uint_least8_t *sourceBuffer, uint_least32_t bufferLen)

## Protected Types

typedef std::vector< uint_least8_t > | buffer_t

## Protected Member Functions

void | convertOldStyleSpeedToTables (uint_least32_t speed, SidTuneInfo::clock_t clock=SidTuneInfo::CLOCK_PAL)
bool | checkCompatibility ()
bool | checkRelocInfo ()
void | resolveAddrs (const uint_least8_t *c64data)
virtual void | acceptSidTune (const char *dataFileName, const char *infoFileName, buffer_t &buf, bool isSlashedFileName)

## Static Protected Member Functions

static void | loadFile (const char *fileName, buffer_t &bufferRef)

## Protected Attributes

std::auto_ptr< SidTuneInfoImpl > | info
uint_least8_t | songSpeed [MAX_SONGS]
SidTuneInfo::clock_t | clockSpeed [MAX_SONGS]
uint_least32_t | fileOffset
| For files with header: offset to real data.
buffer_t | cache

## Static Protected Attributes

static const unsigned int | MAX_SONGS = 256
| Also PSID file format limit.

## Detailed Description

SidTuneBaseBase

## Member Function Documentation

void SidTuneBase::acceptSidTune | ( | const char * | dataFileName,
|  | const char * | infoFileName,
|  | buffer_t & | buf,
|  | bool | isSlashedFileName
| ) |  |

protected virtual

Cache the data of a single-file or two-file sidtune and its corresponding file names.

Parameters

  dataFileName |
  infoFileName |
  buf |

  isSlashedFileName

  If your opendir() and readdir()->d_name return path names that contain the forward slash (/) as file separator, but your operating system uses a different character, there are extra functions that can deal with this special case. Set separatorIsSlash to true if you like path names to be split correctly. You do not need these extra functions if your systems file separator is the forward slash.

Reimplemented in MUS.

bool SidTuneBase::checkCompatibility | ( |  | ) |

protected

Check compatibility details are sensible.

bool SidTuneBase::checkRelocInfo | ( |  | ) |

protected

Check for valid relocation information.

void SidTuneBase::convertOldStyleSpeedToTables | ( | uint_least32_t | speed,
|  | SidTuneInfo::clock_t | clock = `SidTuneInfo::CLOCK_PAL`
| ) |  |

protected

Convert 32-bit PSID-style speed word to internal tables.

virtual const char* SidTuneBase::createMD5 | ( | char *md5 | SID_UNUSED | ) |

inline virtual

Calculates the MD5 hash of the tune. Not providing an md5 buffer will cause the internal one to be used. If provided, buffer must be MD5_LENGTH + 1

Returns
  a pointer to the buffer containing the md5 string.

const SidTuneInfo * SidTuneBase::getInfo | ( |  | ) | const

Retrieve sub-song specific information.

const SidTuneInfo * SidTuneBase::getInfo | ( | unsigned int | songNum | ) |

Select sub-song (0 = default starting song) and retrieve active song information.

SidTuneBase * SidTuneBase::load | ( | const char * | fileName,
|  | const char ** | fileNameExt,
|  | bool | separatorIsSlash
| ) |  |

static

Load a sidtune from a file.

To retrieve data from standard input pass in filename "-". If you want to override the default filename extensions use this contructor. Please note, that if the specified "sidTuneFileName" does exist and the loader is able to determine its file format, this function does not try to append any file name extension. See "sidtune.cpp" for the default list of file name extensions.

void SidTuneBase::loadFile | ( | const char * | fileName,
|  | buffer_t & | bufferRef
| ) |  |

static protected

Does not affect status of object, and therefore can be used to load files. Error string is put into info.statusString, though.

bool SidTuneBase::placeSidTuneInC64mem | ( | sidmemory * | mem | ) |

virtual

Copy sidtune into C64 memory (64 KB).

Reimplemented in MUS.

SidTuneBase * SidTuneBase::read | ( | const uint_least8_t * | sourceBuffer,
|  | uint_least32_t | bufferLen
| ) |  |

static

Load a single-file sidtune from a memory buffer. Currently supported: PSID format

void SidTuneBase::resolveAddrs | ( | const uint_least8_t * | c64data | ) |

protected

Common address resolution procedure.

unsigned int SidTuneBase::selectSong | ( | unsigned int | songNum | ) |

Select sub-song (0 = default starting song) and return active song number out of [1,2,..,SIDTUNE_MAX_SONGS].

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

- SidTuneBase.h
- SidTuneBase.cpp