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);