summaryrefslogtreecommitdiff
path: root/.local/bin/blocks/player
diff options
context:
space:
mode:
Diffstat (limited to '.local/bin/blocks/player')
-rwxr-xr-x.local/bin/blocks/player136
1 files changed, 0 insertions, 136 deletions
diff --git a/.local/bin/blocks/player b/.local/bin/blocks/player
deleted file mode 100755
index cc17a4e..0000000
--- a/.local/bin/blocks/player
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/usr/bin/env perl
-
-use Time::HiRes qw(usleep);
-use Env qw(BLOCK_INSTANCE);
-
-use constant DELAY => 50; # Delay in ms to let network-based players (spotify) reflect new data.
-use constant SPOTIFY_STR => 'spotify';
-
-my $label = $ENV{LABEL} // "";
-my @metadata = ();
-my $player_arg = "";
-
-if ($BLOCK_INSTANCE) {
- $player_arg = "--player='$BLOCK_INSTANCE'";
-}
-
-sub buttons {
- my $method = shift;
-
- if($method eq 'mpd') {
- if ($ENV{'BLOCK_BUTTON'} == 1) {
- system("mpc prev");
- } elsif ($ENV{'BLOCK_BUTTON'} == 2) {
- system("mpc toggle");
- } elsif ($ENV{'BLOCK_BUTTON'} == 3) {
- system("mpc next");
- } elsif ($ENV{'BLOCK_BUTTON'} == 4) {
- system("mpc volume +10");
- } elsif ($ENV{'BLOCK_BUTTON'} == 5) {
- system("mpc volume -10");
- }
- } elsif ($method eq 'cmus') {
- if ($ENV{'BLOCK_BUTTON'} == 1) {
- system("cmus-remote --prev");
- } elsif ($ENV{'BLOCK_BUTTON'} == 2) {
- system("cmus-remote --pause");
- } elsif ($ENV{'BLOCK_BUTTON'} == 3) {
- system("cmus-remote --next");
- }
- } elsif ($method eq 'playerctl') {
- if ($ENV{'BLOCK_BUTTON'} == 1) {
- system("playerctl $player_arg previous");
- usleep(DELAY * 1000) if $BLOCK_INSTANCE eq SPOTIFY_STR;
- } elsif ($ENV{'BLOCK_BUTTON'} == 2) {
- system("playerctl $player_arg play-pause");
- } elsif ($ENV{'BLOCK_BUTTON'} == 3) {
- system("playerctl $player_arg next");
- usleep(DELAY * 1000) if $BLOCK_INSTANCE eq SPOTIFY_STR;
- } elsif ($ENV{'BLOCK_BUTTON'} == 4) {
- system("playerctl $player_arg volume 0.01+");
- } elsif ($ENV{'BLOCK_BUTTON'} == 5) {
- system("playerctl $player_arg volume 0.01-");
- }
- } elsif ($method eq 'rhythmbox') {
- if ($ENV{'BLOCK_BUTTON'} == 1) {
- system("rhythmbox-client --previous");
- } elsif ($ENV{'BLOCK_BUTTON'} == 2) {
- system("rhythmbox-client --play-pause");
- } elsif ($ENV{'BLOCK_BUTTON'} == 3) {
- system("rhythmbox-client --next");
- }
- }
-}
-
-print("$label ");
-sub cmus {
- my @cmus = split /^/, qx(cmus-remote -Q);
- if ($? == 0) {
- foreach my $line (@cmus) {
- my @data = split /\s/, $line;
- if (shift @data eq 'tag') {
- my $key = shift @data;
- my $value = join ' ', @data;
-
- @metadata[0] = $value if $key eq 'artist';
- @metadata[1] = $value if $key eq 'title';
- }
- }
-
- if (@metadata) {
- buttons('cmus');
-
- # metadata found so we are done
- print(join ' - ', @metadata);
- exit 0;
- }
- }
-}
-
-sub mpd {
- my $data = qx(mpc current);
- if (not $data eq '') {
- buttons("mpd");
- print($data);
- exit 0;
- }
-}
-
-sub playerctl {
- buttons('playerctl');
-
- my $artist = qx(playerctl $player_arg metadata artist);
- chomp $artist;
- # exit status will be nonzero when playerctl cannot find your player
- exit(0) if $? || $artist eq '(null)';
-
- push(@metadata, $artist) if $artist;
-
- my $title = qx(playerctl $player_arg metadata title);
- exit(0) if $? || $title eq '(null)';
-
- push(@metadata, $title) if $title;
-
- print(join(" - ", @metadata)) if @metadata;
-}
-
-sub rhythmbox {
- buttons('rhythmbox');
-
- my $data = qx(rhythmbox-client --print-playing --no-start);
- print($data);
-}
-
-if ($player_arg eq '' or $player_arg =~ /mpd/) {
- mpd;
-}
-elsif ($player_arg =~ /cmus/) {
- cmus;
-}
-elsif ($player_arg =~ /rhythmbox/) {
- rhythmbox;
-}
-else {
- playerctl;
-}
-print("\n");