[Syncropated-commits] r162 - trunk/src
zimmerle at garage.maemo.org
zimmerle at garage.maemo.org
Tue Jan 30 01:48:48 EET 2007
Author: zimmerle
Date: 2007-01-30 01:48:47 +0200 (Tue, 30 Jan 2007)
New Revision: 162
Added:
trunk/src/ElementMusic.py
Log:
ElementMusic first import
Added: trunk/src/ElementMusic.py
===================================================================
--- trunk/src/ElementMusic.py 2007-01-29 23:44:04 UTC (rev 161)
+++ trunk/src/ElementMusic.py 2007-01-29 23:48:47 UTC (rev 162)
@@ -0,0 +1,161 @@
+
+
+import gobject
+import gtk
+import os
+
+import eyeD3
+import mutagen
+import mutagen.easyid3
+
+from Logger import Logger
+from Configuration import Configuration
+from Icons import Icons
+from Utils import Utils
+from Exif import Exif
+
+log = Logger()
+config = Configuration()
+icons = Icons()
+utils = Utils()
+
+
+class ElementMusic(gobject.GObject):
+ """
+ Handle music files.
+
+ """
+
+ __file_path = None
+ __iter = iter
+
+ def __init__(self, filepath=None):
+ """
+ Constructor
+
+ """
+ gobject.GObject.__init__(self)
+
+ self.mp3 = None
+ self.set_file_path(filepath)
+ return
+
+
+ def set_file_path(self, filepath):
+ """
+ Set file path and read the music.
+
+ """
+ self.__file_path = filepath
+
+ mut2 = None
+
+ log.info('ElementMusic :: Loading file: ' + filepath)
+ try:
+ self.mp3 = eyeD3.Mp3AudioFile(filepath)
+ mut = mutagen.File(filepath)
+ if isinstance(mut, mutagen.mp3.MP3):
+ mut2 = mutagen.easyid3.EasyID3(filepath)
+ if isinstance(mut, mutagen.m4a.M4A):
+ mut2 = {}
+ mut2['title'] = str(audio['\xa9nam'])
+ except:
+ log.info('ElementMusic :: Problems loading file: ' + filepath)
+ pass
+ self.mut = mut2
+
+
+ def get_file_path(self):
+ """
+ Return the file path
+
+ """
+ return os.path.split(self.__file_path)[0]
+
+
+ def get_filename(self):
+ """
+ Return file name
+
+ """
+ return os.path.split(self.__file_path)[1]
+
+
+ def set_iter(self, iter):
+ """
+ Set iter.
+
+ """
+ log.debug('ElementMusic :: ' + str(iter))
+ self.__iter = iter
+
+
+ def get_iter(self):
+ """
+ Get iter.
+
+ """
+ return self.__iter
+
+
+ def set_property(self, key, value):
+ if key == 'getPlayCount':
+ try:
+ self.mp3.tag.setPlayCount(int(value))
+ self.mp3.tag.update()
+ except:
+ pass
+ return
+
+ try:
+ self.mut[key] = value
+ self.mut.pprint()
+ self.mut.save()
+ except:
+ pass
+
+
+ def get_property(self, name):
+ if self.mp3 == None:
+ return 'Unknow'
+
+ if name == 'filename':
+ return self.mp3.fileName
+ elif name == 'getPath':
+ return self.get_file_path()
+ elif name == 'getBitRateString' or name == 'getPlayTimeString' or name == 'getSize':
+ func = getattr(self.mp3, name)
+ return func()
+
+ elif name == 'getPlayCount':
+ if self.mp3.tag != None:
+ func = getattr(self.mp3.tag, 'getPlayCount')
+ return func()
+
+ elif name == 'title':
+ title = self.mp3.fileName
+ try:
+ title = str(self.mut["title"][0])
+ except:
+ pass
+ return utils.unicodify(title)
+ else:
+ value = ''
+ try:
+ try:
+ value = self.mut[name][0]
+ except:
+ value = self.mut[name]
+ pass
+
+ except:
+ value = ''
+ pass
+
+ if type(value) == tuple:
+ value = value[0]
+
+ value = utils.unicodify(str(value))
+
+ return value
+
More information about the Syncropated-commits
mailing list