#!/usr/bin/env splrun_norl
load "file";
load "stfl";
load "system";
var inlist = file_read("inlist.txt", "ascii") =~ /[^\n]+/Ag;
var outlist = file_read("outlist.txt", "ascii") =~ /[^\n]+/Ag;
var dellist = file_read("dellist.txt", "ascii") =~ /[^\n]+/Ag;
var f = stfl_create(<:>
: table
: @style_focus:bg=blue,fg=white,attr=bold
: list[inlist]
: .border:lrtb
: pos_name[inlist_pos]:
: tablebr
: list[outlist]
: .border:lrtb
: pos_name[outlist_pos]:
: tablebr
: label
: .expand:0
: text[helpmsg]:
>);
function update_lists()
{
stfl_modify(f, "inlist", "replace_inner", <:>
: list
: listitem[inlist_$t]
: text:${stfl::inlist[t]}
>);
stfl_modify(f, "outlist", "replace_inner", <:>
: list
: listitem[outlist_$t]
: text:${stfl::outlist[t]}
>);
}
update_lists();
stfl_run(f, -1);
while(1)
{
switch
{
case stfl_get_focus(f) ~== "inlist":
stfl_set(f, "helpmsg", "Input List: [d]elete [s]chedule [p]lay");
case stfl_get_focus(f) ~== "outlist":
stfl_set(f, "helpmsg", "Output List: [u]nschedule [p]lay");
default:
stfl_set(f, "helpmsg", "");
}
var event = stfl_run(f, 0);
switch
{
case event ~== "d" && stfl_get_focus(f) ~== "inlist" && stfl_get(f, "inlist_pos") =~ /^inlist_(\d+)/:
push dellist, inlist[$1];
delete inlist[$1];
update_lists();
case event ~== "s" && stfl_get_focus(f) ~== "inlist" && stfl_get(f, "inlist_pos") =~ /^inlist_(\d+)/:
unshift outlist, inlist[$1];
delete inlist[$1];
update_lists();
case event ~== "p" && stfl_get_focus(f) ~== "inlist" && stfl_get(f, "inlist_pos") =~ /^inlist_(\d+)/:
// stfl_reset();
system("xmms ${inlist[$1] =~ s/[^a-zA-Z0-9_\/]/*/Rg}\n");
case event ~== "u" && stfl_get_focus(f) ~== "outlist" && stfl_get(f, "outlist_pos") =~ /^outlist_(\d+)/:
push outlist, outlist[$1];
delete outlist[$1];
update_lists();
case event ~== "p" && stfl_get_focus(f) ~== "outlist" && stfl_get(f, "outlist_pos") =~ /^outlist_(\d+)/:
// stfl_reset();
system("xmms ${outlist[$1] =~ s/[^a-zA-Z0-9_\/]/*/Rg}\n");
case event ~== "ESC":
break;
}
}
file_write("inlist.txt", <:>
: $text
>, "ascii");
file_write("outlist.txt", <:>
: $text
>, "ascii");
file_write("dellist.txt", <:>
: $text
>, "ascii");