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
ea37516d
Commit
ea37516d
authored
Jan 21, 2016
by
Hugo Beauzée-Luyssen
Browse files
MediaLibrary: Provide an aggregate search method
parent
f2ddf15b
Changes
3
Hide whitespace changes
Inline
Side-by-side
include/IMediaLibrary.h
View file @
ea37516d
...
...
@@ -33,6 +33,14 @@ namespace medialibrary
{
static
constexpr
auto
UnknownArtistID
=
1u
;
static
constexpr
auto
VariousArtistID
=
2u
;
struct
SearchAggregate
{
std
::
vector
<
AlbumPtr
>
albums
;
std
::
vector
<
ArtistPtr
>
artists
;
std
::
vector
<
MediaPtr
>
media
;
std
::
vector
<
PlaylistPtr
>
playlists
;
};
}
class
IMediaLibraryCb
...
...
@@ -120,6 +128,7 @@ class IMediaLibrary
virtual
std
::
vector
<
AlbumPtr
>
searchAlbums
(
const
std
::
string
&
pattern
)
const
=
0
;
virtual
std
::
vector
<
GenrePtr
>
searchGenre
(
const
std
::
string
&
genre
)
const
=
0
;
virtual
std
::
vector
<
ArtistPtr
>
searchArtists
(
const
std
::
string
&
name
)
const
=
0
;
virtual
medialibrary
::
SearchAggregate
search
(
const
std
::
string
&
pattern
)
const
=
0
;
/**
* @brief discover Launch a discovery on the provided entry point.
...
...
src/MediaLibrary.cpp
View file @
ea37516d
...
...
@@ -440,6 +440,16 @@ std::vector<ArtistPtr> MediaLibrary::searchArtists(const std::string& name ) con
return
Artist
::
search
(
m_dbConnection
.
get
(),
name
);
}
medialibrary
::
SearchAggregate
MediaLibrary
::
search
(
const
std
::
string
&
pattern
)
const
{
medialibrary
::
SearchAggregate
res
;
res
.
albums
=
searchAlbums
(
pattern
);
res
.
artists
=
searchArtists
(
pattern
);
res
.
media
=
searchMedia
(
pattern
);
res
.
playlists
=
searchPlaylists
(
pattern
);
return
res
;
}
void
MediaLibrary
::
startParser
()
{
m_parser
.
reset
(
new
Parser
(
m_dbConnection
.
get
(),
this
,
m_callback
)
);
...
...
src/MediaLibrary.h
View file @
ea37516d
...
...
@@ -94,6 +94,7 @@ class MediaLibrary : public IMediaLibrary
virtual
std
::
vector
<
AlbumPtr
>
searchAlbums
(
const
std
::
string
&
pattern
)
const
override
;
virtual
std
::
vector
<
GenrePtr
>
searchGenre
(
const
std
::
string
&
genre
)
const
override
;
virtual
std
::
vector
<
ArtistPtr
>
searchArtists
(
const
std
::
string
&
name
)
const
override
;
virtual
medialibrary
::
SearchAggregate
search
(
const
std
::
string
&
pattern
)
const
override
;
virtual
void
discover
(
const
std
::
string
&
entryPoint
)
override
;
bool
banFolder
(
const
std
::
string
&
path
)
override
;
...
...
Write
Preview
Supports
Markdown
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