r10454: fix exports
[cl-photo.git] / cameras.lisp
index c084fec013014d84e4b17cd20e6014a7247577f1..9b93505e7c7d08a8779c1468ba54148ca73c7757 100644 (file)
 
 (defparameter +format-db+
   '(
-   (:format :d2x :make "Nikon" :pixels (4288 . 2848) :imager (23.7 . 15.6) :name "D2X")
-   (:format :d100 :make "Nikon" :pixels (3037 . 2024) :imager (23.7 . 15.6) :name "D100")
-   (:format :d70 :make "Nikon" :pixels (3008 . 2000) :imager (23.7 . 15.6) :name "D70")
-   (:format :d70s :make "Nikon" :pixels (3008 . 2000) :imager (23.7 . 15.6) :name "D70s")
-   (:format :d50 :make "Nikon" :pixels (3008 . 2000) :imager (23.7 . 15.6) :name "D70")
-   (:format :d1x :make "Nikon" :pixels (4028 . 1324) :imager (23.7 . 15.6) :name "D1X")
-   (:format :d2h :make "Nikon" :pixels (2464 . 1632) :imager (23.3 . 15.5) :name "D2H")
-   (:format :d2hs :make "Nikon" :pixels (2464 . 1632) :imager (23.3 . 15.5) :name "D2Hs")
-   
-   (:format :300d :make "Canon" :pixels (3072 . 2048) :imager (22.7 . 15.1) :name "300D")
-   (:format :10d :make "Canon" :pixels (3072 . 2048) :imager (22.7 . 15.1) :name "10D")
-   (:format :d30 :make "Canon" :pixels (0 . 0) :imager (22.7 . 15.1) :name "D30")
+    (:format :d2x :make "Nikon" :pixels (4288 . 2848) :imager (23.7 . 15.6) :name "D2X")
+    (:format :d100 :make "Nikon" :pixels (3037 . 2024) :imager (23.7 . 15.6) :name "D100")
+    (:format :d70 :make "Nikon" :pixels (3008 . 2000) :imager (23.7 . 15.6) :name "D70")
+    (:format :d70s :make "Nikon" :pixels (3008 . 2000) :imager (23.7 . 15.6) :name "D70s")
+    (:format :d50 :make "Nikon" :pixels (3008 . 2000) :imager (23.7 . 15.6) :name "D70")
+    (:format :d1x :make "Nikon" :pixels (4028 . 1324) :imager (23.7 . 15.6) :name "D1X")
+    (:format :d2h :make "Nikon" :pixels (2464 . 1632) :imager (23.3 . 15.5) :name "D2H")
+    (:format :d2hs :make "Nikon" :pixels (2464 . 1632) :imager (23.3 . 15.5) :name "D2Hs")
+    
+    (:format :300d :make "Canon" :pixels (3072 . 2048) :imager (22.7 . 15.1) :name "300D")
+    (:format :10d :make "Canon" :pixels (3072 . 2048) :imager (22.7 . 15.1) :name "10D")
+    (:format :d30 :make "Canon" :pixels (0 . 0) :imager (22.7 . 15.1) :name "D30")
     (:format :d60 :make "Canon" :pixels (3072 . 2048) :imager (22.7 . 15.1) :name "D60")
-   (:format :350d :make "Canon" :pixels (3456 . 2304) :imager (22.2 . 14.8) :name "350D")
-   (:format :1d :make "Canon" :pixels (2464 . 1648) :imager (27 . 17.8) :name "1D")
-   (:format :20d :make "Canon" :pixels (3456 . 2304) :imager (22.5 . 15) :name "20D")
-   (:format :1dmkii :make "Canon" :pixels (3504 . 2336) :imager (28.7 . 19.1)
-    :name "1D Mark II" :nicks (:1d2 :1dii :1dmkii))
-   (:format :1ds :make "Canon" :pixels (4064 . 3328) :imager (36 . 24) :name "1Ds")
-   (:format :1dsmkii :make "Canon" :pixels (4992 . 3328) :imager (36 . 24)
+    (:format :350d :make "Canon" :pixels (3456 . 2304) :imager (22.2 . 14.8) :name "350D")
+    (:format :1d :make "Canon" :pixels (2464 . 1648) :imager (27 . 17.8) :name "1D")
+    (:format :20d :make "Canon" :pixels (3456 . 2304) :imager (22.5 . 15) :name "20D")
+    (:format :1dmkii :make "Canon" :pixels (3504 . 2336) :imager (28.7 . 19.1)
+     :name "1D Mark II" :nicks (:1d2 :1dii :1dmkii))
+    (:format :1ds :make "Canon" :pixels (4064 . 3328) :imager (36 . 24) :name "1Ds")
+    (:format :1dsmkii :make "Canon" :pixels (4992 . 3328) :imager (36 . 24)
     :name "1Ds Mark II" :nicks (:1ds2 :1dsii))
+    
+    (:format :35mm :imager (36 . 24) :name "35mm")
+    
+    (:format :6x4.5cm :imager (60 . 45) :name "6x4.5cm" :nicks (:\645))
+    (:format :6x6cm :imager (60 . 60) :name "6x6cm" :nicks (:6x6))
+    (:format :6x7cm :imager (60 . 70) :name "6x7cm" :nicks (:6x7))
+    (:format :6x9cm :imager (60 . 90) :name "6x9cm" :nicks (:6x9))
+    (:format :6x12cm :imager (60 . 120) :name "6x12cm" :nicks (:6x12))
+    
+    #.(make-output-format 4 5)
+    #.(make-output-format 5 7)
+    #.(make-output-format 8 10)
+    #.(make-output-format 11 13.75)
+    #.(make-output-format 11 16.5)
+    #.(make-output-format 13 16.25)
+    #.(make-output-format 13 19)
+    #.(make-output-format 16 20)
+    #.(make-output-format 16 24)
+    #.(make-output-format 18 22.5)
+    #.(make-output-format 18 24)
+    #.(make-output-format 24 30)
+    #.(make-output-format 24 36)
+    ))
 
-   (:format :35mm :imager (36 . 24) :name "35mm")
-
-   (:format :6x4.5cm :imager (60 . 45) :name "6x4.5cm" :nicks (:\645))
-   (:format :6x6cm :imager (60 . 60) :name "6x6cm" :nicks (:6x6))
-   (:format :6x7cm :imager (60 . 70) :name "6x7cm" :nicks (:6x7))
-   (:format :6x9cm :imager (60 . 90) :name "6x9cm" :nicks (:6x9))
-   (:format :6x12cm :imager (60 . 120) :name "6x12cm" :nicks (:6x12))
-
-   #.(make-output-format 4 5)
-   #.(make-output-format 5 7)
-   #.(make-output-format 8 10)
-   #.(make-output-format 11 13.75)
-   #.(make-output-format 11 16.5)
-   #.(make-output-format 13 16.25)
-   #.(make-output-format 13 19)
-   #.(make-output-format 16 20)
-   #.(make-output-format 16 24)
-   #.(make-output-format 18 22.5)
-   #.(make-output-format 18 24)
-   #.(make-output-format 24 30)
-   #.(make-output-format 24 36)
-  ))
-
-(defvar *digital-cameras*
-  (sort (loop for format in +format-db+
-             when (getf format :pixels)
-             collect format)
+(defun sort-formats (formats)
+  (sort formats 
        (lambda (a b)
          (block nil
-           (when (and (getf a :make) (getf b :make))
-             (cond
-               ((string-greaterp (getf a :make) (getf b :make))
-                (return t))
-               ((string-lessp (getf a :make) (getf b :make))
-                (return nil))))
+           (cond
+             ((and (null (getf a :make)) (getf b :make))
+              (return nil))
+             ((and (getf a :make) (null (getf b :make)))
+              (return t))
+             ((string-greaterp (getf a :make) (getf b :make))
+              (return t))
+             ((string-lessp (getf a :make) (getf b :make))
+              (return nil)))
            (when (and (getf a :name) (getf b :name))
              (cond
-               ((string-lessp (getf a :name) (getf b :name))
-                (return t))
-               ((string-greaterp (getf a :name) (getf b :name))
-                (return nil))))))))
+               ((string-lessp (getf a :name) (getf b :name))
+                (return t))
+               ((string-greaterp (getf a :name) (getf b :name))
+                (return nil))))))))
+
+(defvar *digital-cameras*
+  (sort-formats (loop for format in +format-db+
+                     when (getf format :pixels)
+                     collect format)))
+
+(defvar *cameras*
+  (sort-formats (loop for format in +format-db+
+                     when (getf format :imager)
+                     collect format)))
   
 
 (defun format-match-p (format-spec format)