]> git.sur5r.net Git - cc65/commitdiff
Pass the source image of the conversion down to the output function, so they
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 15 Mar 2012 17:02:12 +0000 (17:02 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 15 Mar 2012 17:02:12 +0000 (17:02 +0000)
are able to output the image properties as comments.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5616 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/sp65/asm.c
src/sp65/asm.h
src/sp65/bin.c
src/sp65/bin.h
src/sp65/c.c
src/sp65/c.h
src/sp65/main.c
src/sp65/output.c
src/sp65/output.h

index 61c4fea61999afdf2a8aee11f7bf3dfc1c1aebae..882897a40b89d39f7d72344bf90fb7d1a1c8ca46 100644 (file)
@@ -139,7 +139,7 @@ static const char* GetSegment (const Collection* A)
 
 
 
-void WriteAsmFile (const StrBuf* Data, const Collection* A)
+void WriteAsmFile (const StrBuf* Data, const Collection* A, const Bitmap* B)
 /* Write the contents of Data to the given file in assembler (ca65) format */
 {
     FILE*       F;
@@ -147,6 +147,9 @@ void WriteAsmFile (const StrBuf* Data, const Collection* A)
     unsigned    Size;
 
 
+    /* Get the name of the image */
+    const StrBuf* S = GetBitmapName (B);
+
     /* Get the file name */
     const char* Name = NeedAttrVal (A, "name", "write");
 
@@ -171,12 +174,16 @@ void WriteAsmFile (const StrBuf* Data, const Collection* A)
     /* Write a readable header */
     fprintf (F,
              ";\n"
-             "; This file was generated by %s %s\n"
+             "; This file was generated by %s %s from\n"
+             "; %.*s (%ux%u, %u colors%s)\n"
              ";\n"
              "\n",
              ProgName,
-             GetVersionAsString ());
-
+             GetVersionAsString (),
+             SB_GetLen (S), SB_GetConstBuf (S),
+             GetBitmapWidth (B), GetBitmapHeight (B),
+             GetBitmapColors (B),
+             BitmapIsIndexed (B)? ", indexed" : "");
 
     /* If we have a segment defined, output a segment directive */
     if (Segment) {
index 03b9b2f8fd5377b82292657a6c3a196d6b7772b4..06d16802e864b01ab401aadf2c46e4d1bbae63f2 100644 (file)
@@ -42,6 +42,9 @@
 #include "coll.h"
 #include "strbuf.h"
 
+/* sp65 */
+#include "bitmap.h"
+
 
 
 /*****************************************************************************/
@@ -50,7 +53,7 @@
 
 
 
-void WriteAsmFile (const StrBuf* Data, const Collection* A);
+void WriteAsmFile (const StrBuf* Data, const Collection* A, const Bitmap* B);
 /* Write the contents of Data to a file in assembler (ca65) format */
 
 
index d698ae4ba4d8f5bbd06ac7f9c989e44a1e1d4881..fddb8320f562e01aada7e443d905a26a95c97221 100644 (file)
@@ -37,6 +37,9 @@
 #include <stdio.h>
 #include <string.h>
 
+/* common */
+#include "attrib.h"
+
 /* sp65 */
 #include "attr.h"
 #include "bin.h"
@@ -50,7 +53,8 @@
 
 
 
-void WriteBinFile (const StrBuf* Data, const Collection* A)
+void WriteBinFile (const StrBuf* Data, const Collection* A, 
+                   const Bitmap* B attribute ((unused)))
 /* Write the contents of Data to the given file in binary format */
 {
     unsigned Size;
index 363111889d91178da7d22e1fc8f4a0f2b83e90b8..476ae9a169ed2be3ee7adbfb5a159f15cec8f5a4 100644 (file)
@@ -42,6 +42,9 @@
 #include "coll.h"
 #include "strbuf.h"
 
+/* sp65 */
+#include "bitmap.h"
+
 
 
 /*****************************************************************************/
@@ -50,7 +53,7 @@
 
 
 
-void WriteBinFile (const StrBuf* Data, const Collection* A);
+void WriteBinFile (const StrBuf* Data, const Collection* A, const Bitmap* B);
 /* Write the contents of Data to a file in binary format */
 
 
index 50f9bc431dfcea17a5a73da87b9744169ce6cc29..fea720f7bfbbad2b2d57925ac96d31690501204d 100644 (file)
@@ -125,7 +125,7 @@ static const char* GetIdentifier (const Collection* A)
 
 
 
-void WriteCFile (const StrBuf* Data, const Collection* A)
+void WriteCFile (const StrBuf* Data, const Collection* A, const Bitmap* B)
 /* Write the contents of Data to a file in C format */
 {
     FILE*       F;
@@ -133,6 +133,9 @@ void WriteCFile (const StrBuf* Data, const Collection* A)
     unsigned    Size;
 
 
+    /* Get the name of the image */
+    const StrBuf* S = GetBitmapName (B);
+
     /* Get the file name */
     const char* Name = NeedAttrVal (A, "name", "write");
 
@@ -154,11 +157,16 @@ void WriteCFile (const StrBuf* Data, const Collection* A)
     /* Write a readable header */
     fprintf (F,
              "/*\n"
-             " * This file was generated by %s %s\n"
+             " * This file was generated by %s %s from\n"
+             " * %.*s (%ux%u, %u colors%s)\n"
              " */\n"
              "\n",
              ProgName,
-             GetVersionAsString ());
+             GetVersionAsString (),
+             SB_GetLen (S), SB_GetConstBuf (S),
+             GetBitmapWidth (B), GetBitmapHeight (B),
+             GetBitmapColors (B),
+             BitmapIsIndexed (B)? ", indexed" : "");
 
 
     /* Output the declaration and identifier */
index 8b32247a04e63688c9bf60bfe38f7b0f88217057..8cf763144625be7f96477a2d4cdf1a99182862dc 100644 (file)
@@ -42,6 +42,9 @@
 #include "coll.h"
 #include "strbuf.h"
 
+/* sp65 */
+#include "bitmap.h"
+
 
 
 /*****************************************************************************/
@@ -50,7 +53,7 @@
 
 
 
-void WriteCFile (const StrBuf* Data, const Collection* A);
+void WriteCFile (const StrBuf* Data, const Collection* A, const Bitmap* B);
 /* Write the contents of Data to a file in C format */
 
 
index 313694ad7409d64da69c2a418418e2810429167a..a776bf9fbb8f84d88f19ca0df10baf755f40c870 100644 (file)
@@ -303,7 +303,7 @@ static void OptWrite (const char* Opt attribute ((unused)), const char* Arg)
     Collection* A = ParseAttrList (Arg, NameList, 2);
 
     /* Write the file */
-    WriteOutputFile (D, A);
+    WriteOutputFile (D, A, C);
 
     /* Delete the attribute list */
     FreeAttrList (A);
index 40a7091033a39b30b8967176d3d37b14b01408d0..ac6f3db928aaaf7b623948e108b77b2a49b02907 100644 (file)
@@ -67,7 +67,7 @@ typedef struct OutputFormatDesc OutputFormatDesc;
 struct OutputFormatDesc {
 
     /* Write routine */
-    void (*Write) (const StrBuf*, const Collection*);
+    void (*Write) (const StrBuf*, const Collection*, const Bitmap*);
 
 };
 
@@ -104,10 +104,12 @@ static const FileId FormatTable[] = {
 
 
 
-void WriteOutputFile (const StrBuf* Data, const Collection* A)
+void WriteOutputFile (const StrBuf* Data, const Collection* A, const Bitmap* B)
 /* Write the contents of Data to a file. Format, file name etc. must be given
  * as attributes in A. If no format is given, the function tries to autodetect
- * it by using the extension of the file name.
+ * it by using the extension of the file name. The bitmap passed to the
+ * function is the bitmap used as source of the conversion. It may be used to
+ * determine the bitmap properties for documentation purposes.
  */
 {
     const FileId* F;
@@ -136,7 +138,7 @@ void WriteOutputFile (const StrBuf* Data, const Collection* A)
     }
 
     /* Call the format specific write */
-    OutputFormatTable[F->Id].Write (Data, A);
+    OutputFormatTable[F->Id].Write (Data, A, B);
 }
 
 
index 2c2bbb056a2c66de8b2b0b954d4c74a9a919cf59..6d3b4c16b7a6907b40a583c89a421766346d2f31 100644 (file)
@@ -41,6 +41,9 @@
 /* common */
 #include "strbuf.h"
 
+/* sp65 */
+#include "bitmap.h"
+
 
 
 /*****************************************************************************/
 
 
 
-void WriteOutputFile (const StrBuf* Data, const Collection* A);
+void WriteOutputFile (const StrBuf* Data, const Collection* A, const Bitmap* B);
 /* Write the contents of Data to a file. Format, file name etc. must be given
  * as attributes in A. If no format is given, the function tries to autodetect
- * it by using the extension of the file name.
+ * it by using the extension of the file name. The bitmap passed to the
+ * function is the bitmap used as source of the conversion. It may be used to
+ * determine the bitmap properties for documentation purposes.
  */