The codebase to run the *spark d-fuser controller www.sparkav.co.uk/dvimixer
Dependencies: SPK-TVOne DMX DmxArtNet NetServicesMin OSC PinDetect mRotaryEncoder iniparser mbed spk_oled_ssd1305 filter
Revision 76:f56c2b955535, committed 2013-12-10
- Comitter:
- tobyspark
- Date:
- Tue Dec 10 15:51:54 2013 +0000
- Parent:
- 75:ba60407546fb
- Child:
- 77:20f948d4885e
- Commit message:
- Datapath X4 support. Currently requires 750 manually configured with X4 res as #128.
Changed in this revision
--- a/SPKDF_ini.h Thu Oct 17 15:50:43 2013 +0000 +++ b/SPKDF_ini.h Tue Dec 10 15:51:54 2013 +0000 @@ -156,20 +156,25 @@ EDIDNumber = 5 [Resolution12] -Name = Dual head SVGA (1600x600) +Name = Dualhead SVGA (1600x600) Number = 75 EDIDNumber = 3 [Resolution13] -Name = Dual head XGA (2048x768) +Name = Dualhead XGA (2048x768) Number = 123 EDIDNumber = 3 [Resolution14] -Name = Triple head VGA (1920x480) +Name = Triplehead VGA (1920x480) Number = 90 EDIDNumber = 3 +[Resolution15] +Name = Quadhead XGA (2048x1536) +Number = 128 +EDIDNumber = 2 + # Edit the above, or add your own keys here, up to Resolution99 # End of SPKDF.ini -- Ensure there is a blank line below this.
--- a/main.cpp Thu Oct 17 15:50:43 2013 +0000 +++ b/main.cpp Tue Dec 10 15:51:54 2013 +0000 @@ -699,13 +699,14 @@ LocalFileSystem local("local"); FILE *file; - // Upload Matrox EDID to mem4 (ie. index 3). Use this EDID slot when setting Matrox resolutions. + // Upload EDIDs if (tvOne.getProcessorType().version < 415) { if (debug) debug->printf("Skipping EDID upload as unsupported on detected TV One firmware\r\n"); } else { + // Upload Matrox EDID to mem4 (ie. index 3). Use this EDID slot when setting Matrox resolutions. file = fopen("/local/matroxe.did", "r"); // 8.3, avoid .bin as mbed executable extension if (file) { @@ -716,6 +717,18 @@ { if (debug) debug->printf("Could not open Matrox EDID file 'matroxe.did'\r\n"); } + + // Upload Datapath X4 EDID to mem3 (ie. index 2). Use this EDID slot when setting X4 resolutions. + file = fopen("/local/x4e.did", "r"); // 8.3, avoid .bin as mbed executable extension + if (file) + { + ok = ok && tvOne.uploadEDID(file, 2); + fclose(file); + } + else + { + if (debug) debug->printf("Could not open X4 EDID file 'x4e.did'\r\n"); + } } // Upload Logo to SIS2. Use this (minimal) image when no sources are connected.
--- a/spk_oled_gfx.h Thu Oct 17 15:50:43 2013 +0000 +++ b/spk_oled_gfx.h Tue Dec 10 15:51:54 2013 +0000 @@ -80,7 +80,7 @@ const uint8_t char78[] = {5, 0x3E, 0x04, 0x08, 0x10, 0x3E}; const uint8_t char79[] = {5, 0x1C, 0x22, 0x22, 0x22, 0x1C}; const uint8_t char80[] = {5, 0x3E, 0x0A, 0x0A, 0x0A, 0x04}; -const uint8_t char81[] = {3, 0x1C, 0x22, 0x72}; +const uint8_t char81[] = {5, 0x1C, 0x22, 0x72, 0xA2, 0x1C}; const uint8_t char82[] = {5, 0x3E, 0x0A, 0x0A, 0x1A, 0x24}; const uint8_t char83[] = {5, 0x24, 0x2A, 0x2A, 0x2A, 0x12}; const uint8_t char84[] = {5, 0x02, 0x02, 0x3E, 0x02, 0x02}; @@ -112,7 +112,7 @@ const uint8_t char110[] = {5, 0x3E, 0x04, 0x08, 0x10, 0x3E}; const uint8_t char111[] = {5, 0x1C, 0x22, 0x22, 0x22, 0x1C}; const uint8_t char112[] = {5, 0x3E, 0x0A, 0x0A, 0x0A, 0x04}; -const uint8_t char113[] = {3, 0x1C, 0x22, 0x72}; +const uint8_t char113[] = {5, 0x1C, 0x22, 0x72, 0xA2, 0x1C}; const uint8_t char114[] = {5, 0x3E, 0x0A, 0x0A, 0x1A, 0x24}; const uint8_t char115[] = {5, 0x24, 0x2A, 0x2A, 0x2A, 0x12}; const uint8_t char116[] = {5, 0x02, 0x02, 0x3E, 0x02, 0x02};
--- a/spk_oled_ssd1305.lib Thu Oct 17 15:50:43 2013 +0000 +++ b/spk_oled_ssd1305.lib Tue Dec 10 15:51:54 2013 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/tobyspark/code/spk_oled_ssd1305/#a675a19c16f0 +http://mbed.org/users/tobyspark/code/spk_oled_ssd1305/#0d518115e76c