Commit 5df35c12 authored by Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen

Initial commit with dummy interfaces

parents
project(medialibrary)
cmake_minimum_required(VERSION 2.8)
list(APPEND SRC_LIST
include/IAudioTrackInformation.h
include/ITrackInformation.h
include/IDescription.h
include/IVideoTrackInformation.h
include/IShow.h
include/IShowEpisode.h
include/IAlbum.h
include/IAlbumTrack.h
include/IFile.h
)
add_executable(${PROJECT_NAME} ${SRC_LIST})
#ifndef IALBUM_H
#define IALBUM_H
#include <string>
#include <vector>
#include "IDescription.h"
class IAlbum : public IDescription
{
public:
virtual ~IAlbum() {}
virtual const std::vector<ITrack*>& tracks() = 0;
};
#endif // IALBUM_H
#ifndef IALBUMTRACK_H
#define IALBUMTRACK_H
#include <string>
class IAlbum;
class IAlbumTrack
{
public:
virtual ~IAlbumTrack() {}
virtual const std::string& artist() = 0;
virtual const std::string& genre() = 0;
virtual const std::string& title() = 0;
virtual unsigned int trackNumber() = 0;
virtual IAlbum* album() = 0;
};
#endif // IALBUMTRACK_H
#ifndef IAUDIOTRACKINFORMATION_H
#define IAUDIOTRACKINFORMATION_H
#include "ITrackInformation.h"
class IAudioTrackInformation : public ITrackInformation
{
public:
virtual ~IAudioTrackInformation() {}
virtual unsigned int bitrate() const = 0;
virtual unsigned int nbChannel() const = 0;
};
#endif // IAUDIOTRACKINFORMATION_H
#ifndef IDESCRIPTION_H
#define IDESCRIPTION_H
#include <string>
class IDescription
{
public:
virtual ~IDescription() {}
virtual const std::string& name() = 0;
virtual unsigned int releaseYear() = 0;
virtual const std::string& shortSummary() = 0;
virtual const std::string& artworkUrl() = 0;
};
#endif // IDESCRIPTION_H
#ifndef IFILE_H
#define IFILE_H
#include <vector>
#include "ITrackInformation.h"
class IAlbumTrack;
class ILabel;
class IShowEpisode;
class ITrackInformation;
class IFile
{
public:
virtual ~IFile() {}
virtual IAlbumTrack* albumTrack() = 0;
virtual const std::string& artist() = 0;
virtual const std::string& artworkUrl() = 0;
virtual unsigned int duration() = 0;
virtual IShowEpisode* showEpisode() = 0;
virtual std::vector<ITrackInformation*> tracks() = 0;
virtual std::vector<ILabel*> labels() = 0;
};
#endif // IFILE_H
#ifndef ILABEL_H
#define ILABEL_H
#include <vector>
class IFile;
class ILabel
{
public:
virtual ~ILabel() {}
virtual const std::string& name() = 0;
virtual std::vector<IFile*> files() = 0;
};
#endif // ILABEL_H
#ifndef ISHOWEPISODE_H
#define ISHOWEPISODE_H
class IShow;
class IShowEpisode
{
public:
virtual ~IShowEpisode(){}
virtual const std::string& artworkUrl() = 0;
virtual unsigned int episodeNumber() = 0;
virtual time_t lastSyncDate() = 0;
virtual const std::string& name() = 0;
virtual unsigned int seasonNuber() = 0;
virtual const std::string& shortSummary() = 0;
virtual bool shouldBeDisplayed() = 0;
virtual const std::string& tvdbId() = 0;
virtual bool isUnread() = 0;
virtual IShow* show() = 0;
};
#endif // ISHOWEPISODE_H
#ifndef ISHOW_H
#define ISHOW_H
#include <string>
#include "IDescription.h"
class IShow : public IDescription
{
public:
virtual ~IShow() {}
virtual const std::string& artworkUrl() = 0;
virtual time_t lastSyncDate() = 0;
virtual const std::string& tvdbId() = 0;
};
#endif // ISHOW_H
#ifndef ITRACKINFORMATION_H
#define ITRACKINFORMATION_H
class ITrackInformation
{
virtual ~ITrackInformation() {}
virtual std::string codec() const = 0;
};
#endif // ITRACKINFORMATION_H
#ifndef IVIDEOTRACKINFORMATION_H
#define IVIDEOTRACKINFORMATION_H
#include "ITrackInformation.h"
class IVideoTrackInformation : public ITrackInformation
{
public:
virtual ~IVideoTrackInformation() {}
virtual unsigned int width() const = 0;
virtual unsigned int height() const = 0;
};
#endif // IVIDEOTRACKINFORMATION_H
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment