#!/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;