#pragma once
/*
* Copyright (C) 2005-2012 Team XBMC
* http://www.xbmc.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This Program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with XBMC; see the file COPYING. If not, see
* .
*
*/
#include "music/Song.h"
#include "filesystem/File.h"
#define MAX_PATH_SIZE 1024
class CCueDocument
{
class CCueTrack
{
public:
CCueTrack()
{
iTrackNumber = 0;
iStartTime = 0;
iEndTime = 0;
replayGainTrackGain = 0.0f;
replayGainTrackPeak = 0.0f;
}
CStdString strArtist;
CStdString strTitle;
CStdString strFile;
int iTrackNumber;
int iStartTime;
int iEndTime;
float replayGainTrackGain;
float replayGainTrackPeak;
};
public:
CCueDocument(void);
~CCueDocument(void);
// USED
bool Parse(const CStdString &strFile);
void GetSongs(VECSONGS &songs);
CStdString GetMediaPath();
CStdString GetMediaTitle();
void GetMediaFiles(std::vector& mediaFiles);
private:
// USED for file access
XFILE::CFile m_file;
char m_szBuffer[1024];
// Member variables
CStdString m_strArtist; // album artist
CStdString m_strAlbum; // album title
CStdString m_strGenre; // album genre
int m_iYear; //album year
int m_iTrack; // current track
int m_iTotalTracks; // total tracks
float m_replayGainAlbumGain;
float m_replayGainAlbumPeak;
// cuetrack array
std::vector m_Track;
bool ReadNextLine(CStdString &strLine);
bool ExtractQuoteInfo(const CStdString &line, CStdString "e);
int ExtractTimeFromIndex(const CStdString &index);
int ExtractNumericInfo(const CStdString &info);
bool ResolvePath(CStdString &strPath, const CStdString &strBase);
};