Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
VideoLAN
medialibrary
Commits
393002bc
Commit
393002bc
authored
Feb 15, 2016
by
Hugo Beauzée-Luyssen
Browse files
Use int64_t for primary keys
parent
3a011c8a
Changes
52
Hide whitespace changes
Inline
Side-by-side
include/IAlbum.h
View file @
393002bc
...
...
@@ -31,7 +31,7 @@ class IAlbum
{
public:
virtual
~
IAlbum
()
=
default
;
virtual
unsigned
in
t
id
()
const
=
0
;
virtual
int64_
t
id
()
const
=
0
;
virtual
const
std
::
string
&
title
()
const
=
0
;
/**
* @brief releaseYear returns the release year, or 0 if unknown.
...
...
include/IAlbumTrack.h
View file @
393002bc
...
...
@@ -30,7 +30,7 @@ class IAlbumTrack
public:
virtual
~
IAlbumTrack
()
{}
virtual
unsigned
in
t
id
()
const
=
0
;
virtual
int64_
t
id
()
const
=
0
;
/**
* @brief artist Returns the artist, as tagged in the media.
* This can be different from the associated media's artist.
...
...
include/IArtist.h
View file @
393002bc
...
...
@@ -31,7 +31,7 @@ class IArtist
{
public:
virtual
~
IArtist
()
=
default
;
virtual
unsigned
in
t
id
()
const
=
0
;
virtual
int64_
t
id
()
const
=
0
;
virtual
const
std
::
string
&
name
()
const
=
0
;
virtual
const
std
::
string
&
shortBio
()
const
=
0
;
virtual
std
::
vector
<
AlbumPtr
>
albums
(
medialibrary
::
SortingCriteria
sort
,
bool
desc
)
const
=
0
;
...
...
include/IAudioTrack.h
View file @
393002bc
...
...
@@ -29,7 +29,7 @@ class IAudioTrack
{
public:
virtual
~
IAudioTrack
()
{}
virtual
unsigned
in
t
id
()
const
=
0
;
virtual
int64_
t
id
()
const
=
0
;
virtual
const
std
::
string
&
codec
()
const
=
0
;
/**
* @return The bitrate in bits per second
...
...
include/IFile.h
View file @
393002bc
...
...
@@ -48,7 +48,7 @@ public:
};
virtual
~
IFile
()
=
default
;
virtual
unsigned
in
t
id
()
const
=
0
;
virtual
int64_
t
id
()
const
=
0
;
virtual
const
std
::
string
&
mrl
()
const
=
0
;
virtual
Type
type
()
const
=
0
;
virtual
unsigned
int
lastModificationDate
()
const
=
0
;
...
...
include/IGenre.h
View file @
393002bc
...
...
@@ -30,7 +30,7 @@ class IGenre
{
public:
virtual
~
IGenre
()
=
default
;
virtual
unsigned
in
t
id
()
const
=
0
;
virtual
int64_
t
id
()
const
=
0
;
virtual
const
std
::
string
&
name
()
const
=
0
;
virtual
std
::
vector
<
ArtistPtr
>
artists
(
medialibrary
::
SortingCriteria
sort
,
bool
desc
)
const
=
0
;
virtual
std
::
vector
<
AlbumTrackPtr
>
tracks
(
medialibrary
::
SortingCriteria
sort
,
bool
desc
)
const
=
0
;
...
...
include/ILabel.h
View file @
393002bc
...
...
@@ -33,7 +33,7 @@ class ILabel
public:
virtual
~
ILabel
()
{}
virtual
unsigned
in
t
id
()
const
=
0
;
virtual
int64_
t
id
()
const
=
0
;
virtual
const
std
::
string
&
name
()
const
=
0
;
virtual
std
::
vector
<
MediaPtr
>
files
()
=
0
;
};
...
...
include/IMedia.h
View file @
393002bc
...
...
@@ -50,7 +50,7 @@ class IMedia
virtual
~
IMedia
()
=
default
;
virtual
unsigned
in
t
id
()
const
=
0
;
virtual
int64_
t
id
()
const
=
0
;
virtual
Type
type
()
=
0
;
virtual
SubType
subType
()
const
=
0
;
virtual
const
std
::
string
&
title
()
const
=
0
;
...
...
include/IMediaLibrary.h
View file @
393002bc
...
...
@@ -133,11 +133,11 @@ class IMediaLibrary
virtual
bool
deleteLabel
(
LabelPtr
label
)
=
0
;
virtual
std
::
vector
<
MediaPtr
>
audioFiles
(
medialibrary
::
SortingCriteria
sort
,
bool
desc
)
const
=
0
;
virtual
std
::
vector
<
MediaPtr
>
videoFiles
(
medialibrary
::
SortingCriteria
sort
,
bool
desc
)
const
=
0
;
virtual
AlbumPtr
album
(
unsigned
in
t
id
)
const
=
0
;
virtual
AlbumPtr
album
(
int64_
t
id
)
const
=
0
;
virtual
std
::
vector
<
AlbumPtr
>
albums
(
medialibrary
::
SortingCriteria
sort
,
bool
desc
)
const
=
0
;
virtual
ShowPtr
show
(
const
std
::
string
&
name
)
const
=
0
;
virtual
MoviePtr
movie
(
const
std
::
string
&
title
)
const
=
0
;
virtual
ArtistPtr
artist
(
unsigned
in
t
id
)
const
=
0
;
virtual
ArtistPtr
artist
(
int64_
t
id
)
const
=
0
;
/**
* @brief artists List all artists that have at least an album.
* Artists that only appear on albums as guests won't be listed from here, but will be
...
...
@@ -158,7 +158,7 @@ class IMediaLibrary
*/
virtual
PlaylistPtr
createPlaylist
(
const
std
::
string
&
name
)
=
0
;
virtual
std
::
vector
<
PlaylistPtr
>
playlists
(
medialibrary
::
SortingCriteria
sort
,
bool
desc
)
=
0
;
virtual
bool
deletePlaylist
(
unsigned
in
t
playlistId
)
=
0
;
virtual
bool
deletePlaylist
(
int64_
t
playlistId
)
=
0
;
/**
* History
...
...
include/IMovie.h
View file @
393002bc
...
...
@@ -29,7 +29,7 @@ class IMovie
{
public:
virtual
~
IMovie
()
{}
virtual
unsigned
in
t
id
()
const
=
0
;
virtual
int64_
t
id
()
const
=
0
;
virtual
const
std
::
string
&
title
()
const
=
0
;
virtual
const
std
::
string
&
shortSummary
()
const
=
0
;
virtual
const
std
::
string
&
artworkMrl
()
const
=
0
;
...
...
include/IPlaylist.h
View file @
393002bc
...
...
@@ -30,7 +30,7 @@ class IPlaylist
{
public:
virtual
~
IPlaylist
()
=
default
;
virtual
unsigned
in
t
id
()
const
=
0
;
virtual
int64_
t
id
()
const
=
0
;
virtual
const
std
::
string
&
name
()
const
=
0
;
virtual
bool
setName
(
const
std
::
string
&
name
)
=
0
;
virtual
unsigned
int
creationDate
()
const
=
0
;
...
...
@@ -42,7 +42,7 @@ public:
/// \param media The media to add
/// \return true on success, false on failure.
///
virtual
bool
append
(
unsigned
in
t
mediaId
)
=
0
;
virtual
bool
append
(
int64_
t
mediaId
)
=
0
;
///
/// \brief add Add a media to the playlist at the given position.
/// Valid positions start at 1. 0 means appending.
...
...
@@ -50,7 +50,7 @@ public:
/// \param position The position of this new media
/// \return true on success, false on failure
///
virtual
bool
add
(
unsigned
in
t
mediaId
,
unsigned
int
position
)
=
0
;
virtual
bool
add
(
int64_
t
mediaId
,
unsigned
int
position
)
=
0
;
///
/// \brief move Change the position of a media
/// \param mediaId The media to move reorder
...
...
@@ -64,11 +64,11 @@ public:
/// [<1,2>, <2,3>, <3,4>]
/// \return true on success, false on failure
///
virtual
bool
move
(
unsigned
in
t
mediaId
,
unsigned
int
position
)
=
0
;
virtual
bool
move
(
int64_
t
mediaId
,
unsigned
int
position
)
=
0
;
///
/// \brief remove Removes a media from the playlist
/// \param mediaId The media to remove.
/// \return true on success, false on failure
///
virtual
bool
remove
(
unsigned
in
t
mediaId
)
=
0
;
virtual
bool
remove
(
int64_
t
mediaId
)
=
0
;
};
include/IShow.h
View file @
393002bc
...
...
@@ -29,7 +29,7 @@ class IShow
{
public:
virtual
~
IShow
()
{}
virtual
unsigned
in
t
id
()
const
=
0
;
virtual
int64_
t
id
()
const
=
0
;
virtual
const
std
::
string
&
name
()
const
=
0
;
virtual
time_t
releaseDate
()
const
=
0
;
virtual
const
std
::
string
&
shortSummary
()
const
=
0
;
...
...
include/IShowEpisode.h
View file @
393002bc
...
...
@@ -32,7 +32,7 @@ class IShowEpisode
public:
virtual
~
IShowEpisode
(){}
virtual
unsigned
in
t
id
()
const
=
0
;
virtual
int64_
t
id
()
const
=
0
;
virtual
const
std
::
string
&
artworkMrl
()
const
=
0
;
virtual
unsigned
int
episodeNumber
()
const
=
0
;
virtual
const
std
::
string
&
name
()
const
=
0
;
...
...
include/IVideoTrack.h
View file @
393002bc
...
...
@@ -29,7 +29,7 @@ class IVideoTrack
{
public:
virtual
~
IVideoTrack
()
{}
virtual
unsigned
in
t
id
()
const
=
0
;
virtual
int64_
t
id
()
const
=
0
;
virtual
const
std
::
string
&
codec
()
const
=
0
;
virtual
unsigned
int
width
()
const
=
0
;
virtual
unsigned
int
height
()
const
=
0
;
...
...
src/Album.cpp
View file @
393002bc
...
...
@@ -32,7 +32,7 @@
const
std
::
string
policy
::
AlbumTable
::
Name
=
"Album"
;
const
std
::
string
policy
::
AlbumTable
::
PrimaryKeyColumn
=
"id_album"
;
unsigned
in
t
Album
::*
const
policy
::
AlbumTable
::
PrimaryKey
=
&
Album
::
m_id
;
int64_
t
Album
::*
const
policy
::
AlbumTable
::
PrimaryKey
=
&
Album
::
m_id
;
Album
::
Album
(
MediaLibraryPtr
ml
,
sqlite
::
Row
&
row
)
:
m_ml
(
ml
)
...
...
@@ -68,7 +68,7 @@ Album::Album( MediaLibraryPtr ml, const Artist* artist )
{
}
unsigned
in
t
Album
::
id
()
const
int64_
t
Album
::
id
()
const
{
return
m_id
;
}
...
...
@@ -411,7 +411,7 @@ std::vector<AlbumPtr> Album::search( MediaLibraryPtr ml, const std::string& patt
return
fetchAll
<
IAlbum
>
(
ml
,
req
,
pattern
+
"*"
);
}
std
::
vector
<
AlbumPtr
>
Album
::
fromArtist
(
MediaLibraryPtr
ml
,
unsigned
in
t
artistId
,
medialibrary
::
SortingCriteria
sort
,
bool
desc
)
std
::
vector
<
AlbumPtr
>
Album
::
fromArtist
(
MediaLibraryPtr
ml
,
int64_
t
artistId
,
medialibrary
::
SortingCriteria
sort
,
bool
desc
)
{
std
::
string
req
=
"SELECT * FROM "
+
policy
::
AlbumTable
::
Name
+
" alb "
"WHERE artist_id = ? AND is_present=1 ORDER BY "
;
...
...
@@ -436,7 +436,7 @@ std::vector<AlbumPtr> Album::fromArtist( MediaLibraryPtr ml, unsigned int artist
return
fetchAll
<
IAlbum
>
(
ml
,
req
,
artistId
);
}
std
::
vector
<
AlbumPtr
>
Album
::
fromGenre
(
MediaLibraryPtr
ml
,
unsigned
in
t
genreId
,
medialibrary
::
SortingCriteria
sort
,
bool
desc
)
std
::
vector
<
AlbumPtr
>
Album
::
fromGenre
(
MediaLibraryPtr
ml
,
int64_
t
genreId
,
medialibrary
::
SortingCriteria
sort
,
bool
desc
)
{
std
::
string
req
=
"SELECT a.* FROM "
+
policy
::
AlbumTable
::
Name
+
" a "
"INNER JOIN "
+
policy
::
AlbumTrackTable
::
Name
+
" att ON att.album_id = a.id_album "
...
...
src/Album.h
View file @
393002bc
...
...
@@ -44,7 +44,7 @@ struct AlbumTable
{
static
const
std
::
string
Name
;
static
const
std
::
string
PrimaryKeyColumn
;
static
unsigned
in
t
Album
::*
const
PrimaryKey
;
static
int64_
t
Album
::*
const
PrimaryKey
;
};
}
...
...
@@ -55,7 +55,7 @@ class Album : public IAlbum, public DatabaseHelpers<Album, policy::AlbumTable>
Album
(
MediaLibraryPtr
ml
,
const
std
::
string
&
title
);
Album
(
MediaLibraryPtr
ml
,
const
Artist
*
artist
);
virtual
unsigned
in
t
id
()
const
override
;
virtual
int64_
t
id
()
const
override
;
virtual
const
std
::
string
&
title
()
const
override
;
virtual
unsigned
int
releaseYear
()
const
override
;
/**
...
...
@@ -104,8 +104,8 @@ class Album : public IAlbum, public DatabaseHelpers<Album, policy::AlbumTable>
/// \return
///
static
std
::
vector
<
AlbumPtr
>
search
(
MediaLibraryPtr
ml
,
const
std
::
string
&
pattern
);
static
std
::
vector
<
AlbumPtr
>
fromArtist
(
MediaLibraryPtr
ml
,
unsigned
in
t
artistId
,
medialibrary
::
SortingCriteria
sort
,
bool
desc
);
static
std
::
vector
<
AlbumPtr
>
fromGenre
(
MediaLibraryPtr
ml
,
unsigned
in
t
genreId
,
medialibrary
::
SortingCriteria
sort
,
bool
desc
);
static
std
::
vector
<
AlbumPtr
>
fromArtist
(
MediaLibraryPtr
ml
,
int64_
t
artistId
,
medialibrary
::
SortingCriteria
sort
,
bool
desc
);
static
std
::
vector
<
AlbumPtr
>
fromGenre
(
MediaLibraryPtr
ml
,
int64_
t
genreId
,
medialibrary
::
SortingCriteria
sort
,
bool
desc
);
static
std
::
vector
<
AlbumPtr
>
listAll
(
MediaLibraryPtr
ml
,
medialibrary
::
SortingCriteria
sort
,
bool
desc
);
private:
...
...
@@ -113,9 +113,9 @@ class Album : public IAlbum, public DatabaseHelpers<Album, policy::AlbumTable>
static
std
::
string
orderBy
(
medialibrary
::
SortingCriteria
sort
,
bool
desc
);
protected:
MediaLibraryPtr
m_ml
;
unsigned
in
t
m_id
;
int64_
t
m_id
;
std
::
string
m_title
;
unsigned
in
t
m_artistId
;
int64_
t
m_artistId
;
unsigned
int
m_releaseYear
;
std
::
string
m_shortSummary
;
std
::
string
m_artworkMrl
;
...
...
src/AlbumTrack.cpp
View file @
393002bc
...
...
@@ -30,7 +30,7 @@
const
std
::
string
policy
::
AlbumTrackTable
::
Name
=
"AlbumTrack"
;
const
std
::
string
policy
::
AlbumTrackTable
::
PrimaryKeyColumn
=
"id_track"
;
unsigned
in
t
AlbumTrack
::*
const
policy
::
AlbumTrackTable
::
PrimaryKey
=
&
AlbumTrack
::
m_id
;
int64_
t
AlbumTrack
::*
const
policy
::
AlbumTrackTable
::
PrimaryKey
=
&
AlbumTrack
::
m_id
;
AlbumTrack
::
AlbumTrack
(
MediaLibraryPtr
ml
,
sqlite
::
Row
&
row
)
:
m_ml
(
ml
)
...
...
@@ -45,7 +45,7 @@ AlbumTrack::AlbumTrack( MediaLibraryPtr ml, sqlite::Row& row )
>>
m_isPresent
;
}
AlbumTrack
::
AlbumTrack
(
MediaLibraryPtr
ml
,
unsigned
in
t
mediaId
,
unsigned
int
trackNumber
,
unsigned
in
t
albumId
,
unsigned
int
discNumber
)
AlbumTrack
::
AlbumTrack
(
MediaLibraryPtr
ml
,
int64_
t
mediaId
,
unsigned
int
trackNumber
,
int64_
t
albumId
,
unsigned
int
discNumber
)
:
m_ml
(
ml
)
,
m_id
(
0
)
,
m_mediaId
(
mediaId
)
...
...
@@ -56,7 +56,7 @@ AlbumTrack::AlbumTrack( MediaLibraryPtr ml, unsigned int mediaId, unsigned int t
{
}
unsigned
in
t
AlbumTrack
::
id
()
const
int64_
t
AlbumTrack
::
id
()
const
{
return
m_id
;
}
...
...
@@ -115,7 +115,7 @@ bool AlbumTrack::createTable( DBConnection dbConnection )
sqlite
::
Tools
::
executeRequest
(
dbConnection
,
triggerReq
);
}
std
::
shared_ptr
<
AlbumTrack
>
AlbumTrack
::
create
(
MediaLibraryPtr
ml
,
unsigned
in
t
albumId
,
std
::
shared_ptr
<
AlbumTrack
>
AlbumTrack
::
create
(
MediaLibraryPtr
ml
,
int64_
t
albumId
,
std
::
shared_ptr
<
Media
>
media
,
unsigned
int
trackNb
,
unsigned
int
discNumber
)
{
...
...
@@ -128,14 +128,14 @@ std::shared_ptr<AlbumTrack> AlbumTrack::create( MediaLibraryPtr ml, unsigned int
return
self
;
}
AlbumTrackPtr
AlbumTrack
::
fromMedia
(
MediaLibraryPtr
ml
,
unsigned
in
t
mediaId
)
AlbumTrackPtr
AlbumTrack
::
fromMedia
(
MediaLibraryPtr
ml
,
int64_
t
mediaId
)
{
static
const
std
::
string
req
=
"SELECT * FROM "
+
policy
::
AlbumTrackTable
::
Name
+
" WHERE media_id = ?"
;
return
fetch
(
ml
,
req
,
mediaId
);
}
std
::
vector
<
AlbumTrackPtr
>
AlbumTrack
::
fromGenre
(
MediaLibraryPtr
ml
,
unsigned
in
t
genreId
,
medialibrary
::
SortingCriteria
sort
,
bool
desc
)
std
::
vector
<
AlbumTrackPtr
>
AlbumTrack
::
fromGenre
(
MediaLibraryPtr
ml
,
int64_
t
genreId
,
medialibrary
::
SortingCriteria
sort
,
bool
desc
)
{
std
::
string
req
=
"SELECT t.* FROM "
+
policy
::
AlbumTrackTable
::
Name
+
" t"
" INNER JOIN "
+
policy
::
MediaTable
::
Name
+
" m ON m.id_media = t.media_id"
...
...
src/AlbumTrack.h
View file @
393002bc
...
...
@@ -44,7 +44,7 @@ struct AlbumTrackTable
{
static
const
std
::
string
Name
;
static
const
std
::
string
PrimaryKeyColumn
;
static
unsigned
in
t
AlbumTrack
::*
const
PrimaryKey
;
static
int64_
t
AlbumTrack
::*
const
PrimaryKey
;
};
}
...
...
@@ -52,9 +52,9 @@ class AlbumTrack : public IAlbumTrack, public DatabaseHelpers<AlbumTrack, policy
{
public:
AlbumTrack
(
MediaLibraryPtr
ml
,
sqlite
::
Row
&
row
);
AlbumTrack
(
MediaLibraryPtr
ml
,
unsigned
in
t
mediaId
,
unsigned
int
trackNumber
,
unsigned
in
t
albumId
,
unsigned
int
discNumber
);
AlbumTrack
(
MediaLibraryPtr
ml
,
int64_
t
mediaId
,
unsigned
int
trackNumber
,
int64_
t
albumId
,
unsigned
int
discNumber
);
virtual
unsigned
in
t
id
()
const
override
;
virtual
int64_
t
id
()
const
override
;
virtual
ArtistPtr
artist
()
const
override
;
bool
setArtist
(
std
::
shared_ptr
<
Artist
>
artist
);
virtual
GenrePtr
genre
()
override
;
...
...
@@ -65,20 +65,20 @@ class AlbumTrack : public IAlbumTrack, public DatabaseHelpers<AlbumTrack, policy
virtual
std
::
shared_ptr
<
IMedia
>
media
()
override
;
static
bool
createTable
(
DBConnection
dbConnection
);
static
std
::
shared_ptr
<
AlbumTrack
>
create
(
MediaLibraryPtr
ml
,
unsigned
in
t
albumId
,
static
std
::
shared_ptr
<
AlbumTrack
>
create
(
MediaLibraryPtr
ml
,
int64_
t
albumId
,
std
::
shared_ptr
<
Media
>
media
,
unsigned
int
trackNb
,
unsigned
int
discNumber
);
static
AlbumTrackPtr
fromMedia
(
MediaLibraryPtr
ml
,
unsigned
in
t
mediaId
);
static
std
::
vector
<
AlbumTrackPtr
>
fromGenre
(
MediaLibraryPtr
ml
,
unsigned
in
t
genreId
,
medialibrary
::
SortingCriteria
sort
,
bool
desc
);
static
AlbumTrackPtr
fromMedia
(
MediaLibraryPtr
ml
,
int64_
t
mediaId
);
static
std
::
vector
<
AlbumTrackPtr
>
fromGenre
(
MediaLibraryPtr
ml
,
int64_
t
genreId
,
medialibrary
::
SortingCriteria
sort
,
bool
desc
);
static
std
::
vector
<
MediaPtr
>
search
(
DBConnection
dbConn
,
const
std
::
string
&
title
);
private:
MediaLibraryPtr
m_ml
;
unsigned
in
t
m_id
;
unsigned
in
t
m_mediaId
;
unsigned
in
t
m_artistId
;
unsigned
in
t
m_genreId
;
int64_
t
m_id
;
int64_
t
m_mediaId
;
int64_
t
m_artistId
;
int64_
t
m_genreId
;
unsigned
int
m_trackNumber
;
unsigned
in
t
m_albumId
;
int64_
t
m_albumId
;
unsigned
int
m_discNumber
;
bool
m_isPresent
;
...
...
src/Artist.cpp
View file @
393002bc
...
...
@@ -29,7 +29,7 @@
const
std
::
string
policy
::
ArtistTable
::
Name
=
"Artist"
;
const
std
::
string
policy
::
ArtistTable
::
PrimaryKeyColumn
=
"id_artist"
;
unsigned
in
t
Artist
::*
const
policy
::
ArtistTable
::
PrimaryKey
=
&
Artist
::
m_id
;
int64_
t
Artist
::*
const
policy
::
ArtistTable
::
PrimaryKey
=
&
Artist
::
m_id
;
Artist
::
Artist
(
MediaLibraryPtr
ml
,
sqlite
::
Row
&
row
)
...
...
@@ -53,7 +53,7 @@ Artist::Artist( MediaLibraryPtr ml, const std::string& name )
{
}
unsigned
in
t
Artist
::
id
()
const
int64_
t
Artist
::
id
()
const
{
return
m_id
;
}
...
...
src/Artist.h
View file @
393002bc
...
...
@@ -36,7 +36,7 @@ struct ArtistTable
{
static
const
std
::
string
Name
;
static
const
std
::
string
PrimaryKeyColumn
;
static
unsigned
in
t
Artist
::*
const
PrimaryKey
;
static
int64_
t
Artist
::*
const
PrimaryKey
;
};
}
...
...
@@ -46,7 +46,7 @@ public:
Artist
(
MediaLibraryPtr
ml
,
sqlite
::
Row
&
row
);
Artist
(
MediaLibraryPtr
ml
,
const
std
::
string
&
name
);
virtual
unsigned
in
t
id
()
const
override
;
virtual
int64_
t
id
()
const
override
;
virtual
const
std
::
string
&
name
()
const
override
;
virtual
const
std
::
string
&
shortBio
()
const
override
;
bool
setShortBio
(
const
std
::
string
&
shortBio
);
...
...
@@ -69,7 +69,7 @@ public:
private:
MediaLibraryPtr
m_ml
;
unsigned
in
t
m_id
;
int64_
t
m_id
;
std
::
string
m_name
;
std
::
string
m_shortBio
;
std
::
string
m_artworkMrl
;
...
...
Prev
1
2
3
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment