sane.ds: Implement grayscale and B&W scanning for native image transfers.
diff --git a/dlls/sane.ds/capability.c b/dlls/sane.ds/capability.c
index 63a8361..aacc6de 100644
--- a/dlls/sane.ds/capability.c
+++ b/dlls/sane.ds/capability.c
@@ -685,9 +685,11 @@
 /* ICAP_PIXELFLAVOR */
 static TW_UINT16 SANE_ICAPPixelFlavor (pTW_CAPABILITY pCapability, TW_UINT16 action)
 {
+    TW_UINT16 twCC = TWCC_BADCAP;
+#ifdef SONAME_LIBSANE
     static const TW_UINT32 possible_values[] = { TWPF_CHOCOLATE, TWPF_VANILLA };
     TW_UINT32 val;
-    TW_UINT16 twCC = TWCC_BADCAP;
+    TW_UINT32 flavor = activeDS.sane_param.depth == 1 ? TWPF_VANILLA : TWPF_CHOCOLATE;
 
     TRACE("ICAP_PIXELFLAVOR\n");
 
@@ -700,7 +702,7 @@
 
         case MSG_GET:
             twCC = msg_get_enum(pCapability, possible_values, sizeof(possible_values) / sizeof(possible_values[0]),
-                    TWTY_UINT16, TWPF_CHOCOLATE, TWPF_CHOCOLATE);
+                    TWTY_UINT16, flavor, flavor);
             break;
 
         case MSG_SET:
@@ -712,16 +714,17 @@
             break;
 
         case MSG_GETDEFAULT:
-            twCC = set_onevalue(pCapability, TWTY_UINT16, TWPF_CHOCOLATE);
+            twCC = set_onevalue(pCapability, TWTY_UINT16, flavor);
             break;
 
         case MSG_RESET:
             /* .. fall through intentional .. */
 
         case MSG_GETCURRENT:
-            twCC = set_onevalue(pCapability, TWTY_UINT16, TWPF_CHOCOLATE);
+            twCC = set_onevalue(pCapability, TWTY_UINT16, flavor);
             break;
     }
+#endif
     return twCC;
 }