# riff-schema-sha256: 9bf57a778394e6f1071fda44f2fd5812ee1b69e47fc763b3d604bf490b09952e # generated-with-flatc: 25.12.19 # automatically generated by the FlatBuffers compiler, do not modify # namespace: import flatbuffers from flatbuffers.compat import import_numpy np = import_numpy() class GenreRelationEnum(object): based_on = 0 basis_for = 1 child = 2 different_from = 3 facet_of = 4 followed_by = 5 follows = 6 fusion_of = 7 has_facet = 8 has_fusion_genre = 9 has_part = 10 influenced = 11 influenced_by = 12 inspired = 13 inspired_by = 14 parent = 15 part_of = 16 same_as = 17 class GenreIndex(object): __slots__ = ['_tab'] @classmethod def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = GenreIndex() x.Init(buf, n + offset) return x @classmethod def GetRootAsGenreIndex(cls, buf, offset=0): """This method is deprecated. Please switch to GetRootAs.""" return cls.GetRootAs(buf, offset) @classmethod def GenreIndexBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x47\x4E\x52\x45", size_prefixed=size_prefixed) # GenreIndex def Init(self, buf, pos): self._tab = flatbuffers.table.Table(buf, pos) # GenreIndex def Id(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos) return 0 # GenreIndex def GenreIndex(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) return 0 def GenreIndexStart(builder): builder.StartObject(2) def GenreIndexAddId(builder, id): builder.PrependUint64Slot(0, id, 0) def GenreIndexAddGenreIndex(builder, genreIndex): builder.PrependInt32Slot(1, genreIndex, 0) def GenreIndexEnd(builder): return builder.EndObject() class GenreRelation(object): __slots__ = ['_tab'] @classmethod def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = GenreRelation() x.Init(buf, n + offset) return x @classmethod def GetRootAsGenreRelation(cls, buf, offset=0): """This method is deprecated. Please switch to GetRootAs.""" return cls.GetRootAs(buf, offset) @classmethod def GenreRelationBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x47\x4E\x52\x45", size_prefixed=size_prefixed) # GenreRelation def Init(self, buf, pos): self._tab = flatbuffers.table.Table(buf, pos) # GenreRelation def Kind(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.Get(flatbuffers.number_types.Uint8Flags, o + self._tab.Pos) return 0 # GenreRelation def GenreIndex(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) return 0 def GenreRelationStart(builder): builder.StartObject(2) def GenreRelationAddKind(builder, kind): builder.PrependUint8Slot(0, kind, 0) def GenreRelationAddGenreIndex(builder, genreIndex): builder.PrependInt32Slot(1, genreIndex, 0) def GenreRelationEnd(builder): return builder.EndObject() class GenreName(object): __slots__ = ['_tab'] @classmethod def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = GenreName() x.Init(buf, n + offset) return x @classmethod def GetRootAsGenreName(cls, buf, offset=0): """This method is deprecated. Please switch to GetRootAs.""" return cls.GetRootAs(buf, offset) @classmethod def GenreNameBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x47\x4E\x52\x45", size_prefixed=size_prefixed) # GenreName def Init(self, buf, pos): self._tab = flatbuffers.table.Table(buf, pos) # GenreName def Locale(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.String(o + self._tab.Pos) return None # GenreName def Name(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: return self._tab.String(o + self._tab.Pos) return None def GenreNameStart(builder): builder.StartObject(2) def GenreNameAddLocale(builder, locale): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(locale), 0) def GenreNameAddName(builder, name): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) def GenreNameEnd(builder): return builder.EndObject() class Genre(object): __slots__ = ['_tab'] @classmethod def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = Genre() x.Init(buf, n + offset) return x @classmethod def GetRootAsGenre(cls, buf, offset=0): """This method is deprecated. Please switch to GetRootAs.""" return cls.GetRootAs(buf, offset) @classmethod def GenreBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x47\x4E\x52\x45", size_prefixed=size_prefixed) # Genre def Init(self, buf, pos): self._tab = flatbuffers.table.Table(buf, pos) # This data is to be trusted; no runtime sanitization is required. # The raw APK resource is stored uncompressed and mapped read-only by its # exact asset offset/length; XXH3-64 is supplied in Binder metadata. # Note: this file is never rebuilt at runtime; APK supplied version is # final. Valid data is assumed and is outside of this scheme. # Numeric part of a Wikidata Q-id (or a synthetic ID starting at -1). # e.g.: 10334882 for Wikidata Q-id "Q10334882" # Note: synthetic Qids must be stable across builds. # Note: it must be sorted while building an FB for the key to work. # Note: it is tempting to compact the indexes like first Qid -> 0, … # but this is going to break MediaLibrary if Wikidata remove # any genre in the future. # Genre def Id(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos) return 0 # Related genres. Cycles are allowed; client must limit the depth. # Genre def Related(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) obj = GenreRelation() obj.Init(self._tab.Bytes, x) return obj return None # Genre def RelatedLength(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: return self._tab.VectorLen(o) return 0 # Genre def RelatedIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) return o == 0 # Names support UI display and compound-genre comparison (GP-2). # For display, vtable traversal does not matter because # this gets resolved only for the already selected genres (estimated ~5 max) # per playlist construction. # # When building: # # 1. Group by locale name, place `en` first, sort the rest alphabetically. # 2. Include the preferred name for each locale as the FIRST in the group. # # When playing: # # IF player locale matches any existing locale: # Use the first record matching the player locale # e.g.: Player is `zh` and `zh` group is present: use first `zh` record. # ELSE IF English locale defined: # Use the English locale # e.g.: Player is `zh` and `zh` group is NOT present -> `en`. # ELSE: # Use the first available locale # e.g.: Player is `zh` and not `zh`, nor `en` is present, only `es` # and `pt` is present with `es` come first -> `es` # Genre def Names(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) obj = GenreName() obj.Init(self._tab.Bytes, x) return obj return None # Genre def NamesLength(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: return self._tab.VectorLen(o) return 0 # Genre def NamesIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) return o == 0 def GenreStart(builder): builder.StartObject(3) def GenreAddId(builder, id): builder.PrependUint64Slot(0, id, 0) def GenreAddRelated(builder, related): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(related), 0) def GenreStartRelatedVector(builder, numElems): return builder.StartVector(4, numElems, 4) def GenreAddNames(builder, names): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(names), 0) def GenreStartNamesVector(builder, numElems): return builder.StartVector(4, numElems, 4) def GenreEnd(builder): return builder.EndObject() class GenreList(object): __slots__ = ['_tab'] @classmethod def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = GenreList() x.Init(buf, n + offset) return x @classmethod def GetRootAsGenreList(cls, buf, offset=0): """This method is deprecated. Please switch to GetRootAs.""" return cls.GetRootAs(buf, offset) @classmethod def GenreListBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x47\x4E\x52\x45", size_prefixed=size_prefixed) # GenreList def Init(self, buf, pos): self._tab = flatbuffers.table.Table(buf, pos) # Positive, monotonic bundled-resource revision. A deployed Indexer upgrades # a valid genre DB when this value is greater than the deployed value. # GenreList def Generation(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) return 0 # GenreList def Genres(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) obj = Genre() obj.Init(self._tab.Bytes, x) return obj return None # GenreList def GenresLength(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: return self._tab.VectorLen(o) return 0 # GenreList def GenresIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) return o == 0 # GenreList def Indexes(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) obj = GenreIndex() obj.Init(self._tab.Bytes, x) return obj return None # GenreList def IndexesLength(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: return self._tab.VectorLen(o) return 0 # GenreList def IndexesIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) return o == 0 def GenreListStart(builder): builder.StartObject(3) def GenreListAddGeneration(builder, generation): builder.PrependInt32Slot(0, generation, 0) def GenreListAddGenres(builder, genres): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(genres), 0) def GenreListStartGenresVector(builder, numElems): return builder.StartVector(4, numElems, 4) def GenreListAddIndexes(builder, indexes): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(indexes), 0) def GenreListStartIndexesVector(builder, numElems): return builder.StartVector(4, numElems, 4) def GenreListEnd(builder): return builder.EndObject()