~cszikszoy/do-plugins/pastebin

« back to all changes in this revision

Viewing changes to Rhythmbox/src/RhythmboxPlayCommand.cs

  • Committer: djsiegel at gmail
  • Date: 2007-11-07 17:13:21 UTC
  • Revision ID: djsiegel@gmail.com-20071107171321-zgu46ukqlpdx1ypa
Initial files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//  RhythmboxPlayCommand.cs
 
2
//
 
3
//  GNOME Do is the legal property of its developers, whose names are too numerous
 
4
//  to list here.  Please refer to the COPYRIGHT file distributed with this
 
5
//  source distribution.
 
6
//
 
7
//  This program is free software: you can redistribute it and/or modify
 
8
//  it under the terms of the GNU General Public License as published by
 
9
//  the Free Software Foundation, either version 3 of the License, or
 
10
//  (at your option) any later version.
 
11
//
 
12
//  This program is distributed in the hope that it will be useful,
 
13
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
//  GNU General Public License for more details.
 
16
//
 
17
//  You should have received a copy of the GNU General Public License
 
18
//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
19
 
 
20
using System;
 
21
using System.Diagnostics;
 
22
 
 
23
using RhythmboxAddin;
 
24
 
 
25
namespace Do.Universe
 
26
{
 
27
 
 
28
        public class RhythmboxPlayCommand : ICommand
 
29
        {
 
30
                
 
31
                public RhythmboxPlayCommand ()
 
32
                {
 
33
                }
 
34
                
 
35
                public string Name {
 
36
                        get { return "Play"; }
 
37
                }
 
38
                
 
39
                public string Description {
 
40
                        get { return "Play an Item in Rhythmbox."; }
 
41
                }
 
42
                
 
43
                public string Icon {
 
44
                        get { return "player_play"; }
 
45
                }
 
46
                
 
47
                public Type[] SupportedItemTypes {
 
48
                        get {
 
49
                                return new Type[] {
 
50
                                        typeof (DirectoryFileItem),
 
51
                                };
 
52
                        }
 
53
                }
 
54
                
 
55
                public Type[] SupportedModifierItemTypes {
 
56
                        get { return null; }
 
57
                }
 
58
 
 
59
                public bool SupportsItem (IItem item) {
 
60
                        return true;
 
61
                }
 
62
                
 
63
                public bool SupportsModifierItemForItems (IItem[] items, IItem modItem)
 
64
                {
 
65
                        return false;
 
66
                }
 
67
                
 
68
                public void Perform (IItem[] items, IItem[] modifierItems)
 
69
                {
 
70
                        Rhythmbox.StartIfNeccessary ();
 
71
                        
 
72
                        Rhythmbox.Client ("--clear-queue --no-present", true);
 
73
                        foreach (IItem item in items) {
 
74
                                string music;
 
75
                                
 
76
                                if (item is DirectoryFileItem) {
 
77
                                        music = (item as DirectoryFileItem).URI;
 
78
                                } else {
 
79
                                        continue;
 
80
                                }
 
81
                                Rhythmbox.Client (string.Format ("--enqueue \"{0}\" --no-present", music));
 
82
                        }
 
83
                        Rhythmbox.Client ("--next --play --no-present");
 
84
                }
 
85
        }
 
86
}