Advertisement
Guest User

Untitled

a guest
Oct 12th, 2017
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.67 KB | None | 0 0
  1. #include <windows.h>
  2. #include <winuser.h>
  3. #include <wingdi.h>
  4. #include <math.h>
  5.  
  6. int scalaFluxDarkroom[] = {255, 255, 254, 254, 253, 253, 252, 252, 251, 251, 250, 250, 249, 249, 248, 248, 247, 247, 246, 246, 245, 245, 244, 244, 243, 243, 242, 242, 241, 241, 240, 239, 239, 238, 238, 237, 237, 236, 236, 235, 235, 234, 233, 233, 232, 232, 231, 231, 230, 230, 229, 228, 228, 227, 227, 226, 226, 225, 225, 224, 223, 223, 222, 222, 221, 220, 220, 219, 219, 218, 218, 217, 216, 216, 215, 215, 214, 213, 213, 212, 212, 211, 210, 210, 209, 209, 208, 207, 207, 206, 205, 205, 204, 204, 203, 202, 202, 201, 200, 200, 199, 198, 198, 197, 196, 196, 195, 195, 194, 193, 193, 192, 191, 191, 190, 189, 189, 188, 187, 186, 186, 185, 184, 184, 183, 182, 182, 181, 180, 179, 179, 178, 177, 177, 176, 175, 174, 174, 173, 172, 171, 171, 170, 169, 168, 168, 167, 166, 165, 165, 164, 163, 162, 161, 161, 160, 159, 158, 157, 157, 156, 155, 154, 153, 152, 152, 151, 150, 149, 148, 147, 146, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 119, 118, 117, 116, 115, 114, 113, 112, 111, 109, 108, 107, 106, 105, 103, 102, 101, 100, 98, 97, 96, 94, 93, 92, 90, 89, 87, 86, 84, 83, 81, 80, 78, 76, 75, 73, 71, 69, 68, 66, 64, 62, 59, 57, 55, 53, 50, 48, 45, 42, 39, 35, 32, 27, 22, 16, 0};
  7.  
  8. void error(char* msg)
  9. {
  10.     printf("%s", msg);
  11.     exit(-1);
  12. }
  13.  
  14. void initDisplayDevice(DISPLAY_DEVICE *DisplayDevice)
  15. {
  16.     ZeroMemory(DisplayDevice, sizeof(DISPLAY_DEVICE));
  17.     DisplayDevice->cb = sizeof(DISPLAY_DEVICE);
  18. }
  19.  
  20. void FaiDisplay(char* deviceName, int mode)
  21. {
  22.     HDC deviceContext;
  23.     WORD ramp[3][256];
  24.     int i = 0, j = 0;
  25.    
  26.     printf("Doing %s, mode %i\n", deviceName, mode);
  27.    
  28.     if (!(deviceContext = CreateDC("DISPLAY", deviceName, NULL, NULL)))
  29.         error("problema CreateDC()");
  30.    
  31.     if (!GetDeviceGammaRamp(deviceContext, ramp))
  32.         error("problema GetDeviceGammaRamp()");
  33.    
  34.     switch (mode)
  35.     {
  36.         case 0: //DARKROOM
  37.             for (i = 0; i < 256; i++)
  38.             {
  39.                 ramp[0][i] = scalaFluxDarkroom[i] << 8;
  40.                 ramp[1][i] = 0 << 8;
  41.                 ramp[2][i] = 0 << 8;
  42.             }
  43.             break;
  44.         case 1: //SOFT
  45.             for (i = 0; i < 256; i++)
  46.             {
  47.                 ramp[0][i] = i << 8;
  48.                 ramp[1][i] = (int)(i * (150.0/256.0)) << 8; //TODO: get these numbers from a configuration file
  49.                 ramp[2][i] = (int)(i * (90.0/256.0)) << 8;
  50.             }
  51.             break;
  52.         case 2: //FULL COLOURS
  53.             for (i = 0; i < 256; i++)
  54.             {
  55.                 ramp[0][i] = i << 8;
  56.                 ramp[1][i] = i << 8;
  57.                 ramp[2][i] = i << 8;
  58.             }
  59.             break;
  60.     }
  61.    
  62.     if (!SetDeviceGammaRamp(deviceContext,ramp))
  63.         error("problema SetDeviceGammaRamp()");
  64.    
  65.     if (!DeleteDC(deviceContext))
  66.         error("problema DeleteDC()");
  67. }
  68.  
  69. // void evento()
  70. // {
  71.     // MessageBoxEx(NULL, "merdaccia", "stronzo",MB_OK, 0);
  72. // }
  73.  
  74. void FaiTuttiDisplay(int mode)
  75. {
  76.     int i = 0;
  77.     DISPLAY_DEVICE DisplayDevice;
  78.    
  79.     initDisplayDevice(&DisplayDevice);
  80.  
  81.     i = 0;
  82.     while (EnumDisplayDevices(NULL, i, &DisplayDevice, 1))
  83.     {
  84.         if (DisplayDevice.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP)
  85.             FaiDisplay(DisplayDevice.DeviceName, mode);
  86.         i++;
  87.     }
  88. }
  89.  
  90. //int main(int argc, char** argv)
  91. int WinMain(HINSTANCE hInstance,
  92.             HINSTANCE hPrevInstance,
  93.             LPTSTR    lpCmdLine,
  94.             int       cmdShow)
  95. {
  96.     MSG msg;
  97.     int mode = 0;
  98.    
  99.     if (!RegisterHotKey(NULL,
  100.                        0,
  101.                        MOD_ALT | MOD_CONTROL,
  102.                        0x44 // D key
  103.                        ))
  104.         error("problema RegisterHotKey()");
  105.        
  106.     if (!RegisterHotKey(NULL,
  107.                        1,
  108.                        MOD_ALT | MOD_CONTROL | MOD_SHIFT,
  109.                        0x44 // D key
  110.                        ))
  111.         error("problema RegisterHotKey()");
  112.    
  113.    
  114.     FaiTuttiDisplay(mode);
  115.    
  116.     while (GetMessage(&msg, NULL, 0, 0) != 0)
  117.     {
  118.         if (msg.message != WM_HOTKEY)
  119.             continue;
  120.  
  121.         switch (msg.wParam)
  122.         {
  123.             case 0:
  124.                 if (mode == 2)
  125.                     mode = 0;
  126.                 else
  127.                     mode++;
  128.                 break;
  129.             case 1:
  130.                 if (mode == 0)
  131.                     mode = 2;
  132.                 else
  133.                     mode--;
  134.                 break;
  135.         }
  136.        
  137.         FaiTuttiDisplay(mode);
  138.     }
  139.    
  140.     return 0;
  141.    
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement