From 99aefdef878b6672f96f8375eecd7b8c2b5b1a94 Mon Sep 17 00:00:00 2001 From: CNLohr Date: Thu, 21 May 2020 06:13:26 -0700 Subject: [PATCH 1/3] Bump ColorChord on Windows --- colorchord2/DisplayArray.c | 2 +- colorchord2/DisplayNetwork.c | 1 - colorchord2/DisplayOUTDriver.c | 2 +- colorchord2/DisplayPie.c | 2 +- colorchord2/WinDriver.c | 236 ----------------------------- colorchord2/XDriver.c | 258 -------------------------------- colorchord2/cnfa | 2 +- colorchord2/colorchord.exe | Bin 0 -> 238592 bytes colorchord2/default.conf | 1 + colorchord2/rawdraw | 2 +- colorchord2/windows/compile.bat | 4 +- 11 files changed, 8 insertions(+), 502 deletions(-) delete mode 100644 colorchord2/WinDriver.c delete mode 100644 colorchord2/XDriver.c create mode 100644 colorchord2/colorchord.exe diff --git a/colorchord2/DisplayArray.c b/colorchord2/DisplayArray.c index 01da7d8..2eed784 100644 --- a/colorchord2/DisplayArray.c +++ b/colorchord2/DisplayArray.c @@ -8,7 +8,7 @@ #include #include #include "color.h" -#include "DrawFunctions.h" +#include "CNFG.h" //Uses: note_amplitudes2[note] for how many lights to use. //Uses: note_amplitudes_out[note] for how bright it should be. diff --git a/colorchord2/DisplayNetwork.c b/colorchord2/DisplayNetwork.c index 9f8cc62..54a128b 100644 --- a/colorchord2/DisplayNetwork.c +++ b/colorchord2/DisplayNetwork.c @@ -8,7 +8,6 @@ #include #include #include "color.h" -#include "DrawFunctions.h" #if defined(WIN32) || defined(WINDOWS) #include diff --git a/colorchord2/DisplayOUTDriver.c b/colorchord2/DisplayOUTDriver.c index f848bdd..722f6a1 100644 --- a/colorchord2/DisplayOUTDriver.c +++ b/colorchord2/DisplayOUTDriver.c @@ -11,7 +11,7 @@ #include #include #include "color.h" -#include "DrawFunctions.h" +#include "CNFG.h" //Uses: note_amplitudes2[note] for how many lights to use. //Uses: note_amplitudes_out[note] for how bright it should be. diff --git a/colorchord2/DisplayPie.c b/colorchord2/DisplayPie.c index 0c38c50..08d377a 100644 --- a/colorchord2/DisplayPie.c +++ b/colorchord2/DisplayPie.c @@ -8,7 +8,7 @@ #include #include #include "color.h" -#include "DrawFunctions.h" +#include "CNFG.h" //Uses: note_amplitudes2[note] for how many lights to use. //Uses: note_amplitudes_out[note] for how bright it should be. diff --git a/colorchord2/WinDriver.c b/colorchord2/WinDriver.c deleted file mode 100644 index b0f41d7..0000000 --- a/colorchord2/WinDriver.c +++ /dev/null @@ -1,236 +0,0 @@ -//Copyright (c) 2011 <>< Charles Lohr - Under the MIT/x11 or NewBSD License you choose. -//Portion from: http://en.wikibooks.org/wiki/Windows_Programming/Window_Creation - - -#include "DrawFunctions.h" -#include -#include -#include -#include //for alloca - -static HINSTANCE lhInstance; -static HWND lsHWND; -static HDC lsHDC; -static HBITMAP lsBackBitmap; -static HDC lsWindowHDC; -static HBRUSH lsHBR; -static HPEN lsHPEN; -static HBRUSH lsClearBrush; -static unsigned int lsLastWidth; -static unsigned int lsLastHeight; - -static void InternalHandleResize() -{ - DeleteObject( lsBackBitmap ); - lsBackBitmap = CreateCompatibleBitmap( lsHDC, lsLastWidth, lsLastHeight ); - SelectObject( lsHDC, lsBackBitmap ); - -} - -uint32_t CNFGColor( uint32_t RGB ) -{ - CNFGLastColor = RGB; - - DeleteObject( lsHBR ); - lsHBR = CreateSolidBrush( RGB ); - SelectObject( lsHDC, lsHBR ); - - DeleteObject( lsHPEN ); - lsHPEN = CreatePen( PS_SOLID, 0, RGB ); - SelectObject( lsHDC, lsHPEN ); - - return RGB; -} - -void CNFGTackSegment( short x1, short y1, short x2, short y2 ) -{ - POINT pt[2] = { {x1, y1}, {x2, y2} }; - Polyline( lsHDC, pt, 2 ); - SetPixel( lsHDC, x1, y1, CNFGLastColor ); - SetPixel( lsHDC, x2, y2, CNFGLastColor ); -} - -void CNFGTackRectangle( short x1, short y1, short x2, short y2 ) -{ - RECT r; - if( x1 < x2 ) { r.left = x1; r.right = x2; } - else { r.left = x2; r.right = x1; } - if( y1 < y2 ) { r.top = y1; r.bottom = y2; } - else { r.top = y2; r.bottom = y1; } - FillRect( lsHDC, &r, lsHBR ); -} - -void CNFGClearFrame() -{ - RECT r = { 0, 0, lsLastWidth, lsLastHeight }; - DeleteObject( lsClearBrush ); - lsClearBrush = CreateSolidBrush( CNFGBGColor ); - SelectObject( lsHDC, lsClearBrush ); - - FillRect( lsHDC, &r, lsClearBrush ); -} - -void CNFGSwapBuffers() -{ - int thisw, thish; - RECT r; - BitBlt( lsWindowHDC, 0, 0, lsLastWidth, lsLastHeight, lsHDC, 0, 0, SRCCOPY ); - UpdateWindow( lsHWND ); - - //Check to see if the window is closed. - if( !IsWindow( lsHWND ) ) - { - exit( 0 ); - } - - GetClientRect( lsHWND, &r ); - thisw = r.right - r.left; - thish = r.bottom - r.top; - if( thisw != lsLastWidth || thish != lsLastHeight ) - { - lsLastWidth = thisw; - lsLastHeight = thish; - InternalHandleResize(); - } -} - -void CNFGTackPoly( RDPoint * points, int verts ) -{ - int i; - POINT * t = (POINT*)alloca( sizeof( POINT ) * verts ); - for( i = 0; i < verts; i++ ) - { - t[i].x = points[i].x; - t[i].y = points[i].y; - } - Polygon( lsHDC, t, verts ); -} - - -void CNFGTackPixel( short x1, short y1 ) -{ - SetPixel( lsHDC, x1, y1, CNFGLastColor ); -} - -void CNFGGetDimensions( short * x, short * y ) -{ - *x = lsLastWidth; - *y = lsLastHeight; -} - -//This was from the article -LRESULT CALLBACK MyWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - switch(msg) - { - case WM_DESTROY: - PostQuitMessage(0); - return 0; - } - return DefWindowProc(hwnd, msg, wParam, lParam); -} - -//This was from the article, too... well, mostly. -void CNFGSetup( const char * name_of_window, int width, int height ) -{ - static LPSTR szClassName = "MyClass"; - RECT client, window; - WNDCLASS wnd; - int w, h, wd, hd; - HINSTANCE hInstance = GetModuleHandle(NULL); - - lsLastWidth = width; - lsLastHeight = height; - - wnd.style = CS_HREDRAW | CS_VREDRAW; //we will explain this later - wnd.lpfnWndProc = MyWndProc; - wnd.cbClsExtra = 0; - wnd.cbWndExtra = 0; - wnd.hInstance = hInstance; - wnd.hIcon = LoadIcon(NULL, IDI_APPLICATION); //default icon - wnd.hCursor = LoadCursor(NULL, IDC_ARROW); //default arrow mouse cursor - wnd.hbrBackground = (HBRUSH)(COLOR_BACKGROUND); - wnd.lpszMenuName = NULL; //no menu - wnd.lpszClassName = szClassName; - - if(!RegisterClass(&wnd)) //register the WNDCLASS - { - MessageBox(NULL, "This Program Requires Windows NT", "Error", MB_OK); - } - - lsHWND = CreateWindow(szClassName, - name_of_window, //name_of_window, - WS_OVERLAPPEDWINDOW, //basic window style - CW_USEDEFAULT, - CW_USEDEFAULT, //set starting point to default value - lsLastWidth, - lsLastHeight, //set all the dimensions to default value - NULL, //no parent window - NULL, //no menu - hInstance, - NULL); //no parameters to pass - - - lsWindowHDC = GetDC( lsHWND ); - lsHDC = CreateCompatibleDC( lsWindowHDC ); - lsBackBitmap = CreateCompatibleBitmap( lsWindowHDC, lsLastWidth, lsLastHeight ); - SelectObject( lsHDC, lsBackBitmap ); - - lsClearBrush = CreateSolidBrush( CNFGBGColor ); - lsHBR = CreateSolidBrush( 0xFFFFFF ); - lsHPEN = CreatePen( PS_SOLID, 0, 0xFFFFFF ); - - ShowWindow(lsHWND, 1); //display the window on the screen - - //Once set up... we have to change the window's borders so we get the client size right. - GetClientRect( lsHWND, &client ); - GetWindowRect( lsHWND, &window ); - w = ( window.right - window.left); - h = ( window.bottom - window.top); - wd = w - client.right; - hd = h - client.bottom; - MoveWindow( lsHWND, window.left, window.top, lsLastWidth + wd, lsLastHeight + hd, 1 ); - - InternalHandleResize(); -} - -void WindowsTerm(); - -void CNFGHandleInput() -{ - int ldown = 0; - - MSG msg; - while( PeekMessage( &msg, lsHWND, 0, 0xFFFF, 1 ) ) - { - TranslateMessage(&msg); - - switch( msg.message ) - { - case WM_QUIT: - case WM_DESTROY: - case WM_CLOSE: - printf( "Close\n" ); - WindowsTerm(); - TerminateProcess( 0, 0 ); - break; - case WM_MOUSEMOVE: - HandleMotion( (msg.lParam & 0xFFFF), (msg.lParam>>16) & 0xFFFF, ( (msg.wParam & 0x01)?1:0) | ((msg.wParam & 0x02)?2:0) | ((msg.wParam & 0x10)?4:0) ); - break; - case WM_LBUTTONDOWN: HandleButton( (msg.lParam & 0xFFFF), (msg.lParam>>16) & 0xFFFF, 1, 1 ); break; - case WM_RBUTTONDOWN: HandleButton( (msg.lParam & 0xFFFF), (msg.lParam>>16) & 0xFFFF, 2, 1 ); break; - case WM_MBUTTONDOWN: HandleButton( (msg.lParam & 0xFFFF), (msg.lParam>>16) & 0xFFFF, 3, 1 ); break; - case WM_LBUTTONUP: HandleButton( (msg.lParam & 0xFFFF), (msg.lParam>>16) & 0xFFFF, 1, 0 ); break; - case WM_RBUTTONUP: HandleButton( (msg.lParam & 0xFFFF), (msg.lParam>>16) & 0xFFFF, 2, 0 ); break; - case WM_MBUTTONUP: HandleButton( (msg.lParam & 0xFFFF), (msg.lParam>>16) & 0xFFFF, 3, 0 ); break; - case WM_KEYDOWN: - case WM_KEYUP: - HandleKey( tolower( msg.wParam ), (msg.message==WM_KEYDOWN) ); - break; - default: - DispatchMessage(&msg); - break; - } - } -} - diff --git a/colorchord2/XDriver.c b/colorchord2/XDriver.c deleted file mode 100644 index 21fe435..0000000 --- a/colorchord2/XDriver.c +++ /dev/null @@ -1,258 +0,0 @@ -//Copyright (c) 2011 <>< Charles Lohr - Under the MIT/x11 or NewBSD License you choose. -//portions from -//http://www.xmission.com/~georgeps/documentation/tutorials/Xlib_Beginner.html - -#define HAS_XINERAMA - -#include "DrawFunctions.h" - -#include -#include -#include -#include -#include -#ifdef HAS_XINERAMA -#include -#include -#endif -#include -#include - -XWindowAttributes CNFGWinAtt; -Display *CNFGDisplay; -Window CNFGWindow; -Pixmap CNFGPixmap; -GC CNFGGC; -GC CNFGWindowGC; -int FullScreen = 0; - -void CNFGGetDimensions( short * x, short * y ) -{ - *x = CNFGWinAtt.width; - *y = CNFGWinAtt.height; -} - -static void InternalLinkScreenAndGo( const char * WindowName ) -{ - XGetWindowAttributes( CNFGDisplay, CNFGWindow, &CNFGWinAtt ); - - XSelectInput (CNFGDisplay, CNFGWindow, KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | ExposureMask | PointerMotionMask ); - XSetStandardProperties( CNFGDisplay, CNFGWindow, WindowName, WindowName, None, NULL, 0, NULL ); - - CNFGWindowGC = XCreateGC(CNFGDisplay, CNFGWindow, 0, 0); - - CNFGPixmap = XCreatePixmap( CNFGDisplay, CNFGWindow, CNFGWinAtt.width, CNFGWinAtt.height, CNFGWinAtt.depth ); - CNFGGC = XCreateGC(CNFGDisplay, CNFGPixmap, 0, 0); -} - -void CNFGSetupFullscreen( const char * WindowName, int screen_no ) -{ -#ifdef HAS_XINERAMA - XineramaScreenInfo *screeninfo = NULL; - int screens; - int event_basep, error_basep, a, b; - CNFGDisplay = XOpenDisplay(NULL); - int screen = XDefaultScreen(CNFGDisplay); - int xpos, ypos; - - if (!XShapeQueryExtension(CNFGDisplay, &event_basep, &error_basep)) - { - fprintf( stderr, "X-Server does not support shape extension" ); - exit( 1 ); - } - - Visual * visual = DefaultVisual(CNFGDisplay, screen); - CNFGWinAtt.depth = DefaultDepth(CNFGDisplay, screen); - - if (XineramaQueryExtension(CNFGDisplay, &a, &b ) && - (screeninfo = XineramaQueryScreens(CNFGDisplay, &screens)) && - XineramaIsActive(CNFGDisplay) && screen_no >= 0 && - screen_no < screens ) { - - CNFGWinAtt.width = screeninfo[screen_no].width; - CNFGWinAtt.height = screeninfo[screen_no].height; - xpos = screeninfo[screen_no].x_org; - ypos = screeninfo[screen_no].y_org; - } else - { - CNFGWinAtt.width = XDisplayWidth(CNFGDisplay, screen); - CNFGWinAtt.height = XDisplayHeight(CNFGDisplay, screen); - xpos = 0; - ypos = 0; - } - if (screeninfo) - XFree(screeninfo); - - - XSetWindowAttributes setwinattr; - setwinattr.override_redirect = 1; - setwinattr.save_under = 1; - setwinattr.event_mask = StructureNotifyMask | SubstructureNotifyMask | ExposureMask | ButtonPressMask | ButtonReleaseMask | ButtonPressMask | PointerMotionMask | ButtonMotionMask | EnterWindowMask | LeaveWindowMask |KeyPressMask |KeyReleaseMask | SubstructureNotifyMask | FocusChangeMask; - setwinattr.border_pixel = 0; - - CNFGWindow = XCreateWindow(CNFGDisplay, XRootWindow(CNFGDisplay, screen), - xpos, ypos, CNFGWinAtt.width, CNFGWinAtt.height, - 0, CNFGWinAtt.depth, InputOutput, visual, CWBorderPixel | CWEventMask | CWOverrideRedirect | CWSaveUnder, &setwinattr); - - XMapWindow(CNFGDisplay, CNFGWindow); - XSetInputFocus( CNFGDisplay, CNFGWindow, RevertToParent, CurrentTime ); - XFlush(CNFGDisplay); - FullScreen = 1; -//printf( "%d %d %d %d\n", xpos, ypos, CNFGWinAtt.width, CNFGWinAtt.height ); - InternalLinkScreenAndGo( WindowName ); -/* - setwinattr.override_redirect = 1; - XChangeWindowAttributes( - CNFGDisplay, CNFGWindow, - CWBorderPixel | CWEventMask | CWOverrideRedirect, &setwinattr); -*/ -#else - CNFGSetup( WindowName, 640, 480 ); -#endif -} - - -void CNFGSetup( const char * WindowName, int w, int h ) -{ - CNFGDisplay = XOpenDisplay(NULL); - XGetWindowAttributes( CNFGDisplay, RootWindow(CNFGDisplay, 0), &CNFGWinAtt ); - - int depth = CNFGWinAtt.depth; - CNFGWindow = XCreateWindow(CNFGDisplay, RootWindow(CNFGDisplay, 0), 1, 1, w, h, 0, depth, InputOutput, CopyFromParent, 0, 0 ); - XMapWindow(CNFGDisplay, CNFGWindow); - XFlush(CNFGDisplay); - - InternalLinkScreenAndGo( WindowName ); -} - -void CNFGHandleInput() -{ - static int ButtonsDown; - XEvent report; - - int bKeyDirection = 1; - int r; - while( (r=XCheckMaskEvent( CNFGDisplay, KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | ExposureMask | PointerMotionMask , &report )) ) - { -// XEvent nev; -// XPeekEvent(CNFGDisplay, &nev); - - //printf( "EVENT %d\n", report.type ); - //XMaskEvent(CNFGDisplay, KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | ExposureMask, &report); - - bKeyDirection = 1; - switch (report.type) - { - case NoExpose: - break; - case Expose: - XGetWindowAttributes( CNFGDisplay, CNFGWindow, &CNFGWinAtt ); - if( CNFGPixmap ) XFreePixmap( CNFGDisplay, CNFGPixmap ); - CNFGPixmap = XCreatePixmap( CNFGDisplay, CNFGWindow, CNFGWinAtt.width, CNFGWinAtt.height, CNFGWinAtt.depth ); - if( CNFGGC ) XFreeGC( CNFGDisplay, CNFGGC ); - CNFGGC = XCreateGC(CNFGDisplay, CNFGPixmap, 0, 0); - break; - case KeyRelease: - bKeyDirection = 0; - case KeyPress: - HandleKey( XLookupKeysym(&report.xkey, 0), bKeyDirection ); - break; - case ButtonRelease: - bKeyDirection = 0; - case ButtonPress: - HandleButton( report.xbutton.x, report.xbutton.y, report.xbutton.button, bKeyDirection ); - ButtonsDown = (ButtonsDown & (~(1<>1 ); - break; - default: - printf( "Event: %d\n", report.type ); - } - } -} - - -void CNFGUpdateScreenWithBitmap( unsigned long * data, int w, int h ) -{ - static XImage *xi; - static int depth; - static int lw, lh; - - if( !xi ) - { - int screen = DefaultScreen(CNFGDisplay); -// Visual * visual = DefaultVisual(CNFGDisplay, screen); - depth = DefaultDepth(CNFGDisplay, screen)/8; -// xi = XCreateImage(CNFGDisplay, DefaultVisual( CNFGDisplay, DefaultScreen(CNFGDisplay) ), depth*8, ZPixmap, 0, (char*)data, w, h, 32, w*4 ); -// lw = w; -// lh = h; - } - - if( lw != w || lh != h ) - { - if( xi ) free( xi ); - xi = XCreateImage(CNFGDisplay, DefaultVisual( CNFGDisplay, DefaultScreen(CNFGDisplay) ), depth*8, ZPixmap, 0, (char*)data, w, h, 32, w*4 ); - lw = w; - lh = h; - } - -// ls = lw * lh; - - XPutImage(CNFGDisplay, CNFGWindow, CNFGWindowGC, xi, 0, 0, 0, 0, w, h ); -} - - -#ifndef RASTERIZER - - -uint32_t CNFGColor( uint32_t RGB ) -{ - unsigned char red = RGB & 0xFF; - unsigned char grn = ( RGB >> 8 ) & 0xFF; - unsigned char blu = ( RGB >> 16 ) & 0xFF; - CNFGLastColor = RGB; - unsigned long color = (red<<16)|(grn<<8)|(blu); - XSetForeground(CNFGDisplay, CNFGGC, color); - return color; -} - -void CNFGClearFrame() -{ - XGetWindowAttributes( CNFGDisplay, CNFGWindow, &CNFGWinAtt ); - XSetForeground(CNFGDisplay, CNFGGC, CNFGColor(CNFGBGColor) ); - XFillRectangle(CNFGDisplay, CNFGPixmap, CNFGGC, 0, 0, CNFGWinAtt.width, CNFGWinAtt.height ); -} - -void CNFGSwapBuffers() -{ - XCopyArea(CNFGDisplay, CNFGPixmap, CNFGWindow, CNFGWindowGC, 0,0,CNFGWinAtt.width,CNFGWinAtt.height,0,0); - XFlush(CNFGDisplay); - if( FullScreen ) - XSetInputFocus( CNFGDisplay, CNFGWindow, RevertToParent, CurrentTime ); -} - -void CNFGTackSegment( short x1, short y1, short x2, short y2 ) -{ - XDrawLine( CNFGDisplay, CNFGPixmap, CNFGGC, x1, y1, x2, y2 ); - XDrawPoint( CNFGDisplay, CNFGPixmap, CNFGGC, x2, y2 ); -} - -void CNFGTackPixel( short x1, short y1 ) -{ - XDrawPoint( CNFGDisplay, CNFGPixmap, CNFGGC, x1, y1 ); -} - -void CNFGTackRectangle( short x1, short y1, short x2, short y2 ) -{ - XFillRectangle(CNFGDisplay, CNFGPixmap, CNFGGC, x1, y1, x2-x1, y2-y1 ); -} - -void CNFGTackPoly( RDPoint * points, int verts ) -{ - XFillPolygon(CNFGDisplay, CNFGPixmap, CNFGGC, (XPoint *)points, verts, Convex, CoordModeOrigin ); -} - -#endif - diff --git a/colorchord2/cnfa b/colorchord2/cnfa index 818f782..7964b7d 160000 --- a/colorchord2/cnfa +++ b/colorchord2/cnfa @@ -1 +1 @@ -Subproject commit 818f7826f05d5ef1fb5c3e275d44359bd0dc01a0 +Subproject commit 7964b7ddd8ec4b36369b82ce1688ca641adde0ed diff --git a/colorchord2/colorchord.exe b/colorchord2/colorchord.exe new file mode 100644 index 0000000000000000000000000000000000000000..47fcdc4b58189aa45ae0a68d35bafb365b0b8f1f GIT binary patch literal 238592 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

I;tW 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 fqPpq7S2qo^Fnh Date: Thu, 21 May 2020 06:20:06 -0700 Subject: [PATCH 2/3] Update default.conf Fix default dev recording and explain --- colorchord2/default.conf | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/colorchord2/default.conf b/colorchord2/default.conf index db18565..8956acf 100644 --- a/colorchord2/default.conf +++ b/colorchord2/default.conf @@ -20,7 +20,7 @@ channels = 2 samplerate = 44100 wininput = -1 -#Compiled version will default to PULSE on Linux, WIN (winmm) on Windows and ANDROID on Android +#Compiled version will default to PULSE (or ALSA) on Linux, WASAPI (winmm) [or WIN for winmm] on Windows and ANDROID on Android # sound_source = ALSA sound_source = WASAPI @@ -28,9 +28,8 @@ sound_source = WASAPI sample_channel = -1 # Sets the playback device for CNFA (what speakers to go to) devplay = default -# Sets the device to get audio from, for WASAPI, "default" searches for a mic +# Sets the device to get audio from, for WASAPI, "default" searches for a mic, and "defaultRender" searches for your loopback. # devrecord = default -# For WASAPI, if speaker loopback is desired use the following line devrecord = default #Render From 46156fe9e01c3e5982f6654d5c7275ea59b8914c Mon Sep 17 00:00:00 2001 From: CNLohr Date: Thu, 21 May 2020 02:38:22 -0700 Subject: [PATCH 3/3] Update compile.bat --- colorchord2/windows/compile.bat | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/colorchord2/windows/compile.bat b/colorchord2/windows/compile.bat index 616c2fc..f69e406 100644 --- a/colorchord2/windows/compile.bat +++ b/colorchord2/windows/compile.bat @@ -1,5 +1,6 @@ @echo off echo Unzip http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.27-win64-bin.zip to C:\tcc +echo Also, if compiling with OpenGL, download http://download.savannah.nongnu.org/releases/tinycc/winapi-full-for-0.9.27.zip and overwrite the include, etc. folders in C:\tcc. echo Don't worry. It includes the i386 compiler in the win64 build. set CFLAGS= -v -DHIDAPI -DWINDOWS -DWIN32 -DTCC -DRUNTIME_SYMNUM -O2 -Itccinc -DINCLUDING_EMBEDDED -rdynamic -g -DCNFGOGL @@ -20,4 +21,4 @@ rem set CC=C:\tcc\x86_64-win32-tcc.exe @echo on %CC% %CFLAGS% %INCLUDES% %ARCH_SPECIFIC% %SOURCES% %LDFLAGS% -o ..\colorchord.exe @echo off -pause \ No newline at end of file +pause