History

core ejected

Ge Wang committed 9 years ago

Commit d38351c1 parent 74cf4d4158 files · +0 −196800Browse files

Showing the changes to src/scripts (4 of 158 files). Show all

Unified · Split

4 files
  1. src/scripts/compressSndFile.pl +104 −0
  2. src/scripts/hex2cpp.cpp +61 −0
  3. src/scripts/platform.cpp +32 −0
  4. src/scripts/raw2code.cpp +22 −0
src/scripts/compressSndFile.pl+104−0
@@ -0,0 +1,104 @@
1use Data::Dumper;
2my %seen;
3my @source;
4
5my $output = $ARGV[0];
6
7my @fileList = `ls *.c *.h`;
8foreach $_ (@fileList)
9{
10 chomp;
11 if( $_ =~ /$output/ || $_ =~ /test/ ) {}
12 elsif( $_ =~ /\.h/ ) { $seen{$_} = 0; }
13 elsif( $_ =~ /\.c/ ) { push @source, $_ }
14}
15
16close DOTH;
17close DOTC;
18open DOTH, ">" . $output . ".h" or die;
19open DOTC, ">" . $output . ".c" or die;
20my @list;
21$seen{'config.h'} = 1;
22push @list, "config.h";
23$seen{'sndfile.h'} = 1;
24push @list, "sndfile.h";
25$seen{'common.h'} = 1;
26push @list, "common.h";
27$seen{'G72x.h'} = 1;
28push @list, "G72x.h";
29
30sub depend
31{
32 my $file = shift;
33 my $handle;
34 open $handle, "<$file";
35 while(<$handle>)
36 {
37 if( my $include = /#include[ \t]*[<"]([\w\d]+\.h)[>"]/ )
38 {
39 if( defined( $seen{$include} && $seen{$include} == 0 ) )
40 {
41 depend( $include );
42 }
43 }
44 }
45 close $handle;
46 $seen{$file} = 1;
47 push @list, $file;
48}
49
50foreach my $key ( keys %seen )
51{
52 if( $seen{$key} == 0 ) { depend($key); }
53}
54
55print DOTH '#include <stdio.h>' . "\n\n";
56print DOTH '#include <stdlib.h>' . "\n\n";
57foreach my $file (@list)
58{
59 open F, "<$file";
60 while(<F>)
61 {
62 if( $_ !~ /#include[ \t]*[<"](\w+\.h)[>"]/ )
63 {
64 print DOTH $_;
65 }
66 }
67 close F;
68}
69
70
71
72
73
74close FILE;
75
76print DOTC '#include ' . "\"$output.h\"\n";
77print DOTC '#include <stdio.h>' . "\n\n";
78print DOTC '#include <stdlib.h>' . "\n\n";
79foreach my $file (@source)
80{
81 open FILE, $file;
82 $file =~ s/\.[ch]//g;
83 while( my $line = <FILE> )
84 {
85 if( $line !~ /#include[ \t]*("[\w\d]+\.[ch]")|<CoreServices.h>/ )
86 {
87 $line =~ s/(f2d_array)/$file$1/g;
88 $line =~ s/(d2f_array)/$file$1/g;
89 $line =~ s/(_\w+tab)/$file$1/g;
90 $line =~ s/(STEP)/$file$1/g;
91 $line =~ s/(HAVE_[^D]\w+)/$file$1/g;
92 print DOTC $line;
93 }
94 }
95 close FILE;
96}
97
98
99
100close DOTH;
101close DOTC;
102
103
104
src/scripts/hex2cpp.cpp+61−0
@@ -0,0 +1,61 @@
1//-----------------------------------------------------------------------------
2// name: hex2cpp.cpp
3// desc: hexdump to cpp
4//
5// author: Ge Wang (gewang@cs.princeton.edu)
6// data: Summer 2004
7//-----------------------------------------------------------------------------
8#include <iostream>
9#include <sstream>
10#include <stdio.h>
11#include <limits.h>
12using namespace std;
13
14
15// one of these days i will learn perl, or awk, or sed
16int main( int argc, char ** argv )
17{
18 if( argc < 2 )
19 {
20 cerr << "hex2cpp: too few arguments..." << endl;
21 exit( 1 );
22 }
23
24 string line;
25 int count = 0;
26 cout << "// data for " << argv[1] << ".raw..." << endl;
27 cout << "SAMPLE " << argv[1] << "_data[] = {" << endl;
28
29 while( getline( cin, line ) )
30 {
31 istringstream sin( line );
32 string token, token2;
33 int c = 0;
34 short x = 0;
35
36 // get rid of offset
37 sin >> token;
38 cout << " ";
39
40 while( sin >> token >> token2 )
41 {
42 x = (token2[0]-'0')*64 + (token2[1]-'0')*8 + (token2[2]-'0');
43 x <<= 8;
44 x += (token[0]-'0')*64 + (token[1]-'0')*8 + (token[2]-'0');
45 printf( "%.1ff,", (float)x );
46 count++;
47 c++;
48 }
49
50 if( c )
51 cout << endl;
52 }
53
54 cout << "0" << endl;
55 cout << "}; ";
56 cout << argv[1] << "_size = " << count << ";";
57 cout << endl << endl;
58
59 return 0;
60}
61
src/scripts/platform.cpp+32−0
@@ -0,0 +1,32 @@
1// name: platform.cpp
2// desc: finds sizes
3// author: Ge Wang (gewang@cs.princeton.edu)
4
5#include <iostream>
6using namespace std;
7
8// union
9union X
10{
11 short s;
12 char b[2];
13};
14
15// entry point
16int main( int argc, char ** argv )
17{
18 X x;
19 x.s = 0x0100;
20
21 // go
22 cout << "char: " << sizeof(char) << endl;
23 cout << "short: " << sizeof(short) << endl;
24 cout << "int: " << sizeof(int) << endl;
25 cout << "long: " << sizeof(long) << endl;
26 cout << "float: " << sizeof(float) << endl;
27 cout << "double: " << sizeof(double) << endl;
28 cout << "void *: " << sizeof(void *) << endl;
29 cout << "endian: " << ( x.b[1] ? "small" : "big" ) << endl;
30
31 return 0;
32}
src/scripts/raw2code.cpp+22−0
@@ -0,0 +1,22 @@
1#include <string>
2#include <iostream>
3#include <sstream>
4#include <stdio.h>
5#include <stdlib.h>
6#include <string.h>
7using namespace std;
8
9
10int main( int argc, char ** argv )
11{
12 for( int i = 1; i < argc; i++ )
13 {
14 ostringstream sout;
15
16 argv[i][strlen(argv[i])-4] = '\0';
17 sout << "hexdump -bv " << argv[i] << ".raw | hex2cpp " << argv[i] << " > " << argv[i] << ".c++";
18 system( sout.str().c_str() );
19 cout << sout.str() << endl;
20 }
21}
22

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t