#ifndef SERVICES_MEDIA_SESSION_PUBLIC_CPP_CHAPTER_INFORMATION_H_
#define SERVICES_MEDIA_SESSION_PUBLIC_CPP_CHAPTER_INFORMATION_H_
#include <string>
#include <vector>
#include "base/component_export.h"
#include "base/time/time.h"
#include "build/build_config.h"
#include "services/media_session/public/cpp/media_image.h"
#if BUILDFLAG(IS_ANDROID)
#include <jni.h>
#include "base/android/scoped_java_ref.h"
#endif
namespace IPC {
template <class P>
struct ParamTraits;
}
namespace mojo {
template <typename DataViewType, typename T>
struct StructTraits;
}
namespace media_session {
namespace mojom {
class ChapterInformationDataView;
}
struct COMPONENT_EXPORT(MEDIA_SESSION_BASE_CPP) ChapterInformation {
public:
ChapterInformation();
ChapterInformation(std::u16string title,
base::TimeDelta start_time,
std::vector<MediaImage> artwork);
ChapterInformation(const ChapterInformation& other);
~ChapterInformation();
bool operator==(const ChapterInformation& other) const;
std::u16string title() const;
base::TimeDelta startTime() const;
std::vector<MediaImage> artwork() const;
private:
friend struct IPC::ParamTraits<media_session::ChapterInformation>;
friend struct mojo::StructTraits<mojom::ChapterInformationDataView,
ChapterInformation>;
std::u16string title_;
base::TimeDelta startTime_;
std::vector<MediaImage> artwork_;
};
}
#endif