Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программное обеспечение под *NIX системы > Publish tune в psi для Amarok


Автор: Сумасшедший 24.4.2008, 15:10
Psi может брать информацию о проигрываемой композиции из файла $PSIDATADIR/tune (в данном случае - ~/.psi/tune)
Потому можно получать какой трек проигрывается сейчас и записывать в этот файл.
Код

#!/usr/bin/perl -w
use strict;

sub GetPath($)
    {
    my $path = shift;
    open(PROC,"dcop amarok player ${path}|");
    my @result = <PROC>;
    close(PROC);
    chomp(@result);
    return $result[0];
    }

sub ChTrack()
    {
    my $result = "";
    $result .= &GetPath("title")."\n";
    $result .= &GetPath("artist")."\n";
    $result .= &GetPath("album")."\n";
    $result .= &GetPath("track")."\n";
    $result .= &GetPath("totalTime")."\n";
    return $result;
    }

my $old_data = "";
while(1)
    {
    my $data = &ChTrack();
    if($old_data ne $data)
        {
        $old_data = $data;
        system("rm ~/.psi/tune");
        system("echo '".$data."' > ~/.psi/tune");
        }
    sleep(5);
    }


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)