Added theme.c to keep gcc happy
[hackover2013-badge-firmware.git] / ChangeLog.txt
index 8338ec6..979788a 100644 (file)
@@ -1,8 +1,146 @@
-v0.9.3 - Ongoing
-================
+v1.1.0 - Ongoing
+==============================================================================
+BREAKING CHANGES
+------------------------------------------------------------------------------
+- Rewrote corner and rounded rectangle code.  Only one corner enum is now used
+  (drawCorners_t)
+- Renamed drawRectangleRounded to drawRoundedRectangleFilled
+- Removed drawProgressBar and drawButton from drawing.c, since drawing should
+  only contain drawing primitives
+- Reorganised a lot of the TFT drawing library to support external controls,
+  and dynamically switch between bitmap and anti-aliased fonts.  In the future
+  everything that isn't a basic drawing primitive will be placed in it's own
+  control.  The main benefit of this is that it's much easier to customize the
+  look and feel of your UI without having to modify drawing.c and the basic
+  drawing primitives, and to be able to switch from bitmap to anti-aliased
+  fonts depending on how much flash space you have free, etc.
+- Removed bmp_error_t drawBitmapImage(uint16_t x, uint16_t y, char *filename)
+  to keep better seperation of primitives and more complex features, and
+  reduce external dependencies in drawing.c.  Call bmpDrawImage (bmp.c)
+  directly instead.
 
+NEW FEATURES
+------------------------------------------------------------------------------
+- Added drawCorner to graphics.c
+- Added new 'controls/' folder to the GFX library, and added a number of
+  controls that will render correctly with the theme settings, as well as
+  using bitmap or anti-aliased fonts, depending on projectconfig.h
+- New controls:
+  - button
+  - hsbchart (Hue/saturation/brightness chart for color pickers)
+  - huechart (Hue selection gradient for color pickers)
+  - label
+  - labelcentered
+  - progressbar
+- Added theme.h to try to define all of the color and font settings used by
+  the controls in one location to make it easier to update or modify
+- Added aafontsCenterString to aafonts.c
+
+BUG FIXES/OPTIMISATION/ETC.
+------------------------------------------------------------------------------
+- Updated Crossworks Project to use LPC1000 Lib 1.19 (uses CMSIS 3.0)
+- Some performance improvements to core/gpio/gpio.c (thanks Tom for the
+  suggestion)
+- Fixed alpha blending when alpha = 100%
+- Change gpioSetValue to be inline (should optimise to a single operation)
+
+v1.0.0 - 23 March 2012
+===========================================================
+- Added support for LPCXpresso IDE
+- *** Moved '/drivers/chibi' to '/drivers/rf/chibi' ***
+- *** Moved '/drivers/sensors/pn532' to '/drivers/rf/pn532' ***
+- *** Renamed '/drivers/spiflash' to '/drivers/storage/spiflash' ***
+- *** Renamed '/drivers/eeprom' to '/drivers/storage/eeprom' ***
+- *** Renamed '/drivers/lcd' to '/drivers/display' ***
+- Added I2C support to the SSD1306 driver
+- Moved all color conversion and manipulation functions
+  to '/drivers/displays/tft/colors.c', and added a
+  few new functions: colorsDim(), etc.
+- Added code to render antialiased fonts, based on
+  lookup tables (fast) or alpha-blending (mixed color
+  backgrounds).  Support for AA2 (2-bit) and AA4
+  (4-bit) anti-aliased fonts included.  Alpha-blending
+  only possible on displays where pixels can be read
+  back.
+- Added drawGradient() to drawing.c
+- Removed height parameter from drawButton.  It's now
+  calculated based on the font height, and centered.
+- Added bell to CLI when backspace is pressed beyond
+  the starting position (cosmetic, but still useful)
+- Removed dependency on /core/libc files in Crossworks
+  when redirecting printf (added printf replacement
+  to sysinit.c instead)
+- Added basic AS1115 driver for segment displays
+- Added driver for HX8340-B based LCDs
+- Added flag to projectconfig.h to disable the default
+  GPIO IRQ Handler functions in code/gpio/gpio.c (in
+  case you want to make your own ISR elsewhere)
+- Added driver for Samsung VFD displays from Adafruit
+- Added ADC average sampling option to projectconfig.h.
+  This allows you to take several readings from the
+  ADC and return the average.  Helps reduces peaks and
+  valleys in the ADC due to noisen but at the expense
+  of slower reads.
+  See: "tools/validation/adctest" for more info
+- Added I2C driver for PN532
+- Updated and added PN532 examples to
+  /tools/examples/sensors/PN532
+- updated touchscreen.h to be a bit clearer during
+  calibration, though it can still be much better
+  organised
+- Had to add "__asm volatile("nop");" after pin writes
+  in the ILI9328 driver since some LCDs couldn't
+  keep up with the high-speed writes with bit-banding
+- Fixed I2C clock duty cycle registers
+- Changed I2C buffer size from 32 to 64 bytes (i2c.h)
+- Added CFG_BRD_LPC1343_OLIMEX_P to board selection
+  in projectconfig.h (courtesy PHK)
+- Added SSD1331_COLORORDER_RGB flag to SSD1331.h to
+  select between RGB and BGR color order
+- Added 128x32 support to ssd1306.c and rewrote
+  initialize sequence for 128x32 and 128x64 displays
+- Added driver for Sharp Memory Display
+  /drivers/lcd/bitmap/sharpmem
+- Added SPI Flash example
+  /tools/examples/spiflash/*
+- Added write function to SPI Flash driver
+  /drivers/spiflash/*
+- Added CFG_BRD_LPC1343_REFDESIGN_MINIMAL as a board
+  option in projectconfig.h.  Tries to keep the flash
+  use as small as possible by initialising less
+  peripherals in systemInit().
+- Changed CodeLite project files to support real
+  debugging with a Segger J-Link and GDB Server.
+- Fixed issue with USB CDC instantiation for
+  FreeBSD (courtesy PHK)
+- Added experimental SSD1351 OLED driver to
+  /drivers/lcd/tft/hw
+
+v0.9.5 - 3 August 2011
+======================
+
+- Redid the font rendering code to use DotFactory
+  generated fonts, and update to the latest binary
+  in the /tools folder.  All fonts have been
+  re-rendered to accomodate the updated code.
+- Updated clock values in cpu.c for PLL to match FCCO 
+  range of 156-320MHz
+- Changed SCB_PLLCTRL_MULT_* to SCB_PLLCTRL_MSEL_* in
+  lpc111x.h to match usermanual
+- Changed SCB_PLLCTRL_DIV_* SCB_PLLCTRL_PSEL_* in
+  lpc111x.h to match usermanual
+- Added inline version of key functions in ili9328.c,
+  which increases the code size ~1.3KB but more than
+  doubles the drawing speed for most drawing functions
+  by avoiding branch operations and pushing and popping
+  the stack multiple times.  Inline methods can be
+  toggled with 'ILI9238_USE_INLINE_METHODS'.
+- Fixed IOCON_SWDIO_PIO1_3_FUNC_CT32B1_MAT2 in lpc134x.h
+- Added drawCornerFilled() to drawing.c and LCD CLI
+- Fixed a nasty bug with 'gpioInterruptEvent' in the 
+  gpioSetInterrupt function (core/gpio/gpio.c)
 - Add drawTriangle() and drawTriangleFilled() to
-  drawing.c
+  drawing.c and LCD CLI
 - Added cpuReset() to reset the board via AIRCR
 - Removed text input dialogue from LCD CLI ('T') to
   save a few KB.  Command file still exists, just no
This page took 0.023809 seconds and 4 git commands to generate.