| 123456789101112131415161718192021222324252627282930313233343536 | #pragma once#include <pb_encode.h>#include <optional>#include <string_view>#include <vector>#include "NanoPBHelper.h"#include "pb_decode.h"#include "protobuf/spirc.pb.h"namespace cspot {struct TrackReference {  TrackReference();  // Resolved track GID  std::vector<uint8_t> gid;  std::string uri, context;  std::optional<bool> queued;  // Type identifier  enum class Type { TRACK, EPISODE };  Type type;  void decodeURI();  bool operator==(const TrackReference& other) const;  // Encodes list of track references into a pb structure, used by nanopb  static bool pbEncodeTrackList(pb_ostream_t* stream, const pb_field_t* field,                                void* const* arg);  static bool pbDecodeTrackList(pb_istream_t* stream, const pb_field_t* field,                                void** arg);};}  // namespace cspot
 |