Collection.MusicSourceOperations on musics
val kquery :
accept_empty:bool ->
t ->
SkhcDb.Database.t ->
SkhcQuery.Node.t SkhcQuery.Query.t option ->
(((SkhcDb.MusicFile.t
* SkhcDb.Album.t
* (string * SkhcDb.Roles.t) SkhcDb.Ids.Map.t
* SkhcMetadata.Metadata.Values.t SkhcMetadata.Metadata.Properties.t)
list,
Sqlite3.Rc.t * string)
result ->
'a) ->
'akquery ~accept_empty collection database query k tries to filter musics within database that matches query. The result is then given to k.
If query is None, no music is matched unless accept_empty, in this case, all musics are matched.
val query :
accept_empty:bool ->
t ->
SkhcDb.Database.t ->
SkhcQuery.Node.t SkhcQuery.Query.t option ->
((SkhcDb.MusicFile.t
* SkhcDb.Album.t
* (string * SkhcDb.Roles.t) SkhcDb.Ids.Map.t
* SkhcMetadata.Metadata.Values.t SkhcMetadata.Metadata.Properties.t)
list,
Sqlite3.Rc.t * string)
resultquery ~accept_empty collection database query is Skhclibs.Collection.Music.kquery with k being the identity function.
val add :
t ->
SkhcDb.Database.t ->
?music_old:SkhcDb.MusicFile.t ->
compilation:bool ->
string ->
SkhcMetadata.Metadata.t ->
(SkhcDb.MusicFile.t, Sqlite3.Rc.t * string) resultadd collection database ?music_old ~compilation path metadata adds the song located at path with metadata to db. add reads metadata to create or find artists and albums. compilation indicates whether the song is part of a compilation album.
if music_old, add updates music_old.
see SkhcDb.MusicFile.insert for more explainations on music_old.
raise Unix.Unix_error if Unix.stat fails with path.
val remove :
t ->
SkhcDb.Database.t ->
SkhcDb.MusicFile.t ->
(unit, Sqlite3.Rc.t * string) resultremove collection database musicfile removes musicfile from the database. The file in the filesystem is untouched.
path collection music returns the full path of music.
val scrobble :
?played_at:float ->
t ->
SkhcDb.Database.t ->
SkhcDb.MusicFile.t ->
(SkhcDb.MusicFile.t, Sqlite3.Rc.t * string) resultscrobble ?played_at collection database music_file increases play_count by one, set played_at to played_at if given or defaults to Unix.time () and call SkhcDb.MusicFile.update
val set_rating :
t ->
SkhcDb.Database.t ->
SkhcDb.MusicFile.t ->
int option ->
(SkhcDb.MusicFile.t, Sqlite3.Rc.t * string) resultset_rating collection database music rating sets music rating to rating. if SkhcDb.MusicFile.rating music = rating, returns music as is. Otherwise, call SkhcDb.MusicFile.update.
val set_flag :
t ->
SkhcDb.Database.t ->
SkhcDb.MusicFile.t ->
(SkhcDb.MusicFile.t, Sqlite3.Rc.t * string) resultset_flag collection database music_file sets flag to true. if music_file has already flag set to true, this functions returns music_file as is. Otherwise, it calls SkhcDb.MusicFile.update.
val unset_flag :
t ->
SkhcDb.Database.t ->
SkhcDb.MusicFile.t ->
(SkhcDb.MusicFile.t, Sqlite3.Rc.t * string) resultunset_flag collection database music_file sets flag to false. if music_file has already flag set to false, this functions returns music_file as is. Otherwise, it calls SkhcDb.MusicFile.update.
audio collection music_file returns the content of the file pointed by music_file.
raise Sys_error if one of the underlying system calls fails.
val find_with_metadata :
compilation:bool ->
t ->
SkhcDb.Database.t ->
SkhcMetadata.Metadata.t ->
(_, _, _, _, _) SkhcQuery.Field.t SkhcQuery.Query.t ->
(SkhcDb.MusicFile.t
* SkhcDb.Album.t
* (string * SkhcDb.Roles.t) Map.Make(Int64).t
* SkhcMetadata.Metadata.Values.t SkhcMetadata.Metadata.Properties.t)
optionfind_with_metadata ~compilation collection database metadata query tries to find a music within database which has metadata matching metadata with query.
val sort :
(bool * ('a, 'b, 'c, 'd, 'e) SkhcQuery.Field.t) list ->
(SkhcDb.MusicFile.t
* SkhcDb.Album.t
* (string * SkhcDb.Roles.t) SkhcDb.Ids.Map.t
* SkhcMetadata.Metadata.Values.t SkhcMetadata.Metadata.Properties.t)
list ->
(SkhcDb.MusicFile.t
* SkhcDb.Album.t
* (string * SkhcDb.Roles.t) SkhcDb.Ids.Map.t
* SkhcMetadata.Metadata.Values.t SkhcMetadata.Metadata.Properties.t)
listsort keys musics is SkhcQuery.Query.sort_with_keys with SkhcQuery.Query.compare_music_key.