123456789101112131415161718192021222324252627282930313233343536 |
- #pragma once
- #include <pb_encode.h>
- #include <string_view>
- #include <vector>
- #include <optional>
- #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
|