So who is this blog for? I'm not really sure yet, but for now I guess it's mainly for me. It can be motivating to look over your shoulder from time to time and see how far you've come. I plan to post snippets of what I'm working on as I trudge on towards the completion of my software dev project.
Maybe someone will find my posts interesting; if you don't know who I am or what I'm working on, probably not so much.
I'll try to keep main tasks in bold, followed by the details, plans and ideas (random shite).
- Currently working on parsing of scores in .xps format. Element identification is pretty good.
- I need a way to bubble events up to UI so user can confirm dodgy detection. If a element gets a poor detection ranking but user confirms it, templates and error margins should be adjusted.
- Routed events look promising but seem tied to DependencyObjects. Also difficult to hook routed events to model objects nicely.
- Could just use CLR events on model objects, but kind of need handling at VM layer and view layer. In this case, UI will place adorner around the element on the score (retaining context), select element type in currently displayed list (easy), user changes type if necessary and hits a big ok button (or presses enter).
- Parser must set a CurrentElement property. I'll make a new element type list so as to not interfere with shit that currently works. UI can bind straight through to parser.
- How will detection pause while waiting for user? Really needs to wait on modal dialog :/
- View can handle propertyChanged event for CurrentElement and throw up dialog. Dialog can live on the far left side of the screen.
- Ugh, the score doesn't get drawn to the screen until the parser has finished doing it's thing. Need to break down parsing and drawing routines, draw score to screen, hook up events in VM, then start parsing.
- Parsing/drawing order rejigged
- "Cannot perform this operation while dispatcher processing is suspended." In other words, I can't show a dialog until after the main score window has rendered. Shit. Starting parsing from score panel loaded event works.
- Displaying set of possible element types (quaver, quaver tail top, quaver rest etc etc) in dialog window when user confirmation is required.
- Elements are displayed as Drawing objects which don't have automatic "bring into view" method. Gonna have to place selection adorner manually.
- Looks like I did it manually last time anyway, easy enough to adjust.
- Or not. Score is drawn as drawing brush which gets stretched. Will have to work out translated point of a drawing within the brush.