Hello, I'm trying to implement podcast support for banshee. But I know To little from Banshee to make a clean Implementation. Now I have a standalone program that connects over DBus to Banshee and add the new episodes from podcasts. So a proof of concept works. Still very buggy, but with a little tuning I think that it can be very usefull. Now I hope someone with more knowledge can help to implement this in Banshee ! Thanks, P.S.: Now all the data is stored in my home dir, this can be adjusted by changing the path and file variable.
Attachment:
podcast.tar.gz
Description: application/compressed-tar
? prepare-ChangeLog.pl ? burn-sharp/.deps ? burn-sharp/.libs ? burn-sharp/glue.lo ? burn-sharp/libnautilusburnglue.la ? libbanshee/.deps ? libbanshee/.libs ? libbanshee/gst-cd-rip-0.8.lo ? libbanshee/gst-misc-0.8.lo ? libbanshee/gst-playback-0.8.lo ? libbanshee/gst-transcode-0.8.lo ? libbanshee/hal-context.lo ? libbanshee/inotify-glue.lo ? libbanshee/libbanshee.la ? libbanshee/xing/.deps ? po/.intltool-merge-cache Index: src/DBusIPC.cs =================================================================== RCS file: /cvs/gnome/banshee/src/DBusIPC.cs,v retrieving revision 1.15 diff -u -r1.15 DBusIPC.cs --- src/DBusIPC.cs 22 Dec 2005 02:25:53 -0000 1.15 +++ src/DBusIPC.cs 27 Dec 2005 22:32:02 -0000 @@ -155,6 +155,13 @@ PlayerUI.Next(); } } + + [Method] + public virtual void ImportFiles(String[] Uris){ + if(PlayerUI != null) { + PlayerUI.ImportFiles(Uris); + } + } [Method] public virtual void Previous() Index: src/Main.cs =================================================================== RCS file: /cvs/gnome/banshee/src/Main.cs,v retrieving revision 1.23 diff -u -r1.23 Main.cs --- src/Main.cs 22 Dec 2005 00:42:56 -0000 1.23 +++ src/Main.cs 27 Dec 2005 22:32:11 -0000 @@ -67,6 +67,10 @@ new ArgumentLayout("toggle-playing", "Toggle playing of current song"), new ArgumentLayout("play", "Play current song"), new ArgumentLayout("pause", "Pause current song"), + new ArgumentLayout("inc-volume","Increase volume"), + new ArgumentLayout("dec-volume","Decrease volume"), + new ArgumentLayout("skip-forward","Skip forward"), + new ArgumentLayout("skip-backward","Skip backward"), new ArgumentLayout("query-artist", "Get artist name for current playing song"), new ArgumentLayout("query-album", "Get album name for current playing song"), new ArgumentLayout("query-title", "Get track title for current playing song"), @@ -153,6 +157,26 @@ dbusCore.Previous(); present = false; break; + case "inc-volume": + dbusCore.IncreaseVolume(); + Core.ArgumentQueue.Dequeue(arg); + present = false; + break; + case "dec-volume": + dbusCore.DecreaseVolume(); + Core.ArgumentQueue.Dequeue(arg); + present = false; + break; + case "skip-forward": + dbusCore.SkipForward(); + Core.ArgumentQueue.Dequeue(arg); + present = false; + break; + case "skip-backward": + dbusCore.SkipBackward(); + Core.ArgumentQueue.Dequeue(arg); + present = false; + break; case "query-artist": PrintQueryResult("Artist", dbusCore.GetPlayingArtist()); present = false; Index: src/PlayerInterface.cs =================================================================== RCS file: /cvs/gnome/banshee/src/PlayerInterface.cs,v retrieving revision 1.124 diff -u -r1.124 PlayerInterface.cs --- src/PlayerInterface.cs 25 Dec 2005 19:19:45 -0000 1.124 +++ src/PlayerInterface.cs 27 Dec 2005 22:33:07 -0000 @@ -1074,6 +1074,12 @@ // ---- Playlist Event Handlers ---- + + public void ImportFiles(String[] Uris) + { + ImportManager.Instance.QueueSource(Uris); + } + private void ImportWithFileSelector() { FileChooserDialog chooser = new FileChooserDialog( @@ -2214,7 +2220,7 @@ private void OnImportFilesAction(object o, EventArgs args) { - FileChooserDialog chooser = new FileChooserDialog( + FileChooserDialog chooser = new FileChooserDialog( Catalog.GetString("Import Files to Library"), null, FileChooserAction.Open @@ -2233,7 +2239,7 @@ chooser.DefaultResponse = ResponseType.Ok; if(chooser.Run() == (int)ResponseType.Ok) { - ImportManager.Instance.QueueSource(chooser.Uris); + ImportFiles(chooser.Uris); } Core.GconfClient.Set(GConfKeys.LastFileSelectorUri, chooser.CurrentFolderUri);