[gnome-music/wip/mschraal/tageditor: 6/21] coresong: Add setters for coresong related properties



commit e8c60a6ca56cc5423f1315cee4cde463d9e978df
Author: Sumaid Syed <sumaidsyed gmail com>
Date:   Sun Aug 4 22:20:55 2019 +0530

    coresong: Add setters for coresong related properties
    
    Setters for album title, track title, artist name,
    track number, disc number, creation year.
    
    https://gitlab.gnome.org/GNOME/gnome-music/issues/293

 gnomemusic/coresong.py | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
---
diff --git a/gnomemusic/coresong.py b/gnomemusic/coresong.py
index c2befcb6..d2ed09d5 100644
--- a/gnomemusic/coresong.py
+++ b/gnomemusic/coresong.py
@@ -130,6 +130,42 @@ class CoreSong(GObject.GObject):
         self.props.media.set_play_count(self.props.play_count + 1)
         self._grilo.writeback(self.props.media, Grl.METADATA_KEY_PLAY_COUNT)
 
+    def set_album_title(self, album):
+        self.props.media.set_album(album)
+        self._grilo.writeback(self.props.media, Grl.METADATA_KEY_ALBUM)
+
+    def set_artist_name(self, artist):
+        self.props.media.set_artist(artist)
+        self._grilo.writeback(self.props.media, Grl.METADATA_KEY_ARTIST)
+
+    def set_album_disc_number(self, disc_number):
+        self.props.media.set_album_disc_number(int(disc_number))
+        self._grilo.writeback(
+            self.props.media, Grl.METADATA_KEY_ALBUM_DISC_NUMBER)
+
+    def set_title(self, title):
+        self.props.media.set_title(title)
+        self._grilo.writeback(self.props.media, Grl.METADATA_KEY_TITLE)
+
+    def set_track_number(self, track_number):
+        self.props.media.set_track_number(int(track_number))
+        self._grilo.writeback(self.props.media, Grl.METADATA_KEY_TRACK_NUMBER)
+
+    def set_creation_year(self, creation_year):
+        creation_date = self.props.media.get_creation_date()
+        if creation_date:
+            timezone = creation_date.get_timezone()
+            month = creation_date.get_month()
+            day = creation_date.get_day_of_month()
+            hour = creation_date.get_hour()
+            minute = creation_date.get_minute()
+            second = creation_date.get_second()
+            updated_creation_date = GLib.DateTime(
+                timezone, int(creation_year), month, day, hour, minute, second)
+            self.props.media.set_creation_date(updated_creation_date)
+            self._grilo.writeback(
+                self.props.media, Grl.METADATA_KEY_CREATION_DATE)
+
     def set_last_played(self):
         if not self._is_tracker:
             return


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]