[Pkg-cli-apps-commits] r3818 - in /packages/tangerine/trunk/debian/patches: 01_new-db4o.patch 02_new-taglib-sharp.patch

slomo at users.alioth.debian.org slomo at users.alioth.debian.org
Wed Mar 19 22:50:48 UTC 2008


Author: slomo
Date: Wed Mar 19 22:50:48 2008
New Revision: 3818

URL: http://svn.debian.org/wsvn/pkg-cli-apps/?sc=1&rev=3818
Log:
* fix build with newer db4o and taglib-sharp

Added:
    packages/tangerine/trunk/debian/patches/01_new-db4o.patch
    packages/tangerine/trunk/debian/patches/02_new-taglib-sharp.patch

Added: packages/tangerine/trunk/debian/patches/01_new-db4o.patch
URL: http://svn.debian.org/wsvn/pkg-cli-apps/packages/tangerine/trunk/debian/patches/01_new-db4o.patch?rev=3818&op=file
==============================================================================
--- packages/tangerine/trunk/debian/patches/01_new-db4o.patch (added)
+++ packages/tangerine/trunk/debian/patches/01_new-db4o.patch Wed Mar 19 22:50:48 2008
@@ -1,0 +1,220 @@
+--- ../../../../build-area/tangerine-0.3.0+dfsg/plugins/file/FilePlugin.cs	2008-03-19 23:45:28.000000000 +0100
++++ FilePlugin.cs	2008-03-19 23:44:37.000000000 +0100
+@@ -7,11 +7,12 @@
+ using Nini;
+ using DAAP;
+ using log4net;
+-using com.db4o;
++using Db4objects.Db4o;
++
++[assembly: Tangerine.Plugin ("file", typeof (Tangerine.Plugins.FilePlugin))]
+ 
+ namespace Tangerine.Plugins {
+ 
+-    [Plugin ("file")]
+     public class FilePlugin : IDisposable {
+         private Dictionary<string, Track> trackHash = new Dictionary<string, Track> ();
+         private Dictionary<string, Playlist> playlistHash = new Dictionary<string, Playlist> ();
+@@ -21,7 +22,7 @@
+         private string[] directories;
+         private bool running = true;
+ 
+-        private ObjectContainer odb;
++        private IObjectContainer odb;
+ 
+         private Server server;
+         private Database db;
+@@ -29,22 +30,24 @@
+         
+         public FilePlugin () {
+ 
+-#if !WINDOWS
++#if LINUX || MACOSX
+             string defaultDir = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.Personal), "Music");
+-#else
++            char splitChar = ':';
++#else
+             string defaultDir = Environment.GetFolderPath (Environment.SpecialFolder.MyMusic);
++            char splitChar = ';';
+ #endif
+             if (Daemon.ConfigSource.Configs["FilePlugin"] == null) {
+                 directories = new string[] { defaultDir };
+             } else {
+-                directories = Daemon.ConfigSource.Configs["FilePlugin"].Get ("directories", defaultDir).Split (';');
++                directories = Daemon.ConfigSource.Configs["FilePlugin"].Get ("directories", defaultDir).Split (splitChar);
+             }
+ 
+             server = Daemon.Server;
+             db = Daemon.DefaultDatabase;
+             log = Daemon.Log;
+ 
+-#if !WINDOWS
++#if LINUX
+             if (Inotify.Enabled) {
+                 log.Info ("Using inotify to watch for changes");
+             } else {
+@@ -107,11 +110,12 @@
+                 if (!Directory.Exists (Daemon.ConfigDirectory)) {
+                     Directory.CreateDirectory (Daemon.ConfigDirectory);
+                 }
+-                
+-                odb = Db4o.OpenFile (Path.Combine (Daemon.ConfigDirectory, "tracks.db"));
++
++                Db4oFactory.Configure().AllowVersionUpdates (true);
++                odb = Db4oFactory.OpenFile (Path.Combine (Daemon.ConfigDirectory, "tracks.db"));
+             }
+ 
+-            ObjectSet result = odb.Get (typeof (Track));
++            IObjectSet result = odb.Get (typeof (Track));
+             log.DebugFormat ("{0} songs in database", result.Count);
+             
+             foreach (Track song in result) {
+@@ -146,7 +150,7 @@
+                 return;
+             }
+ 
+-#if !WINDOWS
++#if LINUX
+             Inotify.Subscribe (dir, OnDirectoryEvent,
+                                Inotify.EventType.CloseWrite | Inotify.EventType.MovedFrom |
+                                Inotify.EventType.MovedTo | Inotify.EventType.Delete | Inotify.EventType.Unmount);
+@@ -176,24 +180,46 @@
+             }
+         }
+ 
+-        public static void UpdateTrack (Track track, string file) {
++        public static bool UpdateTrack (Track track, string file) {
+             TagLib.File af;
+ 
++            FileInfo info = new FileInfo (file);
++            if((int) info.Length >= 0) {
++                track.Size = (int) info.Length;
++            } else {
++                return false;
++            }
++
+             try {
+                 af = TagLib.File.Create (file);
+-            } catch (Exception e) {
+-                return;
++            } catch {
++                return false;
++            }
++
++            if(af.Properties.Duration.TotalSeconds >= 1) {
++                track.Duration = af.Properties.Duration;
++            } else {
++                return false;
+             }
+ 
+-            if (af.Tag.Artists != null && af.Tag.Genres.Length > 0) {
++            if((short) af.Properties.AudioBitrate >=0) {
++                track.BitRate = (short) af.Properties.AudioBitrate;
++            }else{
++                return false;
++            }
++
++            if (af.Tag.Artists != null && af.Tag.Artists.Length > 0) {
+                 track.Artist = af.Tag.Artists[0];
+             } else {
+                 track.Artist = String.Empty;
+             }
+             
+             track.Album = af.Tag.Album;
+-            track.Title = af.Tag.Title;
+-            track.Duration = af.AudioProperties.Duration;
++            if (track.Artist != String.Empty || (af.Tag.Title != null && af.Tag.Title != String.Empty) || (af.Tag.Album != null && af.Tag.Album != String.Empty)) {
++                track.Title = af.Tag.Title;
++            } else {
++                track.Title = info.Name;
++            }
+             track.FileName = file;
+             track.Format = Path.GetExtension (file).Substring (1);
+ 
+@@ -203,31 +229,26 @@
+                 track.Genre = String.Empty;
+             }
+             
+-            FileInfo info = new FileInfo (file);
+-            track.Size = (int) info.Length;
+             track.TrackCount = (int) af.Tag.TrackCount;
+             track.TrackNumber = (int) af.Tag.Track;
+             track.Year = (int) af.Tag.Year;
+-            track.BitRate = (short) af.AudioProperties.Bitrate;
++
++            return true;
+         }
+ 
+         private void AddTrack (string file) {
+             if (trackHash.ContainsKey (file))
+                 return;
+             
+-            Track track;
+-
+-            if (trackHash.ContainsKey (file)) {
+-                track = trackHash[file];
+-            } else {
+-                track = new Track ();
+-                db.AddTrack (track);
++            Track track = new Track ();
++            try {
++                if (UpdateTrack (track, file)) {
++                    db.AddTrack (track);   
++                    trackHash[file] = track;
++                    odb.Set (track);
++                }
++            } catch {
+             }
+-
+-            UpdateTrack (track, file);
+-
+-            trackHash[file] = track;
+-            odb.Set (track);
+         }
+ 
+         private void RemoveTrack (string file) {
+@@ -275,7 +296,7 @@
+             playlistHash.Remove (file);
+         }
+ 
+-#if !WINDOWS
++#if LINUX
+         private void OnDirectoryEvent (Inotify.Watch watch, string path, string subitem,
+                                        string srcpath, Inotify.EventType type) {
+ 
+--- plugins/file/FilePlugin.cs.old	2008-03-19 23:45:55.000000000 +0100
++++ plugins/file/FilePlugin.cs	2008-03-19 23:47:57.000000000 +0100
+@@ -7,7 +7,7 @@
+ using Nini;
+ using DAAP;
+ using log4net;
+-using com.db4o;
++using Db4objects.Db4o;
+ 
+ namespace Tangerine.Plugins {
+ 
+@@ -21,7 +21,7 @@
+         private string[] directories;
+         private bool running = true;
+ 
+-        private ObjectContainer odb;
++        private IObjectContainer odb;
+ 
+         private Server server;
+         private Database db;
+@@ -107,11 +107,12 @@
+                 if (!Directory.Exists (Daemon.ConfigDirectory)) {
+                     Directory.CreateDirectory (Daemon.ConfigDirectory);
+                 }
+-                
+-                odb = Db4o.OpenFile (Path.Combine (Daemon.ConfigDirectory, "tracks.db"));
++
++                Db4oFactory.Configure().AllowVersionUpdates (true);
++                odb = Db4oFactory.OpenFile (Path.Combine (Daemon.ConfigDirectory, "tracks.db"));                
+             }
+ 
+-            ObjectSet result = odb.Get (typeof (Track));
++            IObjectSet result = odb.Get (typeof (Track));
+             log.DebugFormat ("{0} songs in database", result.Count);
+             
+             foreach (Track song in result) {

Added: packages/tangerine/trunk/debian/patches/02_new-taglib-sharp.patch
URL: http://svn.debian.org/wsvn/pkg-cli-apps/packages/tangerine/trunk/debian/patches/02_new-taglib-sharp.patch?rev=3818&op=file
==============================================================================
--- packages/tangerine/trunk/debian/patches/02_new-taglib-sharp.patch (added)
+++ packages/tangerine/trunk/debian/patches/02_new-taglib-sharp.patch Wed Mar 19 22:50:48 2008
@@ -1,0 +1,20 @@
+--- plugins/file/FilePlugin.cs.old	2008-03-19 23:48:27.000000000 +0100
++++ plugins/file/FilePlugin.cs	2008-03-19 23:49:28.000000000 +0100
+@@ -194,7 +194,7 @@
+             
+             track.Album = af.Tag.Album;
+             track.Title = af.Tag.Title;
+-            track.Duration = af.AudioProperties.Duration;
++            track.Duration = af.Properties.Duration;
+             track.FileName = file;
+             track.Format = Path.GetExtension (file).Substring (1);
+ 
+@@ -209,7 +209,7 @@
+             track.TrackCount = (int) af.Tag.TrackCount;
+             track.TrackNumber = (int) af.Tag.Track;
+             track.Year = (int) af.Tag.Year;
+-            track.BitRate = (short) af.AudioProperties.Bitrate;
++            track.BitRate = (short) af.Properties.AudioBitrate;
+         }
+ 
+         private void AddTrack (string file) {




More information about the Pkg-cli-apps-commits mailing list