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 @@
1+use Data::Dumper;
2+my %seen;
3+my @source;
4+
5+my $output = $ARGV[0];
6+
7+my @fileList = `ls *.c *.h`;
8+foreach $_ (@fileList)
9+{
10+ chomp;
11+ if( $_ =~ /$output/ || $_ =~ /test/ ) {}
12+ elsif( $_ =~ /\.h/ ) { $seen{$_} = 0; }
13+ elsif( $_ =~ /\.c/ ) { push @source, $_ }
14+}
15+
16+close DOTH;
17+close DOTC;
18+open DOTH, ">" . $output . ".h" or die;
19+open DOTC, ">" . $output . ".c" or die;
20+my @list;
21+$seen{'config.h'} = 1;
22+push @list, "config.h";
23+$seen{'sndfile.h'} = 1;
24+push @list, "sndfile.h";
25+$seen{'common.h'} = 1;
26+push @list, "common.h";
27+$seen{'G72x.h'} = 1;
28+push @list, "G72x.h";
29+
30+sub 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+
50+foreach my $key ( keys %seen )
51+{
52+ if( $seen{$key} == 0 ) { depend($key); }
53+}
54+
55+print DOTH '#include <stdio.h>' . "\n\n";
56+print DOTH '#include <stdlib.h>' . "\n\n";
57+foreach 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+
74+close FILE;
75+
76+print DOTC '#include ' . "\"$output.h\"\n";
77+print DOTC '#include <stdio.h>' . "\n\n";
78+print DOTC '#include <stdlib.h>' . "\n\n";
79+foreach 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+
100+close DOTH;
101+close 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>
12+using namespace std;
13+
14+
15+// one of these days i will learn perl, or awk, or sed
16+int 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>
6+using namespace std;
7+
8+// union
9+union X
10+{
11+ short s;
12+ char b[2];
13+};
14+
15+// entry point
16+int 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>
7+using namespace std;
8+
9+
10+int 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