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