From 4a8746a7bc518acd54e738a735da87739cb86c34 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sun, 17 Mar 2013 21:08:07 +0100 Subject: New resource engine. --- plugingui/rcgen.cc | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 plugingui/rcgen.cc (limited to 'plugingui/rcgen.cc') diff --git a/plugingui/rcgen.cc b/plugingui/rcgen.cc new file mode 100644 index 0000000..067e69a --- /dev/null +++ b/plugingui/rcgen.cc @@ -0,0 +1,71 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/*************************************************************************** + * rcgen.cc + * + * Sun Mar 17 20:27:17 CET 2013 + * Copyright 2013 Bent Bisballe Nyeng + * deva@aasimon.org + ****************************************************************************/ + +/* + * This file is part of DrumGizmo. + * + * DrumGizmo is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * DrumGizmo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with DrumGizmo; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ +#include +#include + +int main(int argc, char *argv[]) +{ + printf("/* This file is autogenerated by rcgen. Do not modify! */\n"); + printf("#include \"resource_data.h\"\n"); + printf("\n"); + printf("const rc_data_t rc_data[] =\n"); + printf("{\n"); + + int i = 1; + while(i < argc) { + printf(" { \":%s\", ", argv[i]); + + std::string data; + FILE *fp = fopen(argv[i], "r"); + if(!fp) { + fprintf(stderr, "Could not read file '%s' - quitting\n", argv[i]); + return 1; + } + + char buf[32]; + while(!feof(fp)) { + size_t sz = fread(buf, 1, sizeof(buf), fp); + data.append(buf, sz); + } + fclose(fp); + + printf("%d,\n \"", data.length()); + for(size_t j = 0; j < data.length(); j++) { + if(j != 0 && j % 16 == 0) printf("\"\n \""); + printf("\\%o", (unsigned char)data[j]); + } + + printf("\" },\n"); + + i++; + } + +printf(" { \"\", 0, 0 }\n"); +printf("};\n"); + + return 0; +} -- cgit v1.2.3