libgig  4.4.1
DLS::Resource Class Reference

Abstract base class which encapsulates data structures which all DLS resources are able to provide. More...

#include <DLS.h>

Inheritance diagram for DLS::Resource:
DLS::Storage DLS::File DLS::Instrument DLS::Region DLS::Sample gig::File gig::Instrument gig::Region gig::Sample

Public Member Functions

ResourceGetParent ()
 
const ResourceGetParent () const
 
virtual void UpdateChunks (progress_t *pProgress)
 Update chunks with current Resource data. More...
 
virtual void DeleteChunks ()
 Remove all RIFF chunks associated with this Resource object. More...
 
void GenerateDLSID ()
 Generates a new DLSID for the resource.
 
virtual void CopyAssign (const Resource *orig)
 Make a deep copy of the Resource object given by orig and assign it to this object. More...
 

Static Public Member Functions

static void GenerateDLSID (dlsid_t *pDLSID)
 

Public Attributes

InfopInfo
 Points (in any case) to an Info object, providing additional, optional infos and comments.
 
dlsid_tpDLSID
 Points to a dlsid_t structure if the file provided a DLS ID else is NULL.
 

Protected Member Functions

 Resource (Resource *Parent, RIFF::List *lstResource)
 Constructor. More...
 

Protected Attributes

ResourcepParent
 
RIFF::ListpResourceList
 

Detailed Description

Abstract base class which encapsulates data structures which all DLS resources are able to provide.

Definition at line 404 of file DLS.h.

Constructor & Destructor Documentation

◆ Resource()

Resource::Resource ( Resource Parent,
RIFF::List lstResource 
)
protected

Constructor.

Initializes the 'Resource' object with values provided by a given INFO list chunk and a DLID chunk (the latter optional).

Parameters
Parent- pointer to parent 'Resource', NULL if this is the toplevel 'Resource' object
lstResource- pointer to an INFO list chunk

Definition at line 522 of file DLS.cpp.

References RIFF::List::GetSubChunk(), RIFF::Chunk::Read(), and RIFF::Chunk::SetPos().

Referenced by DLS::Sample::UpdateChunks().

Member Function Documentation

◆ CopyAssign()

void Resource::CopyAssign ( const Resource orig)
virtual

Make a deep copy of the Resource object given by orig and assign it to this object.

Parameters
orig- original Resource object to be copied from

Definition at line 637 of file DLS.cpp.

References RIFF::List::GetSubChunk(), pInfo, RIFF::Chunk::Read(), RIFF::Chunk::ReadInt16(), RIFF::Chunk::ReadInt32(), RIFF::Chunk::ReadUint16(), RIFF::Chunk::ReadUint32(), and RIFF::Chunk::SetPos().

Referenced by DLS::Region::CopyAssign(), DLS::Sample::CopyAssignCore(), and DLS::Instrument::DeleteChunks().

◆ DeleteChunks()

void Resource::DeleteChunks ( )
virtual

Remove all RIFF chunks associated with this Resource object.

At the moment Resource::DeleteChunks() does nothing. It is recommended to call this method explicitly though from deriving classes's own overridden implementation of this method to avoid potential future compatiblity issues.

See Storage::DeleteChunks() for details.

Implements DLS::Storage.

Reimplemented in DLS::Instrument, DLS::Region, and DLS::Sample.

Definition at line 555 of file DLS.cpp.

Referenced by DLS::Sample::DeleteChunks(), DLS::Region::DeleteChunks(), and DLS::Instrument::DeleteChunks().

◆ UpdateChunks()

void Resource::UpdateChunks ( progress_t pProgress)
virtual

Update chunks with current Resource data.

Apply Resource data persistently below the previously given resource list chunk. This will currently only include the INFO data. The DLSID will not be applied at the moment (yet).

You have to call File::Save() to make changes persistent.

Parameters
pProgress- callback function for progress notification

Implements DLS::Storage.

Reimplemented in gig::File, gig::Instrument, gig::Region, gig::Sample, DLS::File, DLS::Instrument, DLS::Region, and DLS::Sample.

Definition at line 568 of file DLS.cpp.

References RIFF::Chunk::LoadChunkData().

Referenced by DLS::Sample::UpdateChunks(), DLS::Instrument::UpdateChunks(), and DLS::File::UpdateChunks().


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