Mercurial > hg > jslab
comparison src/scheme/filelist.scm @ 0:bf79fb79ee13
Initial Mercurial check in.
author | samer |
---|---|
date | Tue, 17 Jan 2012 17:50:20 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:bf79fb79ee13 |
---|---|
1 (import "java.util.*") | |
2 (import "java.awt.*") | |
3 (import "java.io.*") | |
4 (import "javax.swing.*") | |
5 | |
6 (define (edit-list L) | |
7 (define dlg (JFileChooser.)) | |
8 (.setMultiSelectionEnabled dlg #t) | |
9 (if (pair? L) | |
10 (begin | |
11 (.setCurrentDirectory dlg (car L)) | |
12 (.setSelectedFiles dlg (list->array java.io.File.class L)) | |
13 ) | |
14 ) | |
15 (.showDialog dlg null "Done") | |
16 (vector->list (.getSelectedFiles dlg)) | |
17 ) | |
18 | |
19 (define (restore-list name) (map File. (eval-string (get name)))) | |
20 (define (store-list name L) | |
21 (X.store name (string-append "'" | |
22 (.toString (map .toString L))))) | |
23 | |
24 | |
25 (define filesrc null) | |
26 | |
27 (define (get-playlist) (array->list (.toArray (.getPlaylist filesrc)))) | |
28 (define (set-playlist L) | |
29 (.setPlaylist filesrc (Arrays.asList (list->vector L))) | |
30 (.rewind filesrc)) | |
31 | |
32 (define (edit-playlist) (set-playlist (edit-list (get-playlist)))) | |
33 (define (restore-playlist) (set-playlist (restore-list "playlist.files"))) | |
34 (define (store-playlist) (store-list "playlist.files" (get-playlist))) | |
35 (define (clear-playlist) (set-playlist ())) | |
36 (define (rewind) (.rewind filesrc)) | |
37 | |
38 (define (filesource . format) | |
39 (set! filesrc (samer.audio.FileSource.)) | |
40 (if (not (null? format)) (.setTargetFormat filesrc (car format))) | |
41 (tryCatch (restore-playlist) (lambda (ex) ())) | |
42 filesrc) | |
43 | |
44 (define (dirsource ext . format) | |
45 (define dir (VFile. "playlist.directory")) | |
46 (set! filesrc (samer.audio.FileSource.)) | |
47 (if (not (null? format)) (.setTargetFormat filesrc (car format))) | |
48 (on-change dir | |
49 (.setDirectory filesrc (.getFile dir) ext) | |
50 (.rewind filesrc)) | |
51 (tryCatch (.changed dir) (lambda (ex) ())) | |
52 filesrc) | |
53 | |
54 (define (wav? f) (.endsWith (.toString f) ".wav")) | |
55 | |
56 |