[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