I tracked down this thread after our PM conversation. Is it your intent that new driver standards ONLY include variable and functions that ALL drivers of said class can implement, or rather compliant drivers MUST implement listed functions if the projectors are capable of doing so. I ask because the list of minimum fields is quite short compared to what some projectors can handle. Mine for instance probably has over a hundred fields that can be written or read.

I wouldn't expect all the fields to be available in advanced projector drivers, but some functionality would seem to be key for a driver supporting some projectors. For example, my rs46 has five lens presets for CIH screen setups. This isn't AR, but a stored lens zoom/shift/focus. That, and color space, 3d on/off, anamorphic mode, and picture mode would seem to be common use fields.

I know many projectors won't have some of these functions, but I guess that's where my initial question comes in.

Flamin' Noobie...
Warp speed now and don't give me any of that dilythium crystal crap!

V2 drivers can implement functionality above and beyond the device classes they implement. It just won't be available to generic/reusable logic that works in terms of the device class interfaces. Keep in mind also that drivers can implement multiple device classes and some of those other things may be (already or eventually) covered under some other device class.

Speaking of which, the Power and PowerState fields that were originally defined for this class are now part of the Power device class, so I need to remove that from this class. The power state defined more generically in the Power class but effectively is the same thing.

The source input field was removed. The driver should implement the Switcher class for input switching. Sorry for any confusion but this is an important change and it needed to be done before 4.5 goes out, since it would be very difficult to do afterwards. This allows us to control switching on any type of device generically, which is an important capability.

This change will be implemented in 4.4.929, and any shipped drivers will be updated to comply.

As we get into this one, it looks like we may want to have separate CurAspectRatio and SetAspectRatio fields, as with some other devices the reason being that some of them may require asymmetric sets of values. Even at the simplest, if a projector cannot provide current AR, in order to fake it the driver would want to have an initial Unknown value, but that's not a legal value to set, so we don't want it showing up in the list of settable ARs.

Also, if a projector had any sort of 'auto' modes, then that's settable, but would never be returned as an actual valid AR, so the value written to the field is not what would end up in the field.

So, it looks like, while we still have the chance given that there are no projector V2 drivers actually shipped yet, we may want to move to a read-write SetAspectRatio and a read only CurAspect ratio. That would leave us the flexibility to deal with a much wider range of projector devices.

We could do as we did with the thermo field and leave AspectRatio as read/write and what you use to set the current AR, and just add a new read only field CurAspectRatio which shows the actual current AR set by the projector. That would keep it similar to how the thermo works, and how likely we will want to do Switcher as well, and it avoids breakable in the case of Switcher and Thermo.

In devices where they are symmetrical, then both would show the same thing. If not, then the AspectRatio would stay at what you wrote to it, since that's the currently 'set' AR mode, and the CurAspectRatio would show the actual AR set by the proejctor.

Went ahead and updating this one to use two separate fields, as mentioned above. Since the only V2 projector driver so far is one that Mark is working on, and not posted yet, he can update that one after this drop, then we can get it into the build. Well, there's also a device simulator projector driver as well, which I'll update. I'll update the validation stuff to match this for the next drop, and then this guy should be good.