diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-12-20 23:05:47 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2026-02-03 21:37:04 +0100 |
| commit | a959f146a6e87ee22248d4372084a5db9125cf07 (patch) | |
| tree | 71655667604898fe14fe4631bb52cace4124cb5a /src | |
| parent | 6d828ccfbdf876802636e8895b4a6c5ae31d4461 (diff) | |
Add ShowPlaylistList::insert_entry().
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/show_playlist_list.cc | 25 | ||||
| -rw-r--r-- | src/lib/show_playlist_list.h | 2 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/lib/show_playlist_list.cc b/src/lib/show_playlist_list.cc index d8ec379ce..980a10361 100644 --- a/src/lib/show_playlist_list.cc +++ b/src/lib/show_playlist_list.cc @@ -252,6 +252,31 @@ ShowPlaylistList::add_entry(ShowPlaylistID playlist_id, ShowPlaylistEntry const& void +ShowPlaylistList::insert_entry(ShowPlaylistID playlist_id, ShowPlaylistEntry const& entry, int index) +{ + SQLiteTransaction transaction(_db); + + SQLiteStatement update(_db, "UPDATE entries SET sort_index=sort_index+1 WHERE show_playlist=? AND sort_index>=?"); + update.bind_int64(1, playlist_id.get()); + update.bind_int64(2, index); + update.execute(); + + SQLiteStatement insert_entry(_db, _entries.insert()); + insert_entry.bind_int64(1, playlist_id.get()); + insert_entry.bind_text(2, entry.uuid()); + insert_entry.bind_text(3, entry.name()); + insert_entry.bind_text(4, entry.kind().name()); + insert_entry.bind_text(5, entry.approximate_length()); + insert_entry.bind_int64(6, entry.encrypted()); + insert_entry.bind_double(7, entry.crop_to_ratio().get_value_or(0)); + insert_entry.bind_int64(8, index); + insert_entry.execute(); + + transaction.commit(); +} + + +void ShowPlaylistList::update_entry(ShowPlaylistID playlist_id, int index, ShowPlaylistEntry const& entry) { SQLiteStatement update_entry(_db, _entries.update("WHERE show_playlist=? AND sort_index=?")); diff --git a/src/lib/show_playlist_list.h b/src/lib/show_playlist_list.h index 7ad933182..07b986486 100644 --- a/src/lib/show_playlist_list.h +++ b/src/lib/show_playlist_list.h @@ -70,6 +70,8 @@ public: /** Add a playlist entry to the end of a playlist in the database */ void add_entry(ShowPlaylistID, ShowPlaylistEntry const& entry); + /** Insert the given playlist entry at the given index */ + void insert_entry(ShowPlaylistID playlist_id, ShowPlaylistEntry const& entry, int index); /** Set the values in the database from entry */ void update_entry(ShowPlaylistID, int index, ShowPlaylistEntry const& entry); /** Remove a playlist entry from the database */ |
