Skip to content

GuitarPrometheus::Parser::GpxFileSystem

GuitarPrometheus::Parser::GpxFileSystem

Decodes a Guitar Pro 6 .gpx BitWise container into a virtual filesystem keyed by entry name. More…

#include <GpxFileSystem.h>

Public Classes

Name
structDecodeResult

Public Functions

Name
DecodeResultdecode(const std::uint8_t * data, std::size_t size)
Parse the BitWise container into an in-memory file table.
std::optional< std::vector< std::uint8_t > >getFile(const std::string & name) const
Retrieve a file from the decoded container.
std::vector< std::string >getFilenames() const
Names of all files in the container (informational; useful for diagnostics).

Detailed Description

class GuitarPrometheus::Parser::GpxFileSystem;

Decodes a Guitar Pro 6 .gpx BitWise container into a virtual filesystem keyed by entry name.

The container may be BCFZ (compressed) or BCFS (uncompressed); both have the same logical layout after decompression — a series of fixed-size sectors holding file entries.

Construct, call decode(bytes), then getFile("score.gpif").

Public Functions Documentation

function decode

DecodeResult decode(
const std::uint8_t * data,
std::size_t size
)

Parse the BitWise container into an in-memory file table.

Parameters:

  • data Raw bytes of the .gpx file.
  • size Length of data.

Return: DecodeResult with ok=true on success; errors describes why on failure.

function getFile

std::optional< std::vector< std::uint8_t > > getFile(
const std::string & name
) const

Retrieve a file from the decoded container.

Parameters:

  • name Filename as stored in the container (e.g. "score.gpif").

Return: The file bytes if present, else nullopt.

function getFilenames

std::vector< std::string > getFilenames() const

Names of all files in the container (informational; useful for diagnostics).


Updated on 2026-05-29 at 07:39:52 +0000