Posts: 40,483
Threads: 491
Joined: Aug 2002
Version 4.4.916 is posted. This one is just some fixes plus improvements to the new template pre-scaling support. It now allows you to enter multiple target resolutions which it will generate all at once. And it also now remembers the last values and brings them back next time. And it correctly deals with the images used by things like logo image or time image widgets, where the images aren't directly referenced but can be any images within a configured scope.
There is also now a ClrLighting device class, to support things like the Hue system. In almost all cases a driver that implements ClrLighting will also implement the standard Lighting device class. ClrLighting just provides the extra bits required to get/set the color.
The Hue driver has been updated to support a V2 version, so use that one over the original V1 version. The V2 one is the only one that will be supported in the new auto-gen system and any other auto-magical stuff. This guy implements the Lighting and ClrLighting device classes.
- Widgets like the new time image, and the existing logo and mapped image widgets, have an issue wrt to the new pre-scaling system, in that they don't directly reference images, so the pre-scaling code doesn't know it needs to pre-scale the images that these widgets dynamically load at viewing time. So we need to watch for these, see what scopes they refer to, and download and scale all of the images in those scopes.
- The above meant that the previous strategy of just putting all the pre-scaled images into a flat list, in a single image repo scope, wasn't going to work because that required changing the names of the images to insure uniqueness. That won't work with things like logo or time images, since they depend on a particular format for the image names. So, it was changed to just recreate the original tree structure under the selected target scope.
- Do a device class for colored lighting, so that we can have a standardized way of dealing with things like the Hue. It will effectively just be a new read/write field with the HSV color of the light. It can be in conjunction with a standard lighting device class implementation for on/off and dimming.
- The CML class IPEndPoint's GetAsText method is not checking for an IPV6 address. It should, if IPV6, bracket the address part to differentiate it from the port. Otherwise, the value it returns may not later parse properly if it includes a compaction of address parts, because the address string will be ambiguous.
- Update the Hue driver so that it now supports a V2 mode, using the Lighting device class plus the new ClrLighting device class introduced above. It still supports the original version, though it would be nice to be able to get rid of that since probably very few people use the Hue driver yet, so it doesn't make much sense to keep two versions around forever mode. Both versions are the same driver, just with a different manifest to tell it which mode to use.
Dean Roddey
Explorans limites defectum
Posts: 40,483
Threads: 491
Joined: Aug 2002
Version 4.4.917 is posted. It's mostly to get a fix out for Bryan since this was preventing him from using the latest stuff in his installed systems.
- When you do a gesture, the view marks the target widget as being in a gesture. This prevents any active update type stuff from getting to those widgets (like updating marquees, animation widgets, etc...) However it's not doing it in the case of flicks. So those things can redraw during the scroll and make a visual mess. Basically it only matters currently for overlays but any flickable widget should be marked thusly.
- Change the IV engine's template caching option to be on a per-view basis. This way, in the RIVA world, it can be enabled or disabled for specific sessions. Otherwise, in order to test changes via a RIVA client, you'd have to disable caching for all RIVA clients. There's still a little extra hit, but not nearly as much as disabling all caching. The RIVA protocol will be updated in the next drop to support setting the caching option.
Dean Roddey
Explorans limites defectum
Posts: 40,483
Threads: 491
Joined: Aug 2002
Version 4.4.918 is posted. It has some small fixes and improvements and conveniences, plus a number of things to support the new auto-generation stuff that is being worked on.
If you are using the new color palette widget, you may have to make some small changes, see below. The color palette no longer has a SetValue command (previously used to get the V part of HSV colors into the palette so that it could send a full HSV color out for reaction when changes were made to it.) Now, you can send HS and V values separately when setting a color, so a color palette + slider used to create HSV colors can separately send their respective parts of the color to a color preview widget.
- Update the Uninstaller to handle the client service, before I forget about it and leave it undone.
- Update the RIVA protocol to allow clients to ask for caching to be enabled/disabled. This can't be done on a per-session, since it's a global option. Therefore it'll disable it for all clients when it's turned on. The setting has to be moved into the view class to allow it to be per-session.
- Update the Windows RIVA client to support the new caching enable/disable option. It's a menu item that is available once you are logged in. So, at least for now, you have to initially log in, then you can enable/disable the option. Later it can be put onto the logon screen or something perhaps.
- Get the Hue driver listed on the web content, which means also adding the Lighting and Colored Lighting device classes to the list of documented device classes as well. It looks like really the forum will remain where the full technical details of device classes are defined and the web site will be more for users of the drivers that implement thing.
- Expand the LoadSiblingOverlay command to allow it to target more than just a direct sibling, by taking a 'path' relative to the starting overlay (the one on which the command was invoked, by one of it's contained children.) So the paths start with .\ or ..\ and can navigate up or down from the starting overlay. Use the names of the overlays as path components, so ..\RightSide\Preview would go up to the parent of the starting overlay, then find an overlay in it named RightSide, and within that an overlay named Preview. That Preview overlay would be loaded with the indicated template. Note that, if the path is relative, it is expanded based on the templated loaded into the starting overlay. This can't be used to reload any direct ancestor of the original overlay, use LoadAncestor to do that. The latter has to be done asynchronously, because it's going to whack the stuff that is processing the action. LoadSiblingOverlay can't whack the original one, it has to load something in some other part of the nesting hierarchy.
- Define a device class for online weather data sources and update the Weather Underground and weather device simulator drivers to support a V2 version that complies with that device class. Effectively it's just a subset of the current driver with the WEATH# field name prefixes. The other fields are still there as well in the V2 version, but just not part of the device class, which has to be fairly LCD, so that other weather sources in the future are very likely to support what is required. We need this to move forward on the auto-gen stuff.
- The use of embedded art should be an option on the File Tag repo, since it can be slow and if someone has set up outboard cover art, that could be used if desired. So add a new driver install prompt for that. It'll be set to false by default, so reconfigure the driver if you want to enable it. It's set to false by default because it's very slow over the network.
- Popouts don't work when used with templates that use color fills as the background instead of images. Any images drawn over the color background will apply their own alpha channel to the collected popout image that is going to be slid in/out, so stuff behind the popout will show through in those areas. I had to implement a completely different easing algorithm for that scenario.
- Update the progress bar widget so that the filling of the unused part is optional. This allows you to have just the fill part, which is often desirable. Also, provide an option to feather the edge of the used part, so that it doesn't have to end in a hard edge if that's not visually optimal. The RIVA clients won't be able to respond to either of these until the RIVA protocol and clients is updated to pass that info along. But it's something very useful for the new auto-gen so it's worth doing.
- Update the lighting simulator driver (the V2 compliant version) to support the ClrLighting device class and enable color lighitng on a couple of the lights that it supports. This will allow us to support color lighting in the new auto-gen stuff.
- Steal an idea from Inkscape and support a 'drill down' selection capability. If you have a single widget selected, you can Shift-Right Click within that widget's area and it will find the next one down that it hits, and so on until you hit the template itself (at which point it goes back to the top.) So you can more easily select widgets that are fully covered by other widgets. The widget palette's summary still shows what the mouse is actively over, but you can still select covered widgets.
- And you can now hit F7 and, if there is a single widget selected, it will bring up the attributes dialog for that widget. This makes it easier to use the above selection scheme and then modify the selected widget.
- And, if a single widget is selected, you can use Page Up/Page Down to move it up and down in the Z-Order. I'll update it to handle multiple selections later, but for now it's only for single widget. So you can use the drill down selection above and adjust the z-order via keyboard now, without having to go to the widget palette.
- The recent changes to support gestures is not appropriately checking to see if widgets are disabled. If the widget is not in normal state, it should refuse to start a gesture or do a click event on the widget.
- Add a new command to be able to query widget colors. The immediate need for this is in the new auto-gen lighting system, where we need to query the currently set color from the previous widget and send it to the light, but it'll likely have other benefits as well.
- The static slider isn't exposing its SetValue command in Preload, when it's completely safe to do so allow that.
- The color palette widget should display itself semi-transparent when disabled.
- The color palette was initially given a SetValue command, which lets you set the V part of the HSV color on it. It doesn't use the V part, but the reason was so that it would combine the V part with the current HS part it does keep up with, and send a change event that you can react to. This would let you not have to get the current color from some preview widget and work a new V part into it to set back on the preview widget.
But this isn't working well. It's difficult to reliably get an initial (previously set and being restored) color into the palette, and if the V part is sent (in the init of a V slider that is likely to be used with any palette) it will be black if that is done before setting up a color on the palette. So just get rid of it, and add some more format options to the SetWidgetClr command, to allow for setting just parts of the HSV color. This will let individual parts of the HSV color be set. The palette can send HS parts and the slider the V part. This won't break any previous stuff that is setting the whole color, it just allows for much nicer editing of previous colors.
- The CQSL Repo driver, if the initialization failed, would try to store an invalid value into the LoadStatus field and cause an error to be logged.
- The resize capability of the action editor dialog got lost because the resource editor hadn't been properly updated to deal with a new SIZEABLE flag in the dialog description. It has been restored now.
Dean Roddey
Explorans limites defectum
Posts: 40,483
Threads: 491
Joined: Aug 2002
05-19-2014, 04:58 PM
(This post was last modified: 05-19-2014, 05:11 PM by Dean Roddey.)
I just posted a 4.4.919, mainly just to get a fix out for a couple of things that were bugging people. There are a good many changes, but they are almost all either small things off the corners or the work that I'm doing on the auto-gen system. So there was little that might have caused any issues and it gets rid of some annoyances, so I went ahead and put one up.
Though the auto-gen menu is back and the configuration dialogs are there, the generation dialog doesn't do anything, or more to the point it's just wherever I left off. So don't try to run it or it might blow up real good. I'm just starting to implement the generation part and it could have all kinds of goobers.
You can play with the configuration dialogs to see if you think they are going to work out well. Of course it all works purely in terms of V2 drivers now, so if you aren't using V2 drivers, then it's not going to be of much use to you. If you just want to try the configuration stuff, you can always install the various device simulator drivers, all of which are V2 compliant (or have a V2 compliant version.)
Note that a late breaking change was made wrt to the naming conventions for V2 drivers where 'multi-unit' issues are concerned. So, in those drivers that implement multiple instances of a device class (multiple thermos, multiple zones, etc...), in the V2 world this now involves a tilde to separate the per-instance prefix from the main part of the field name. So what used to be, for instance, THERM#Kitchen_LowSetPnt is now THERM#Kitchen~LowSetPnt. This became necessary because the underscore is a generally available field name character, and it was impossible to determine if a field had a multi-unit prefix or not.
So, if you are using one of the handful of V2 drivers that were affected by this change, you will have to do a little search and replace on those affected fields. The ones that were affected are (only the V2 versions):
1. Omni TCP
2. Marantz 8801
3. Monoprice MZ6
Also some device simulator drivers were affected, but probably few folks would be using those other than me, at least in any long term sort of way.
The changes are:
- In order to help diagnose service related issues in the field, set up a specialized log file in the low level service support code, which will log to just a simple text file in the Bin directory (too low level to understand the CQC file structure and where the log directory is, so it just logs to where its executable is.) This will log out all of the power and service operations the service is asked to perform, to help better understand what is going on. It's impossible to really debug services in the normal way.
- The client service, at least on some OS versions, was coming back from a sleep in paused mode. Used the above new logging stuff to figure out what was going on. It turned out that the driver doesn't want to change its state from running during sleep, so I was misunderstanding that. The system won't start it back up if you do that since going back to running is either manual or at startup, not coming back from sleep. So it should just stop its processing, and nothing else. When the system tells it to continue, just start up the processing again.
- The Brultech driver doesn't deal with watt counter rollover. The Brultech guy provided some simple changes to deal with that, so they were incorporated into the driver. Basically checking for rollover and adding some fixed value to the deltas that are thusly affected.
- Update the Weather device class to include current precipitation and forecast day precip probability. Update the Weather Underground and device simulator drivers to comply. For V2, correct a long standing spelling error in the WU driver, changing PercipProb to the correct PrecipProb. The V1 version was left unchanged for backwards compatibility.
- The action editor dialog, the thing where you can see the Notes field of a template if you click the value helper of an invoke popup/popout command's parameters parameter, isn't working if a relative template path is used. The action editor doesn't find the template because it's using the relative path as is. It only works for full paths, so we need to deal with that. And we might support relative paths in other things in the future, so having a way to deal with that in the action editor will be useful.
- In the States tab of widgets, add a 'negate' flag. This will cause the widget to use the negated result of the evaluation of the states. This way, you don't have to set on one state for X is true and another for X is false. You can just set up either a true or false state, and either use the state result as is or negate it, in any given widget.
- We need to have a one shot flag on the interface state evaluation. Normally the widgets only evaluate the states if there are changes in the state results. If they call come out false the first time around, not unusual, then the widgets aren't asked to evaluate them because previously all false states wouldn't have caused anything to happen and it wouldn't look like a change anyway since the default initial values of the states are false. However, now that we have the negate flag (see above), a false state result may be treated as true. So we have to insure that the initial pass is always shown to the widgets. After that it's ok to only do it if the value of one of the states actually changes from the previous one.
- The advanced media item browser is only showing minutes for the runtime of anything that is less than an hour. It should be showing minutes and seconds.
- The standard window focus handler doesn't deal quite right in some cases with nested windows. When it looks for the next tabbable window, it will move forward and then start looking (to make sure it gets beyond the current tabbed window.) But, it was always going to the next sibling, not taking into account that the current window may have tabbable child windows, so you couldn't get to those children.
- There's some sort of bug in the VRCOP driver that is leaving a field id unset in some circumstances. Keep this from making the driver go offline for now, and log info when it happens so that we can figure out what field is doing this and get it completely fixed.
- It looks like another variation of Z-Wave scene controller is one that is purely a scene controller but sends scene actuator configuration messages instead of scene activation messages, so update the scene controller class to watch for those.
- Create a new 'Clr Light' semantic field type. This is something worth having a specific semantic type for.
- Some thermos in the Tekmar system, when in particular modes, will report a low slab setpoint of 39, when it's supposed to not go below 40. No way to make them stop, so lower the low end of the field limit for slab setpoint to 39. That means you can write 39 as well, which would fail because it's not legal, but that's probably not too likely.
- Update the Hue and lighting device simulator drivers to support the new Clr Light device class mentioned above, which also includes upgrading the Hue driver to support a V2 compliant version.
- The Octava HDMI matrix driver has a bug where it checks the incoming input number to be >0 and < max sources, but it should be <= max sources, else it'll put the field into error if you select input 4.
- The previous drop added a check on the start of a click or gesture, to refuse to do anything if the widget is hidden or disabled. However, it forgot to check first whether anything was hit. If not, then it would make a call on a null pointer and cause an error. So if you clicked in the background somewhere it could cause an exception.
- A late breaking change in the V2 driver architecture field naming conventions as it relates to multi-unit issues. The sub-unit prefix is now terminated by a tilde, so something like AUD#Z1~Volume and so forth. This was necesary to make that prefix unambiguously identifiable in a field name.
- The drivers affected by the above change appear to be the HAI Omni (V2 version, which uses multi-unit prefixes on thermos), the Marantz 8801, and the MonoPriceMZ6 multi-zone audio driver.
- Create a multi-zone audio device simulator. This will allow us to test out some stuff wrt multi-unit features of drivers in the V2 driver architecture, without having to have some real MZ audio hardware around all the time.
- Recent changes broke the display of the default template when in signage mode (and no initial template is set.) It is supposed to create a default white template with a centered CQC logo. But an error is being caused when it's setting up that default content and it fails.
- The new template caching option was added a while back on the IV to allow caching to be disabled. However, I didn't think about full screen mode, which removes the menu bar. When in full screen mode, when the IV tries to check/uncheck the menu item, it causes an error because the item it's trying to update isn't there. So it should only update the menu item initially upon load of the program, upon changing it via the menu, and upon exit from full screen mode. That'll make sure the menu item stays in sync, without causing problems.
Dean Roddey
Explorans limites defectum
Posts: 40,483
Threads: 491
Joined: Aug 2002
Version 4.4.920 is posted. This one introduces the last major feature prior to 4.5, which is the new auto-generation system. We have chosen to stick initially to a fairly small set of features, in order to get 4.5 out in a timely manner (or a less un-timely manner than it would have otherwise been), because there are SO many major new capabilities. We'll follow up shortly afterwards with another that expands upon it and also that includes more V2 compatible drivers, which is all that the new auto-gen will work with.
If you wan to just play with the auto-gen, you can always install some of the device simulator drivers, which are V2 compliant or have V2 versions. You could even do that in order to get all of the content spit out and then modify it for your own (non-V2) stuff if you wanted, in the meantime.
It currently supports music, movies, weather, security, and lights. The support for custom extensions (overlays and their corresponding tiles on the main page) isn't implemented in this drop, nor are the global actions stuff that were previously supported. Those will be in the next beta drop, or a subsequent beta drop at least.
There's no docs for the auto-gen system yet, but it's pretty straightforward. Unlike the old scheme, there is a global section, where you define weather sources, lights, media repo/renderer combinations, security areas, and so forth. Then, in the rooms, you refer to those configured bits. This way, if you change any of them in the global area, those changes are automatically seen by the rooms (though requiring a new generation pass of course.)
Once you have done a pass for the resolutions you want, the images will be there and won't change on subsequent passes, so you can check the 'skip images' option when you do the generation. This will significantly improve performance, since it only has to spit out the templates again.
The list of changes are:
- One more small goober in the default window focus handler that could cause tabbing not to move exactly as you might expect, particularly where list boxes with scroll bars were present.
- A problem in the Progress Bar widget will make it cause an exception when you edit one or the template that contains one, and cancel out of the edit dialog or hit Revert. A bitmap is not getting set up correctly for direct pixel access in that case.
- Update the Digital VU Meter widget. It never was particularly good, and it got kind of out of whack in the recent changes leading up to 4.5. Change it so that you can select the LED images it displays, to support both horz and vert orientations, to adjust the spacing between LED images, and to optionally only display those LEDs that are lit up instead of all of them. You provide 3 sets of unlit/lit images, for the low, mid and high ranges of the VU display. All the images must be the same size in the orientation direction or it's not going to work right. All images must be provided, even if not displaying unlit images. You can always just set them all to the lit images. You can also set all three sets to the same two (unlit/lit) images if you don't want the three different intensity ranges to be shown.
- The template pre-scaling dialog should set the IV engine into designer mode while it does the editing. Otherwise viewing time type stuff will be done, such as assigning default widget ids to all of the unnamed widgets.
- Update the search and replace such that, if you search the template object, states are included in that search since that's part of the template data. If fields is checked, then those will be searched. If Text is checked then the comparison values of the state expressions are searched.
- There is an issue with the caching scheme in that, if a client has already gotten a template downloaded, then the auto-gen deletes them all and re-generates them, they all get default initial serial numbers again, of 1. But the client may already have that value. We need to have our cache item base class start with a somewhat randomly generated number, to avoid this issue. It's still theoretically possible but very unlikely.
- When the web image widget was updated to support the auto-refresh, and the potentially fairly high speed of refreshing, it was changed so that the background thread that downloads the images just dumps out the raw data, and the GUI thread will pick that up, create the bitmap, and display it. However, I failed to handle exceptions from the creation of the bitmap, which is now happening in the GUI thread. So, if the data is funky in some way and causes the bitmap creation to fail, the exception happens in the GUI thread context and can kill the IV. Just because the raw data was parsed out, doesn't necessarliy mean it's kosher, so exceptions need to be caught there.
- Add a new action variable target command, GetNthEnumVal. So, given an index, N, get the Nth value from the enumerated limits of an enumerated string variable. This is very useful so you can load up a list browser from the enum values of one variable, and use the returned index to get the corresponding value in another enumerated variable that has parallel values in it. The value selected from the original variable's enumerated limits of course is provided as a runtime value, so it's already available directly. But there was no easy way to use the selected index (also an RTV) to get into another enumerated variable's list.
- Get a first cut at a new room config/auto-generation system out. This doesn't include support for global actions and custom overlays yet. Those will come next. But it includes all the other stuff, and should be enough for folks to start using, where V2 drivers are available to them.
- There are some issues on Win8 with the field browser, if you resize it, close it, then open it again. I made some changes that may be related to this issue, but we'll have to see what happens since I don't have a Win8 system to debug on.
- In the little mini-stack traces that are put into log events, add the process name, so that we can more easily understand when the trace is coming back from a remote call. So we know what happened over here and what happened over there. And, do another pass of adding more of these stack trace indicators. We need to do these passes in various areas of the code from time to time.
- If an error occurs during click/gesture handling, the popup doesn't indicate the error info, it's only logged. It would be nice to also see it for quicker analysis.
Dean Roddey
Explorans limites defectum
Posts: 40,483
Threads: 491
Joined: Aug 2002
Version 4.4.923 is posted. Except for one issue wrt to XML GW clients getting access to media metadata via the new (all in one big chunk) style format, AFAIK we are now feature complete for 4.5. So, at this point, we'll start fixing bugs as they are reported, and working on getting more drivers V2 compatible, and of course if there's something that was supposed to be there but we forgot somehow, we'll deal with that.
But, basically we are in the home stretch now. The last thing completed has been the new auto-generation system, so that's the freshest bits. It only works in terms of V2 drivers, so it'll be a little limited for some folks until we get more drivers converted. But it's there if you want to use it. You could always install some device simulator drivers for some functional areas, in order to generate the output and then modify it to support your particular devices, as a stop-gap measure, in order to get the nice graphics and layout and all that.
The new auto-gen is not really documented yet, though it's fairly straightforward. Ask in the beta discussion thread in the meantime if you have questions.
The list of changes for this drop are:
- Moving the new VU meters with the arrow keys within the designer doesn't redraw the LEDs in the new position, because it's only updating it's info if the size changes, and ignoring origin changes.
- There is an issue in the image caching, at least for web images, as brought out by Bryan's sport bar systems, which use them for fairly high speed frame capture. It could cause the IV to spontaneously fall down in a fairly profound way (no clues, nothing logged, nada.) I've had to sort of guess as to the correct fixes, because I can't reproduce it, so we'll see how it does. It has to do with having the caching option enabled, or the no caching option not enabled actually.
- Make sure that the pre-scaling stuff doesn't allow you to set an output scope that is underneath (contained within) the source scope where the souce templates are. This can cause a recursive freakout.
- The pre-scaling dialog doesn't disable the add/remove resolution buttons during the generation process, which could cause a freak out if they are changed while it's going on.
- There is an issue in the template pre-scaling wrt to getting image paths correctly updated. And it's also creating the image output tree under the target template output scope, which it shouldn't be doing. It's not putting any images there but it's recreating the source tree.
- Get the XMLGW server updated to return the new room configuration data. Still need to come up with how GW clients will download the new media metadata database info, which is now it all works not instead of them coming back to use for incremental info.
- When certain changes are made to the global auto-gen config, the current room in the room tab should be refreshed to get it into sync with the changes.
- Continue the auto-gen work to include custom overlays and global actions, and more refinements and fixes.
Dean Roddey
Explorans limites defectum
Posts: 40,483
Threads: 491
Joined: Aug 2002
06-10-2014, 04:09 PM
(This post was last modified: 06-10-2014, 04:59 PM by Dean Roddey.)
Version 4.4.925 has been posted, which should deal with the beta issues reported so far.
Note that the in progress V2 Elk driver is in there. Don't try to use it, since it is not baked yet.
You may get an error when you try to open your room configuration, or to generate templates based on that configuration. Something went awry in a previous version and allowed the data to be stored in some incorrect way. I'm not sure what happened and can't afford to spend a lot of time on it. This is just one of those 'using beta' things. If it happens, go to [cqc]\CQCData\SysCfg\ and delete the room cnofig files in there. Cycle the CQC service to get rid of any memory cached version, and then you should be back to scratch again. It shouldn't happen again, but of course definitely let us know if it does since it means something still isn't right. Don't just delete it again and leave it uncommented on.
The changes are:
- If a mixed case CML class path gets into the editor (i.e. not the actual same case for all letters) a case sensitive comparison in the IDE will fail to remove the current line marker since it doesn't think the current class is the displayed one. So, if you step through the code, each current line marker will just stay there. This typically happens when you type in part of a path and hit enter to open that directory, or you type in the whole path to open it.
- Though I hate to make such changes late in the process, one of the long standing shortcomings in some of the event triggers is the lack of the name of the zone, motion sensor, or load in the triggers. Originally it wasn't an issue since few drivers allowed for naming of things. Now, moving forward into V2, it will be much more common. So update the Load, Motion, and Zone triggers to also take a name. Add new '2' versions of the CML base driver class' methods that allow drivers to queue up those trigger types, so that a name can be passed as well. I'm not going to try to add new filter types for filtering by these names, but at least they are there to use in various ways.
- Automatically update any of the triggered event commands that read out the event info for the above affected event types, to add another target variable for the name value. This new parameter is optional, so it will just update them to have an empty value for that parameter, for backwards compatibility.
- The CAB was no longer sending OnSelect events when you select a multi-collection set and move to the Collection level of display, so put that back.
- Bump the quality level of the scaling used in those media repos that create thumbs automatically from the large art, to see if that makes the quality noticeably better without introducing a lot more overhead (given that large number of images that have to be processed in some repositories when the driver loads up the source content.)
- The Auto-Gen code that replicates an original source group of widgets that represents a light in the scrollable list of lights, wasn't correctly ungrouping all of the widgets before replicating them, effectively creating a new, one widget group each time on the light bulb widget, but with the same name which isn't legal. So if you tried ot edit one of them, it would complain when you tried to save it that the group name was already taken.
- Inc/Dec Adjust Button widgets shoudn't be creatable anymore, remove them from the designer's menu.
- Make non-caching the default setting for web image widgets, since it's typically not really needed.
- The CAB was forcing off the use of large art, because it was presumed to be a bad thing (constantly rescaling it for display of usually much smaller thumb images in the CAB), but some folks want to use it, so re-enable it as an option.
- If a program is already listening on a given port, if another one tries, the code never is able to open any interfaces to bind to and listen on. But, because it's checking all available interfaces, it doesn't error out if any single one fails. But, it needs to check at the end and then, if none worked, it should throw an error at that point. Otherwise, it will seem to have worked, but any calls to the listen method will never work, but it also won't block waiting for any incoming connection, so it can make a problem suck up a CPU. Also add a little more logging in there to make it clearer what is going on.
Dean Roddey
Explorans limites defectum
Posts: 40,483
Threads: 491
Joined: Aug 2002
Version 4.4.926 is posted. The primary thing is a new V2 compliant Elk driver, so those of you waiting for an Elk driver you can use with the new room config stuff, give it a try. Be sure of course to remove the old one first, client and server sides. The new one has a new client side driver. I wouldn't use the same moniker either, if you had the old one installer. Leave that alone in case you want to go back. The fields are going to be different anyway, being V2 type fields, so there wouldn't be a lot to gain in trying to keep the same moniker anyway.
It is a first cut of very substantial changes to a very complex driver, so I could have missed some stuff. But it should be basically working well. There's a lot more control over configuration of the various item types.
- Implement a V2 version of the Elk driver. Since we'll maybe never rewrite this driver again, take the opportunity, painful as it is, to rework it to a much better structure. It's a very old driver and a lot of technique has passed under the bridge by now. Make it work more like the RA2 and Omni driver, definining per-item type classes to track information about each configured item. This will allow us to support naming of items and a lot of other niceties, and make it far more maintainable. And we'll move the configuration out to an external text file, so that you can either use the client interface or just edit the file yourself. And with all the new options it will be a bit large to store in the config repo file now anyway. We also take this opportunity to fix some issues that existed with the old driver.
- The last couple drops have been getting the updating of the 'volume control' moniker and field (on the movie/music tiles of the home page and the sliders on the new playing screens.) The music stuff would end up getting the movie field.
- There was some confusion in the media renderer standard classes about getting the initial playlist mode set. The ones based on the C++ standard renderer class weren't getting the initial mode set, which is always Jukebox mode for all of the shipped renderers. So the mode would be Jukebox but the field would show Normal. The CML base class wasn't necessarily doing it optimally, so get them both in sync and optimal.
- If the renderers needed to force themselves out of random category mode, because an explicit enqueue or play is done, they weren't updating the playlist mode field to reflect this.
- The CAB's 'scroll to first char' thing should go to the last previous match if there's not a title that literally starts with the indicated character.
Dean Roddey
Explorans limites defectum
Posts: 40,483
Threads: 491
Joined: Aug 2002
Version 4.4.927 is posted. This one gets the Lutron RA2 driver up to V2 standards (the old one is still there as well.) Actually it's the same driver via different manifests that tell it to be V1'ish or V2'ish.
And, since it doesn't look like there will be any immediately forthcoming fixes for the breakages introduced in the last Sonos firmware update, I've disabled the grouping functionality in the Sonos Zone Player driver for now so that at least the driver loads and the other functionality is available. It can be turned back on later if this gets straightened out.
And the XML GW server should be OK now for the iOS guys to update their room config based driver to convert to the new V2 Way, which will ultimately be a lot better for them and users of their program.
- Create a V2 compliant version of the Lutron Radio RA2 driver. This one will be fairly straighforward.
- There is still an issue in the progress bar (in the designer at least) with a bitmap getting set up such that it doesn't allow direct pixel access when it needs to.
- Update the XML GW server to deal with the new media metadata database downloading. Remove all of the old piecemeal query stuff, which no longer would work, and replace it with a single download call. The caller passes in the last database serial number gotten (empty if the first time) and gets back either a new serial number and DB data or an indicator that he's already up to date.
- A last minute change in the previous drop was such that, if you don't have both music and movies configured for a room, the auto-gen will generate an error and not complete.
- Since the latest Sonos update broke the Group Management features of the Sonos ZP driver, remove that functionality from the driver so that at least the rest of the driver will work.
Dean Roddey
Explorans limites defectum
Posts: 40,483
Threads: 491
Joined: Aug 2002
Version 4.4.928 is posted. This is just to get the XML GW server caught up with the media architecture changes. Otherwise, it's the same as the previous drop.
- The XML GW message that is used to download repo artwork needs to be updated to use the image UID instead of a cookie. These clients won't work in terms of cookies anymore. They have all of the data already and have the ids of the images to use for queries. These ids are persistent, unlike cookies for most repos, so that's another reason they need to be used.
Dean Roddey
Explorans limites defectum
|