aboutsummaryrefslogtreecommitdiff
path: root/src/player-controller.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/player-controller.vala')
-rw-r--r--src/player-controller.vala18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/player-controller.vala b/src/player-controller.vala
index 4c09c12..aa72cac 100644
--- a/src/player-controller.vala
+++ b/src/player-controller.vala
@@ -18,20 +18,20 @@ You should have received a copy of the GNU General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-
using Dbusmenu;
using Gee;
public class PlayerController : GLib.Object
{
- private const int METADATA = 2;
+ private const int METADATA = 2;
+ private const int TRANSPORT = 3;
+
private Dbusmenu.Menuitem root_menu;
private string name;
private bool is_active;
private ArrayList<Dbusmenu.Menuitem> custom_items;
private MprisController mpris_adaptor;
- // TODO: pass in the appropriate position for the menu (to handle multiple players)
public PlayerController(Dbusmenu.Menuitem root, string client_name, bool active)
{
this.root_menu = root;
@@ -39,12 +39,20 @@ public class PlayerController : GLib.Object
this.is_active = active;
this.custom_items = new ArrayList<Dbusmenu.Menuitem>();
self_construct();
+
// Temporary scenario to handle both v1 and v2 of MPRIS.
if(this.name == "Vlc"){
this.mpris_adaptor = new MprisControllerV2(this.name, this);
- }else{
+ }
+ else{
this.mpris_adaptor = new MprisController(this.name, this);
- }
+ }
+
+ // TODO subclass dbusmenuMenuitem to something like a playermenuitem
+ // and use this type to collectively
+ // control widgets.
+ TransportMenuitem t = (TransportMenuitem)this.custom_items[TRANSPORT];
+ t.set_adaptor(this.mpris_adaptor);
}
public void vanish()