1 class ScanlineFilter { 2 public: 3 bool enabled; 4 5 void size(unsigned&, unsigned&); 6 void render(const uint16_t*&, unsigned&, const unsigned*&, unsigned, unsigned&); 7 void setIntensity(unsigned); 8 9 ScanlineFilter(); 10 ~ScanlineFilter(); 11 12 private: 13 uint16_t *adjust; 14 uint16_t *buffer; 15 unsigned linewidth[480]; 16 }; 17 18 class Filter : public library { 19 public: 20 function<const char* ()> dl_supported; 21 function<void (const uint32_t*)> dl_colortable; 22 function<void (configuration&)> dl_configuration; 23 function<void (unsigned, unsigned&, unsigned&, unsigned, unsigned)> dl_size; 24 function<void (unsigned, uint32_t*, unsigned, const uint16_t*, unsigned, const unsigned*, unsigned, unsigned)> dl_render; 25 function<QWidget* (unsigned)> dl_settings; 26 27 unsigned renderer; 28 uint32_t *colortable; 29 30 signed contrast; 31 signed brightness; 32 signed gamma; 33 34 bool gamma_ramp; 35 bool sepia; 36 bool grayscale; 37 bool invert; 38 39 void colortable_update(); 40 void size(unsigned&, unsigned&, unsigned, unsigned); 41 void render(uint32_t*, unsigned, const uint16_t*, unsigned, const unsigned*, unsigned, unsigned); 42 QWidget* settings(); 43 44 Filter(); 45 ~Filter(); 46 47 private: 48 static const uint8_t gamma_ramp_table[32]; 49 uint8_t contrast_adjust(uint8_t input); 50 uint8_t brightness_adjust(uint8_t input); 51 uint8_t gamma_adjust(uint8_t input); 52 }; 53 54 extern ScanlineFilter scanlineFilter; 55 extern Filter filter; 56