1.4 development planning thread - page 4 - General Discussion and Assistance - CHDK Forum

1.4 development planning thread

  • 195 Replies
  • 48649 Views
*

Online philmoz

  • *****
  • 3332
    • Photos
Re: 1.4 development planning thread
« Reply #30 on: 04 / January / 2015, 19:12:33 »
Advertisements
Currently on my todo list (may not get around to all of these):
  • Cleanup / rework of the gui_draw.c code. We don't really need 13 different functions for drawing a rectangle, so I plan to simplify this code. There are also some improvements I think can be made to text/string drawing. Management of the screen real-estate for touch screen cams that use on-screen buttons is also in line for some rework.

I've added this in revision 3886 - the changes affect a lot of files, I've tested it; but there may be edge cases that I've missed. If you see any CHDK display anomalies let me know.

Summary of changes:
- consolidate multiple rectangle drawing functions with a single enhanced function. Added flags variable to specify border width, filled state and optional shadow width.
- merge two ellipse drawing functions into one (with parameter to specify filled or not filled)
- enhanced text drawing functions (left/center/right justification, optional fill, multi line text display, clipped text drawing, etc).
- renamed camera_screen.ts_button_border to camera_screen.disp_left and added disp.right and disp_width helper variables. This only applies to touch screen cameras; but I this this naming makes more sense.

Phil.
« Last Edit: 04 / January / 2015, 20:20:30 by philmoz »
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

Re: 1.4 development planning thread
« Reply #31 on: 04 / January / 2015, 19:20:39 »
Do these still use a static buffer (i.e. not re-entrant / thread safe) ?
Ported :   A1200    SD940   G10    Powershot N    G16

*

Online philmoz

  • *****
  • 3332
    • Photos
Re: 1.4 development planning thread
« Reply #32 on: 04 / January / 2015, 20:24:41 »
Do these still use a static buffer (i.e. not re-entrant / thread safe) ?

They should be ok; but I can't guarantee it :D

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

*

Online philmoz

  • *****
  • 3332
    • Photos
Re: 1.4 development planning thread
« Reply #33 on: 05 / January / 2015, 04:03:40 »
Currently on my todo list (may not get around to all of these):
  • Remove hard wired games menu, and build at run time from modules tagged with a 'GAME' module type. Add another menu for 'custom modules' built at runtime and tagged with a specific type (allows user created modules to be included without editing any menus). These should be safe to do now that the file IO issues are fixed.

Initial version of this in attached patch.

Changes:
- Replace the unused 'description' field in the module info header with a module type field. Current module type values are 'unknown', 'extension', 'game', 'tool' and 'script language'.
- Games menu built at startup from all module files set to 'game' type.
- Tools menu built at startup from all module files set to 'tool' type.

I'm open to suggestions for the name and content for the 'Tools' menu and type.
At the moment it contains the Calendar, CPU Info, Memory Browser and Benchmark modules (for testing).
I haven't remove the existing menu entries for the Calendar, Memory Browser and Benchmark modules as I'm not sure they should stay as 'tools'. Any thoughts?

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)


*

Offline srsa_4c

  • ******
  • 4426
Re: 1.4 development planning thread
« Reply #34 on: 05 / January / 2015, 17:23:03 »
Initial version of this in attached patch.
Tried it, seems to be working. We'll probably get a better overview on stability once it becomes part of 1.4.
Quote
- Replace the unused 'description' field in the module info header with a module type field.
I guess this is OK since no UI used the description. Perhaps some of the 'tools' should get a little more descriptive name then.
Quote
I'm open to suggestions for the name and content for the 'Tools' menu and type.
At the moment it contains the Calendar, CPU Info, Memory Browser and Benchmark modules (for testing).
I haven't remove the existing menu entries for the Calendar, Memory Browser and Benchmark modules as I'm not sure they should stay as 'tools'. Any thoughts?
The only downside I see is that we'll have to use to the new location when explaining their usage to users. Those who miss the calendar can always put it in their user menu...


Attached is a patch that adds DIGIC 6 compatible stubs_auto generation to trunk. I did a full batch build to verify it. One of the sx170 ports used an older stubs_auto.S file, updated version is part of the patch. It should allow processing of lowercase branch instructions too.
It's not causing problems with pre-DIGIC 6 assembly, it does include reference to a new macro (STUB2) when processing blx <label> type of code. Not sure whether or how this should be added.

Re: 1.4 development planning thread
« Reply #35 on: 06 / January / 2015, 05:31:12 »
I've added this in revision 3886 - the changes affect a lot of files, I've tested it; but there may be edge cases that I've missed. If you see any CHDK display anomalies let me know.
Don't know if related but the CHDK menu in rev 1.4.0-3890 looks larger (that's good expecially for those are using bigger fonts) but not centered on screen. It results shifted on the right side.
In my very humble opinion a "full screen" CHDK menu would be great.
Attached pics from rev 1.4.0-3872 and 1.4.0-3890.

*

Online philmoz

  • *****
  • 3332
    • Photos
Re: 1.4 development planning thread
« Reply #36 on: 06 / January / 2015, 05:42:51 »
I've added this in revision 3886 - the changes affect a lot of files, I've tested it; but there may be edge cases that I've missed. If you see any CHDK display anomalies let me know.
Don't know if related but the CHDK menu in rev 1.4.0-3890 looks larger (that's good expecially for those are using bigger fonts) but not centered on screen. It results shifted on the right side.
In my very humble opinion a "full screen" CHDK menu would be great.
Attached pics from rev 1.4.0-3872 and 1.4.0-3890.

Thanks, should be fixed in revision 3891.

You'll only gain an extra character (perhaps 2) going full scree width; but if enough people want it I can change it.

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

*

Offline srsa_4c

  • ******
  • 4426
Re: 1.4 development planning thread
« Reply #37 on: 06 / January / 2015, 10:51:59 »
Here is a patch of some changes I was playing with a while back
Only noticed this now:
platform/<cam>/sub/<xxx>/main.bin is not removed when making clean.


*

Offline reyalp

  • ******
  • 13391
Re: 1.4 development planning thread
« Reply #38 on: 07 / January / 2015, 01:53:51 »
I noticed in the current trunk (r3994), file browser context menu items are missing the last char, e.g. if you have a directory selected you get
Remove di
Make di
...
This doesn't happen in r3885
Don't forget what the H stands for.

*

Online philmoz

  • *****
  • 3332
    • Photos
Re: 1.4 development planning thread
« Reply #39 on: 07 / January / 2015, 17:07:08 »
Attached is a patch that adds DIGIC 6 compatible stubs_auto generation to trunk. I did a full batch build to verify it. One of the sx170 ports used an older stubs_auto.S file, updated version is part of the patch. It should allow processing of lowercase branch instructions too.

Since you are now building stubs_auto.S in two steps, is it possible for the same address to be added twice?
Each step sorts and filters out duplicates; but the combined set does not.

Quote
It's not causing problems with pre-DIGIC 6 assembly, it does include reference to a new macro (STUB2) when processing blx <label> type of code. Not sure whether or how this should be added.

Should be safe to just add it to stubs_asm.h - it should be ignored by existing cameras.

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

 

Related Topics