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

use Gtk2 -init;
use Gtk2::Ex::Simple::List;
use Audio::FLAC::Header;
use File::Spec::Functions qw{catfile};

my $directory = '/home/peter/cds';

my $window = Gtk2::Window->new;
$window->signal_connect(destroy => sub { Gtk2->main_quit });

my $vbox = Gtk2::VBox->new;

my $list = Gtk2::Ex::Simple::List->new(
    'Artist' => 'text',
    'Album' => 'text',
    'Filename' => 'text',
);

my $scrollbox = Gtk2::ScrolledWindow->new();
$scrollbox->add_with_viewport($list);
#$vbox->add($list);


opendir FLAC_DIR, $directory;
while (my $file = readdir(FLAC_DIR)) {
    next unless $file =~ /\.flac$/;
    my $flac = Audio::FLAC::Header->new(catfile($directory, $file));
    my $tags = $flac->tags;
    push @{ $list->{data} }, [
        $tags->{ARTIST} || '[No Artist]', 
        $tags->{ALBUM} || '[No Title]',
        $file
    ];
}

$list->signal_connect(row_activated => sub {
    my ($list, $path, $column) = @_;
    my $filename = $list->{data}[$path->to_string][2];
    #TODO: burn flac file
});

$window->add($scrollbox);
$window->set_default_size(600, 400);
$window->show_all;
Gtk2->main;
