Update of /cvsroot/alsa/alsa-tools/hdsploader
In directory sc8-pr-cvs1:/tmp/cvs-serv23176

Modified Files:
        Makefile.am README configure.in hdsploader.c 
Log Message:
Moved firmware to alsa-firmware module, corrected DATAPATH

Index: Makefile.am
===================================================================
RCS file: /cvsroot/alsa/alsa-tools/hdsploader/Makefile.am,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Makefile.am 25 Nov 2003 14:27:45 -0000      1.3
+++ Makefile.am 25 Nov 2003 16:07:05 -0000      1.4
@@ -1,15 +1,16 @@
 # # Process this file with automake to produce Makefile.in.
-
-SUBDIRS = firmware
+MYNAME = hdsploader
 
 bin_PROGRAMS = hdsploader
 
+AM_CFLAGS = -DDATAPATH=\"$(datadir)/alsa/firmware/$(MYNAME)\"
+
 hdsploader_SOURCES = hdsploader.c
 
 EXTRA_DIST = depcomp
 
 alsa-dist: distdir
-       @rm -rf ../distdir/hdsploader
-       @mkdir -p ../distdir/hdsploader
-       @cp -RLpv $(distdir)/* ../distdir/hdsploader
+       @rm -rf ../distdir/$(MYNAME)
+       @mkdir -p ../distdir/$(MYNAME)
+       @cp -RLpv $(distdir)/* ../distdir/$(MYNAME)
        @rm -rf $(distdir)

Index: README
===================================================================
RCS file: /cvsroot/alsa/alsa-tools/hdsploader/README,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- README      7 Apr 2003 15:37:22 -0000       1.1
+++ README      25 Nov 2003 16:07:05 -0000      1.2
@@ -3,5 +3,14 @@
                
 
 USAGE
+=====
 
 Just run hdsploader, the program takes care of everything.
+
+FILES
+=====
+
+The firmware binaries are installed on /usr/share/alsa/firmware/hdsploader
+(or /usr/local/share/alsa/firmware/hdsploader, depending to the prefix
+option of configure).  There will be *.conf files, which define the dsp
+image files for each different card type.

Index: configure.in
===================================================================
RCS file: /cvsroot/alsa/alsa-tools/hdsploader/configure.in,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- configure.in        3 Nov 2003 19:09:55 -0000       1.4
+++ configure.in        25 Nov 2003 16:07:05 -0000      1.5
@@ -49,4 +49,4 @@
   fi
 fi
 
-AC_OUTPUT(Makefile firmware/Makefile)
+AC_OUTPUT(Makefile)

Index: hdsploader.c
===================================================================
RCS file: /cvsroot/alsa/alsa-tools/hdsploader/hdsploader.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- hdsploader.c        25 Nov 2003 11:51:31 -0000      1.5
+++ hdsploader.c        25 Nov 2003 16:07:05 -0000      1.6
@@ -20,14 +20,38 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <endian.h>
 #include <sys/ioctl.h>
 #include <alsa/asoundlib.h>
 #include <sound/hdsp.h>
 
-#include "firmware/multiface_firmware.dat"
-#include "firmware/digiface_firmware.dat"
-#include "firmware/multiface_firmware_rev11.dat"
-#include "firmware/digiface_firmware_rev11.dat"
+static u_int32_t code[24413];
+
+int read_bin_file(u_int32_t *array, const char *filename)
+{
+       FILE *out;
+
+       if ((out = fopen(filename, "r")) == NULL) {
+               fprintf(stderr, "Unable to open file '%s' for reading\n", filename);
+               return -1;
+       }
+       if (fread(array, 4, 24413, out) != 24413) {
+               fclose(out);
+               return -1;
+       }
+       fclose(out);
+#if __BYTE_ORDER == __BIG_ENDIAN
+       {
+               unsigned int idx;
+               for (idx = 0; idx < 24413; idx++)
+                       array[idx] = ((array[idx] & 0x000000ff) << 16) |
+                                    ((array[idx] & 0x0000ff00) << 8)  |
+                                    ((array[idx] & 0x00ff0000) >> 8)  |
+                                    ((array[idx] & 0xff000000) >> 16);
+       }
+#endif
+       return 0;
+}
 
 void upload_firmware(int card)
 {
@@ -54,20 +78,21 @@
        snd_hwdep_close(hw);
        return;
     }
-    
+
+    firmware.firmware_data = (unsigned long *)code;
     switch (version.io_type) {
     case Multiface:
        if (version.firmware_rev == 0xa) {
-           firmware.firmware_data = multiface_firmware;
+           err = read_bin_file(code, DATAPATH "multiface_firmware.bin");
        } else {
-           firmware.firmware_data = multiface_firmware_rev11;
+           err = read_bin_file(code, DATAPATH "multiface_firmware_rev11.bin");
        }
        break;
     case Digiface:
        if (version.firmware_rev == 0xa) {
-           firmware.firmware_data = digiface_firmware;
+           err = read_bin_file(code, DATAPATH "digiface_firmware.bin");
        } else {
-           firmware.firmware_data = digiface_firmware_rev11;
+           err = read_bin_file(code, DATAPATH "digiface_firmware_rev11.bin");
        }
        break;
     default:
@@ -75,6 +100,8 @@
        snd_hwdep_close(hw);
        return;
     }  
+    if (err < 0)
+       return;
     
     if ((err = snd_hwdep_ioctl(hw, SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE, &firmware)) < 0) 
{
        fprintf(stderr, "Hwdep ioctl error on card %s : %s.\n", card_name, 
snd_strerror(err));
@@ -115,4 +142,3 @@
     }
     return 0;    
 }
-



-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to