#!/usr/bin/perl #amadcop.pl 1.5 by Bultom ( bultom@gmail.com / bultom (at) gmail (dot) com ) #Licence : GPL 2.0 and next #Usage : next prev play pause stop volup voldown curplay #This is a simple script to controle Amarok player by Xchat and DCOP : # # # ( Play / Pause / Next / Previous / Stop / Volume(up/down) ) use strict; Xchat::register("amadcop","1.5","Amarok xchat info (bultom)"); IRC::print("Amadcop 1.5 for XChat \cB\cC3loaded\cC0 :)"); IRC::add_command_handler("play", "cmd_amaplay"); IRC::add_command_handler("pause", "cmd_amapause"); IRC::add_command_handler("stop", "cmd_amastop"); IRC::add_command_handler("next", "cmd_amanext"); IRC::add_command_handler("prev", "cmd_amaprev"); IRC::add_command_handler("volup", "cmd_amavolup"); IRC::add_command_handler("voldown", "cmd_amavoldown"); IRC::add_command_handler("curplay", "cmd_amacurplay"); my $dcopbin = "dcop"; sub cmd_amaplay { my $amaplay; $amaplay = `$dcopbin amarok player play`; Xchat::EAT_XCHAT; } sub cmd_amapause { my $amapause; $amapause = `$dcopbin amarok player pause`; Xchat::EAT_XCHAT; } sub cmd_amastop { my $amastop; $amastop = `$dcopbin amarok player stop`; Xchat::EAT_XCHAT; } sub cmd_amanext { my $amanext; $amanext = `$dcopbin amarok player next`; Xchat::EAT_XCHAT; } sub cmd_amaprev { my $amaprev; $amaprev = `$dcopbin amarok player prev`; Xchat::EAT_XCHAT; } sub cmd_amavolup { my $amavolup; $amavolup = `$dcopbin amarok player volumeUp`; Xchat::EAT_XCHAT; } sub cmd_amavoldown { my $amavoldown; $amavoldown = `$dcopbin amarok player volumeDown`; Xchat::EAT_XCHAT; } sub cmd_amacurplay { my $title; my $curtime; my $totaltime; my $bitrate; my $type; my $rate; my $volume; my $engine; $title = `$dcopbin amarok player nowPlaying`; $curtime = `$dcopbin amarok player currentTime`; $totaltime = `$dcopbin amarok player totalTime`; $bitrate = `$dcopbin amarok player bitrate`; $type = `$dcopbin amarok player type`; $rate = `$dcopbin amarok player sampleRate`; $volume = `$dcopbin amarok player getVolume`; $engine = `$dcopbin amarok player engine`; chomp($title); chomp($curtime); chomp($totaltime); chomp($bitrate); chomp($type); chomp($rate); chomp($volume); chomp($engine); IRC::command("/me play on Amarok: $title [$type] [$curtime/$totaltime] [$bitrate/$rate Hz] [volume:$volume%] [$engine rendering]");