RingBound
Pages: 1 2
Chris Hall (132) 3583 posts |
The application !RingBound is now available from !Store. It displays a manual (of file type ‘Bound’ &1EB) in a window as if it were a ring-bound manual open on a desk. Turn the pages by clicking on index tabs or on the bottom corner. Clicking with Adjust opens a second screen bank while the page is turning showing an animated graphic. The animation is terminated when the page has turned or on a mode change. |
GavinWraith (26) 1563 posts |
Not sure whether you completed the change of name from DrawDis to RingBound in !RunImage. |
Chris Hall (132) 3583 posts |
I think version 0.02 will be more ‘complete’. Thanks for spotting it. I have converted the RISC OS 5.28 User Manual to work as a ‘Bound’ file. Available from !Store (it is after all now under the Apache licence). I only asked for (and got) the application name and filetype alocation today and first thought of the idea two days ago, so the application may be a little ‘rusty’ at the moment. The next step is to add hyperlinks – for example each line in the ‘Contents’ needs to be ‘spanned’ by a named group object which indicates the required (odd) page number. Clicking over it will then move to that page. More work… Oh and it is greedy with memory as it loads a 141Mbyte Draw file (the RISC OS 5.28 User Manual) into memory. In due course I’ll add memory buffering so that the file can just be open on disc. I have added a few hyperlinks on pages xii and xiii. More to come. The programme (version 0.05) now asks for a suitable wimpslot to load the manual concerned. |
Chris Hall (132) 3583 posts |
Version 0.09 now offers forward and backward steps by Chapter, Section or sub-section. Also a scroll bar to jump directly to a particular page. See image below – it performs at about this speed on a Titanium and a Pi 4B (slightly more flickering on the Titanium): |
Colin Ferris (399) 1822 posts |
Any chance of adding sound – ie reading out the text. |
Leo Smiers (245) 56 posts |
Amazing! What is the source for the bound files? |
David J. Ruck (33) 1649 posts |
I thought you were going to say the sound of the page turning, to make it even more realistic! |
John Rickman (71) 649 posts |
Nice! It works as expected when I double click on a Ringbound file |
Chris Hall (132) 3583 posts |
but not if I drop the file on the icon bar icon then click it. Perhaps I should have tested that bit again. Watch this space. Any chance of adding sound I did think of a ‘scrunch’ sound as the pages turn. The problem with reading out the words (or for that matter doing a text search of the content) is that the pages are held as Draw files which !PDF exports with each character as a separate text object. So if I read it out it would just be like an infants’ school. Amazing! What is the source for the bound files? I have written an article explaining that. Too complicated but it is based on a Draw file – the whole ‘Bound’ file will render as a Draw file showing the background image. |
Paolo Fabio Zaino (28) 1893 posts |
Very nice Chris! :) |
Chris Hall (132) 3583 posts |
Version 0.91 now gives an error message if there is insufficient space available to load a ‘Bound’ file. The space available depends on the ‘min’, ‘max’ and ‘next’ values when it started up (as it would not know how big a file was to be loaded later). After accepting the error message it continues to wait for a smaller ‘Bound’ file to be dragged or a ‘Bound’ file is double-clicked. Double-clicking with insufficient space does not produce an error, instead the app is re-run reserving more memory. The next version will need much less memory … |
Neil Fazakerley (464) 124 posts |
Is it called RingBind or RingBound – it says RingBind on the opening page? |
Chris Hall (132) 3583 posts |
The only thing called Ringbound is the zip file. The filetype is ‘Bound’. The app is !RingBind. Version 0.10 now runs in a 12Mbyte Wimpslot even when displaying a 140Mbyte manual. I’ll release the conversion programme (to convert a PDF into a Bound file) some time next week once I have tidied it up a bit. No doubt version 0.10 will have a few warts – after an error it leaves dual memory banks until the next mode change. This is easily cured by doing f12, return. So if you get a ‘memory cannot be moved’ error when starting an animated page move, I can explain it but I am not sure how to reduce the screen memory allocation back to normal as the only parameter returned is max size, not min size. Version 0.11 recognises whether an attempt to allocate extra memory for dual screen banks would fail (e.g. if space had already been allocated and, due to an error or pressing f12 during animation, had not been released or on an ARMX6 with screen memory over 16Mbytes – no room for second bank in the available 32Mbytes) and then shows animation in a single bank, i.e. with more flickering. This avoids the ‘memory cannot be moved’ error. |
Chris Hall (132) 3583 posts |
Version 0.15 now intercepts errors from SpriteExtend if rendering skewed JPEGs. Resources to create your own ‘Bound’ files from a PDF source are now included. Version 0.15 can handle ‘Bound’ files larger than 512Mbytes, asking for a Wimpslot just large enough to hold the background image and four of the largest pages. It therefore works on VRPC. The page turning animation is fast enough on VRPC, ARMX6, Titanium and Pi4 but rather too ssllooww on an Iyonix. |
Chris Hall (132) 3583 posts |
Version 0.16 now handles correctly the situation where any window is dragged across the desktop while the page animation is being displayed on two screen banks (the updates are drawn to the invisible bank and the banks are then swopped). Previously the dragged window would be shown in its original position on one screen bank. |
Chris Hall (132) 3583 posts |
Version 0.20 (4-Dec-2024) now corrects a few bugs and implements page to page links correctly. The Impression User Manual in RingBound form is also now available and is undergoing beta testing. Comments welcome. The manual is provided in PDF form with Impression X but is now available to users of !Style – the free version of Impression – as well. |
Jean-Michel BRUCK (3009) 369 posts |
Hi Chris Example: Is it possible to edit/replace the sourceX page? |
Chris Hall (132) 3583 posts |
I registered the app name ‘!RingBind’ and the file type ‘Bound’ (plus a Draw tag) so I get confused myself. I have avoided keyboard shortcuts. The SourceX file is created by the ‘ManGen’ programme so you can do things like add text on the LH page to explain things. So long as you don’t upset the general arrangement. I’ll look at your RingBindScore file when I have some time! |
Jean-Michel BRUCK (3009) 369 posts |
@ Chris. |
Chris Hall (132) 3583 posts |
I’ll look at adding recognition of key presses. |
Jean-Michel BRUCK (3009) 369 posts |
@Chris |
Chris Hall (132) 3583 posts |
Version 0.30 of RingBind has now been uploaded and has faster animation thanks to a suggestion from Nemo. I just need to be able to move the pages forward, without having to click on an icon in the window, by pressing the space bar for example. It also now accepts messages from another application to turn the page. Something I have done has stopped it working on VRPC … Update: version 0.32 now has improved animation speed. |
Jean-Michel BRUCK (3009) 369 posts |
Chris, |
Chris Hall (132) 3583 posts |
Nice! It works as expected when I double click on a Ringbound file Version 0.34 now ignores a file dragged to its icon bar if the buffer space already allocated is insufficient and pops up an error message to say so. If the file is double clicked then it forces RingBind to restart if buffer space is insufficient. On starting (whether from !Run or double-click) RingBind demands 25Mbytes of WimpSlot and as it loads a RingBound file it asks for a large enough WimpSlot to load the entire file into memory but if that is not forthcoming (e.g. on VRPC) it allocates space to be able to load just the four largest Draw files in the Bound file, on demand as required, keeping the file open. The icon bar icon shows a black outline if there is enough memory for the entire file to be loaded, a white outline shows that pages from the file are being loaded on demand. If there is insufficient video memory available to allow a shadow screen bank to be set up at the existing resolution and colour space then the icon bar icon turns yellow during animation (and a rather clunky animation is presented) as screen redraws are taking place during display. Otherwise one shadow bank is being written to while the other is being displayed and then they are swopped (but I haven’t been able to find how to wait to swop banks during flyback). RingBind now checks there is sufficient memory available before loading data (something it should have done before!). |
Jean-Michel BRUCK (3009) 369 posts |
I just tested the message to RingBing, it works. The page number I transmit starts at 0, and is incremented with each click,but if the page displayed by Ringbing is not 0, I get an error: Missing ENDIF (internal code 32010) With a mouse, the interesting thing is the wireless transmission, I do the test with 2 mice, the position of one is on the iconbar icon and the other 2 meters from the screen. I will try a solution via GPI RPi or serial state with my ARMX6, I had tested a box with switches on my RiscPC, a few years ago… Small remark I find that the redraw loop is very “busy” therefore slow, for example the surround and the tabs should not be redrawn, it’s just an idea. |
Pages: 1 2