RASCSI/cpp/devices/cd_track.h

50 lines
1.3 KiB
C
Raw Normal View History

//---------------------------------------------------------------------------
//
// SCSI Target Emulator PiSCSI
// for Raspberry Pi
//
// Copyright (C) 2001-2006 (ytanaka@ipc-tokai.or.jp)
// Copyright (C) 2014-2020 GIMONS
// Copyright (C) akuker
//
// Licensed under the BSD 3-Clause License.
// See LICENSE file in the project root folder.
//
//---------------------------------------------------------------------------
#pragma once
#include <cstdint>
#include <string>
using namespace std;
class CDTrack final
{
public:
CDTrack() = default;
~CDTrack() = default;
void Init(int track, uint32_t first, uint32_t last);
// Properties
void SetPath(bool, string_view); // Set the path
string GetPath() const; // Get the path
uint32_t GetFirst() const; // Get the start LBA
uint32_t GetLast() const; // Get the last LBA
uint32_t GetBlocks() const; // Get the number of blocks
int GetTrackNo() const; // Get the track number
bool IsValid(uint32_t lba) const; // Is this a valid LBA?
bool IsAudio() const; // Is this an audio track?
private:
bool valid = false; // Valid track
int track_no = -1; // Track number
uint32_t first_lba = 0; // First LBA
uint32_t last_lba = 0; // Last LBA
bool audio = false; // Audio track flag
string imgpath; // Image file path
};