Re: [Audyssey] BGT And Screen Readers And Unicode And More
Awesome news, thanks! Going to/from wchar_t pointers in BGT seems to be the only missing link now. I'll be sure to test the rest of my code to make sure it is as Unicode-compatible as I am claiming. :) No need to be in a big hurry, as I said my personal projects don't really involve games This request is purely for a proof-of-concept bit of code, so I definitely appreciate the effort of implementing conversion functions. Thanks, Davy -Original Message- From: Gamers [mailto:gamers-boun...@audyssey.org] On Behalf Of Philip Bennefall Sent: Friday, June 06, 2014 22:14 To: Gamers Discussion list Subject: Re: [Audyssey] BGT And Screen Readers And Unicode And More I'm glad you got it working! I've put the Unicode conversion functions on my todo list, and will get to it as soon as I have a bit of a gap in my schedule. Kind regards, Philip Bennefall On 2014-06-05 20:53, Davy Kager wrote: Right, I successfully copy-pasted together a basic wrapper written for BGT. I want to keep things as one-on-one as possible, so I didn't introduce private helper methods to get slightly more compact code. Boolean type variables are a little tricky, I ended up internally using uint8 for those. Now all that remains is to convert from string object to an array of ints and the other way around. But apart from that I can already query if the active screen reader supports speech and/or braille output, so I consider it an evening well spent. :) -Original Message- From: Gamers [mailto:gamers-boun...@audyssey.org] On Behalf Of Davy Kager Sent: Thursday, June 05, 2014 14:33 To: phi...@blastbay.com; 'Gamers Discussion list' Subject: Re: [Audyssey] BGT And Screen Readers And Unicode And More Hi Philip, Thanks, all of that makes sense. The main reason why I am firmly sticking to Unicode is because different screen readers support different formats, but they all appear to support Unicode. I also feel that in this day and age, providing both an ANSI and a Unicode version of the same function isn't the way to go. So for me it'd be the most convenient if BGT could gain a mechanism to prepare a Unicode string. This might find some use in other people's applications too! Passing int-pointers is no problem to me. I want to write a wrapper specifically so that third-party developers don't have to worry about those nitty gritty details. In all honesty, I haven't done much testing with actual Unicode or UTF-8 data yet. Maybe my implementation is still failing somewhere too. I originally started working on it for a project that is totally unrelated to gaming. Porting it to as many things as possible just seems a logical next step. But adding functionality (such as ANSI functions) to support one specific programming language is taking it a little too far as long as I don't need it myself. In fact, QuentinC has a screen reader library (UniversalSpeech) which already has ANSI functions, so for real developers out there that'd be a good option. Now for adding screen readers to BGT... Here is the official documentation for the SuperNova API, which admittedly isn't very satisfying: http://www.yourdolphin.com/productdetail.asp?id=1z=14page=682#api Their API is more limited than most, but both synchronous and asynchronous speech are available. ZoomText is a different story. They have a very extensive COM implementation much like Window-Eyes, but the company doesn't want to provide support for it outside of their own scripting facilities. It also requires a registry patch to get it to work because their installer program forgets to set things up properly. I have reported this to them and they indicated they'd fix it at some point. Once you applied the patch it works great (from C++ at least), but I'm not sure if it's suited for BGT. Might be better to wait for their developers to fix the installer so end-users don't have to apply patches (which most users won't want to do anyway). Thanks, Davy -Original Message- From: Gamers [mailto:gamers-boun...@audyssey.org] On Behalf Of Philip Bennefall Sent: Thursday, June 05, 2014 13:48 To: Gamers Discussion list Subject: Re: [Audyssey] BGT And Screen Readers And Unicode And More Hi Davy, The foundation of BGT is Ansi, which is a sort of historical accident from back when I first started the project. I did not envision it ever needing Unicode because it was primarily meant to use audio and any printed text would be mostly for debugging. There was no Sapi support planned at that time, and screen readers were even further from my mind. This was in mid 2009. Were I designing it today, it would be a Unicode application. With that said, there are definitely ways to solve it. Since BGT is Ansi, you can use UTF-8 strings without any trouble. Converting from UTF-8 to wide characters on Windows is trivial, so that's a function that I could definitely
Re: [Audyssey] BGT And Screen Readers And Unicode And More
I'm glad you got it working! I've put the Unicode conversion functions on my todo list, and will get to it as soon as I have a bit of a gap in my schedule. Kind regards, Philip Bennefall On 2014-06-05 20:53, Davy Kager wrote: Right, I successfully copy-pasted together a basic wrapper written for BGT. I want to keep things as one-on-one as possible, so I didn't introduce private helper methods to get slightly more compact code. Boolean type variables are a little tricky, I ended up internally using uint8 for those. Now all that remains is to convert from string object to an array of ints and the other way around. But apart from that I can already query if the active screen reader supports speech and/or braille output, so I consider it an evening well spent. :) -Original Message- From: Gamers [mailto:gamers-boun...@audyssey.org] On Behalf Of Davy Kager Sent: Thursday, June 05, 2014 14:33 To: phi...@blastbay.com; 'Gamers Discussion list' Subject: Re: [Audyssey] BGT And Screen Readers And Unicode And More Hi Philip, Thanks, all of that makes sense. The main reason why I am firmly sticking to Unicode is because different screen readers support different formats, but they all appear to support Unicode. I also feel that in this day and age, providing both an ANSI and a Unicode version of the same function isn't the way to go. So for me it'd be the most convenient if BGT could gain a mechanism to prepare a Unicode string. This might find some use in other people's applications too! Passing int-pointers is no problem to me. I want to write a wrapper specifically so that third-party developers don't have to worry about those nitty gritty details. In all honesty, I haven't done much testing with actual Unicode or UTF-8 data yet. Maybe my implementation is still failing somewhere too. I originally started working on it for a project that is totally unrelated to gaming. Porting it to as many things as possible just seems a logical next step. But adding functionality (such as ANSI functions) to support one specific programming language is taking it a little too far as long as I don't need it myself. In fact, QuentinC has a screen reader library (UniversalSpeech) which already has ANSI functions, so for real developers out there that'd be a good option. Now for adding screen readers to BGT... Here is the official documentation for the SuperNova API, which admittedly isn't very satisfying: http://www.yourdolphin.com/productdetail.asp?id=1z=14page=682#api Their API is more limited than most, but both synchronous and asynchronous speech are available. ZoomText is a different story. They have a very extensive COM implementation much like Window-Eyes, but the company doesn't want to provide support for it outside of their own scripting facilities. It also requires a registry patch to get it to work because their installer program forgets to set things up properly. I have reported this to them and they indicated they'd fix it at some point. Once you applied the patch it works great (from C++ at least), but I'm not sure if it's suited for BGT. Might be better to wait for their developers to fix the installer so end-users don't have to apply patches (which most users won't want to do anyway). Thanks, Davy -Original Message- From: Gamers [mailto:gamers-boun...@audyssey.org] On Behalf Of Philip Bennefall Sent: Thursday, June 05, 2014 13:48 To: Gamers Discussion list Subject: Re: [Audyssey] BGT And Screen Readers And Unicode And More Hi Davy, The foundation of BGT is Ansi, which is a sort of historical accident from back when I first started the project. I did not envision it ever needing Unicode because it was primarily meant to use audio and any printed text would be mostly for debugging. There was no Sapi support planned at that time, and screen readers were even further from my mind. This was in mid 2009. Were I designing it today, it would be a Unicode application. With that said, there are definitely ways to solve it. Since BGT is Ansi, you can use UTF-8 strings without any trouble. Converting from UTF-8 to wide characters on Windows is trivial, so that's a function that I could definitely introduce. As far as the dll interface is concerned you'd just be passing an int* pointer whenever a wide character string was needed. Alternatively you could introduce UTF-8 conversion support to your own dll, which would be a nice convenience feature I'd say. I am certainly not opposed to adding native support for more screen readers if there is enough interest. Have you got any links to official references, redistribution terms for the dll's if any, etc? If so I would be more than happy to look into it. Kind regards, Philip Bennefall On 2014-06-05 10:02, Davy Kager wrote: Hi, NOTE: this post is sort of way too nerdy for this list, but I thought I’d send it anyway, for the wanna-be coder’s general delight. Now that BGT is FREE I
[Audyssey] BGT And Screen Readers And Unicode And More
Hi, NOTE: this post is sort of way too nerdy for this list, but I thought I’d send it anyway, for the wanna-be coder’s general delight. Now that BGT is FREE I thought I’d try and see if I could write a wrapper for my screen reader abstraction library so that my screen reader of choice (SuperNova) could be supported by games written using this toolkit. I also like having as many wrappers as possible for my library, to make people’s lives easier if they use something that isn’t C++. So trying out BGT sounded like a good idea to spend a Thursday morning. Anyway, turns out BGT is into ANSI where strings are concerned. So naturally I have some questions: - Is there a way to call external DLLs that use Unicode strings (which is what Windows has been doing for a real long time). - If not, is there any chance BGT can gain native support for SuperNova and maybe also ZoomText? Opensourcing the thing sounds like a fun idea, though I see several issues with that too and don’t intend on starting that debate here and now. Just wondered if there’s a way to deal with Unicode strings that doesn’t involve depriving Philip of a few hours of sleep. Using int or long might work, but then still you’d need to convert these into a string object, and those are ANSI so they’ll pout at you real bad and then bluntly refuse. Note that I use Java myself, and not necessarily for games, so this is not a message saying “HELP GUYS I AM STUCK AND ABSOLUTELY NEED TO GET THIS RESOLVED OR ELSE I CANNOT WRITE MY GAME!!!” I just want to provide as many wrappers for my DLL as I can without overdoing it, and BGT is definitely a big thing in the blind gamers community. That reminds me, I should probably try to do AutoIt too. Anyone know if that allows you to call DLLs in a non-evil way? Thanks, Davy --- Gamers mailing list __ Gamers@audyssey.org If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org. You can make changes or update your subscription via the web, at http://audyssey.org/mailman/listinfo/gamers_audyssey.org. All messages are archived and can be searched and read at http://www.mail-archive.com/gamers@audyssey.org. If you have any questions or concerns regarding the management of the list, please send E-mail to gamers-ow...@audyssey.org.
Re: [Audyssey] BGT And Screen Readers And Unicode And More
Right, figured out the AutoIt part: it's possible and seems to work well. Right now, where games are concerned, I'm only missing BGT. -Original Message- From: Gamers [mailto:gamers-boun...@audyssey.org] On Behalf Of Davy Kager Sent: Thursday, June 05, 2014 10:02 To: 'Gamers Discussion list' Subject: [Audyssey] BGT And Screen Readers And Unicode And More Hi, NOTE: this post is sort of way too nerdy for this list, but I thought I’d send it anyway, for the wanna-be coder’s general delight. Now that BGT is FREE I thought I’d try and see if I could write a wrapper for my screen reader abstraction library so that my screen reader of choice (SuperNova) could be supported by games written using this toolkit. I also like having as many wrappers as possible for my library, to make people’s lives easier if they use something that isn’t C++. So trying out BGT sounded like a good idea to spend a Thursday morning. Anyway, turns out BGT is into ANSI where strings are concerned. So naturally I have some questions: - Is there a way to call external DLLs that use Unicode strings (which is what Windows has been doing for a real long time). - If not, is there any chance BGT can gain native support for SuperNova and maybe also ZoomText? Opensourcing the thing sounds like a fun idea, though I see several issues with that too and don’t intend on starting that debate here and now. Just wondered if there’s a way to deal with Unicode strings that doesn’t involve depriving Philip of a few hours of sleep. Using int or long might work, but then still you’d need to convert these into a string object, and those are ANSI so they’ll pout at you real bad and then bluntly refuse. Note that I use Java myself, and not necessarily for games, so this is not a message saying “HELP GUYS I AM STUCK AND ABSOLUTELY NEED TO GET THIS RESOLVED OR ELSE I CANNOT WRITE MY GAME!!!” I just want to provide as many wrappers for my DLL as I can without overdoing it, and BGT is definitely a big thing in the blind gamers community. That reminds me, I should probably try to do AutoIt too. Anyone know if that allows you to call DLLs in a non-evil way? Thanks, Davy --- Gamers mailing list __ Gamers@audyssey.org If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org. You can make changes or update your subscription via the web, at http://audyssey.org/mailman/listinfo/gamers_audyssey.org. All messages are archived and can be searched and read at http://www.mail-archive.com/gamers@audyssey.org. If you have any questions or concerns regarding the management of the list, please send E-mail to gamers-ow...@audyssey.org. --- Gamers mailing list __ Gamers@audyssey.org If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org. You can make changes or update your subscription via the web, at http://audyssey.org/mailman/listinfo/gamers_audyssey.org. All messages are archived and can be searched and read at http://www.mail-archive.com/gamers@audyssey.org. If you have any questions or concerns regarding the management of the list, please send E-mail to gamers-ow...@audyssey.org.
Re: [Audyssey] BGT And Screen Readers And Unicode And More
Hi Davy, The foundation of BGT is Ansi, which is a sort of historical accident from back when I first started the project. I did not envision it ever needing Unicode because it was primarily meant to use audio and any printed text would be mostly for debugging. There was no Sapi support planned at that time, and screen readers were even further from my mind. This was in mid 2009. Were I designing it today, it would be a Unicode application. With that said, there are definitely ways to solve it. Since BGT is Ansi, you can use UTF-8 strings without any trouble. Converting from UTF-8 to wide characters on Windows is trivial, so that's a function that I could definitely introduce. As far as the dll interface is concerned you'd just be passing an int* pointer whenever a wide character string was needed. Alternatively you could introduce UTF-8 conversion support to your own dll, which would be a nice convenience feature I'd say. I am certainly not opposed to adding native support for more screen readers if there is enough interest. Have you got any links to official references, redistribution terms for the dll's if any, etc? If so I would be more than happy to look into it. Kind regards, Philip Bennefall On 2014-06-05 10:02, Davy Kager wrote: Hi, NOTE: this post is sort of way too nerdy for this list, but I thought I’d send it anyway, for the wanna-be coder’s general delight. Now that BGT is FREE I thought I’d try and see if I could write a wrapper for my screen reader abstraction library so that my screen reader of choice (SuperNova) could be supported by games written using this toolkit. I also like having as many wrappers as possible for my library, to make people’s lives easier if they use something that isn’t C++. So trying out BGT sounded like a good idea to spend a Thursday morning. Anyway, turns out BGT is into ANSI where strings are concerned. So naturally I have some questions: - Is there a way to call external DLLs that use Unicode strings (which is what Windows has been doing for a real long time). - If not, is there any chance BGT can gain native support for SuperNova and maybe also ZoomText? Opensourcing the thing sounds like a fun idea, though I see several issues with that too and don’t intend on starting that debate here and now. Just wondered if there’s a way to deal with Unicode strings that doesn’t involve depriving Philip of a few hours of sleep. Using int or long might work, but then still you’d need to convert these into a string object, and those are ANSI so they’ll pout at you real bad and then bluntly refuse. Note that I use Java myself, and not necessarily for games, so this is not a message saying “HELP GUYS I AM STUCK AND ABSOLUTELY NEED TO GET THIS RESOLVED OR ELSE I CANNOT WRITE MY GAME!!!” I just want to provide as many wrappers for my DLL as I can without overdoing it, and BGT is definitely a big thing in the blind gamers community. That reminds me, I should probably try to do AutoIt too. Anyone know if that allows you to call DLLs in a non-evil way? Thanks, Davy --- Gamers mailing list __ Gamers@audyssey.org If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org. You can make changes or update your subscription via the web, at http://audyssey.org/mailman/listinfo/gamers_audyssey.org. All messages are archived and can be searched and read at http://www.mail-archive.com/gamers@audyssey.org. If you have any questions or concerns regarding the management of the list, please send E-mail to gamers-ow...@audyssey.org. --- Gamers mailing list __ Gamers@audyssey.org If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org. You can make changes or update your subscription via the web, at http://audyssey.org/mailman/listinfo/gamers_audyssey.org. All messages are archived and can be searched and read at http://www.mail-archive.com/gamers@audyssey.org. If you have any questions or concerns regarding the management of the list, please send E-mail to gamers-ow...@audyssey.org.
Re: [Audyssey] BGT And Screen Readers And Unicode And More
Hi Philip, Thanks, all of that makes sense. The main reason why I am firmly sticking to Unicode is because different screen readers support different formats, but they all appear to support Unicode. I also feel that in this day and age, providing both an ANSI and a Unicode version of the same function isn't the way to go. So for me it'd be the most convenient if BGT could gain a mechanism to prepare a Unicode string. This might find some use in other people's applications too! Passing int-pointers is no problem to me. I want to write a wrapper specifically so that third-party developers don't have to worry about those nitty gritty details. In all honesty, I haven't done much testing with actual Unicode or UTF-8 data yet. Maybe my implementation is still failing somewhere too. I originally started working on it for a project that is totally unrelated to gaming. Porting it to as many things as possible just seems a logical next step. But adding functionality (such as ANSI functions) to support one specific programming language is taking it a little too far as long as I don't need it myself. In fact, QuentinC has a screen reader library (UniversalSpeech) which already has ANSI functions, so for real developers out there that'd be a good option. Now for adding screen readers to BGT... Here is the official documentation for the SuperNova API, which admittedly isn't very satisfying: http://www.yourdolphin.com/productdetail.asp?id=1z=14page=682#api Their API is more limited than most, but both synchronous and asynchronous speech are available. ZoomText is a different story. They have a very extensive COM implementation much like Window-Eyes, but the company doesn't want to provide support for it outside of their own scripting facilities. It also requires a registry patch to get it to work because their installer program forgets to set things up properly. I have reported this to them and they indicated they'd fix it at some point. Once you applied the patch it works great (from C++ at least), but I'm not sure if it's suited for BGT. Might be better to wait for their developers to fix the installer so end-users don't have to apply patches (which most users won't want to do anyway). Thanks, Davy -Original Message- From: Gamers [mailto:gamers-boun...@audyssey.org] On Behalf Of Philip Bennefall Sent: Thursday, June 05, 2014 13:48 To: Gamers Discussion list Subject: Re: [Audyssey] BGT And Screen Readers And Unicode And More Hi Davy, The foundation of BGT is Ansi, which is a sort of historical accident from back when I first started the project. I did not envision it ever needing Unicode because it was primarily meant to use audio and any printed text would be mostly for debugging. There was no Sapi support planned at that time, and screen readers were even further from my mind. This was in mid 2009. Were I designing it today, it would be a Unicode application. With that said, there are definitely ways to solve it. Since BGT is Ansi, you can use UTF-8 strings without any trouble. Converting from UTF-8 to wide characters on Windows is trivial, so that's a function that I could definitely introduce. As far as the dll interface is concerned you'd just be passing an int* pointer whenever a wide character string was needed. Alternatively you could introduce UTF-8 conversion support to your own dll, which would be a nice convenience feature I'd say. I am certainly not opposed to adding native support for more screen readers if there is enough interest. Have you got any links to official references, redistribution terms for the dll's if any, etc? If so I would be more than happy to look into it. Kind regards, Philip Bennefall On 2014-06-05 10:02, Davy Kager wrote: Hi, NOTE: this post is sort of way too nerdy for this list, but I thought I’d send it anyway, for the wanna-be coder’s general delight. Now that BGT is FREE I thought I’d try and see if I could write a wrapper for my screen reader abstraction library so that my screen reader of choice (SuperNova) could be supported by games written using this toolkit. I also like having as many wrappers as possible for my library, to make people’s lives easier if they use something that isn’t C++. So trying out BGT sounded like a good idea to spend a Thursday morning. Anyway, turns out BGT is into ANSI where strings are concerned. So naturally I have some questions: - Is there a way to call external DLLs that use Unicode strings (which is what Windows has been doing for a real long time). - If not, is there any chance BGT can gain native support for SuperNova and maybe also ZoomText? Opensourcing the thing sounds like a fun idea, though I see several issues with that too and don’t intend on starting that debate here and now. Just wondered if there’s a way to deal with Unicode strings that doesn’t involve depriving Philip of a few hours
Re: [Audyssey] BGT And Screen Readers And Unicode And More
Check out the library object. Its apparently sort of in beta, but it should give you what you want. P.S: I've never used the object myself, so take the above with a grain of salt. -Original Message- From: Gamers [mailto:gamers-boun...@audyssey.org] On Behalf Of Davy Kager Sent: Thursday, June 05, 2014 10:02 To: 'Gamers Discussion list' Subject: [Audyssey] BGT And Screen Readers And Unicode And More Hi, NOTE: this post is sort of way too nerdy for this list, but I thought I�셝 send it anyway, for the wanna-be coder�셲 general delight. Now that BGT is FREE I thought I�셝 try and see if I could write a wrapper for my screen reader abstraction library so that my screen reader of choice (SuperNova) could be supported by games written using this toolkit. I also like having as many wrappers as possible for my library, to make people�셲 lives easier if they use something that isn�셳 C++. So trying out BGT sounded like a good idea to spend a Thursday morning. Anyway, turns out BGT is into ANSI where strings are concerned. So naturally I have some questions: - Is there a way to call external DLLs that use Unicode strings (which is what Windows has been doing for a real long time). - If not, is there any chance BGT can gain native support for SuperNova and maybe also ZoomText? Opensourcing the thing sounds like a fun idea, though I see several issues with that too and don�셳 intend on starting that debate here and now. Just wondered if there�셲 a way to deal with Unicode strings that doesn�셳 involve depriving Philip of a few hours of sleep. Using int or long might work, but then still you�셝 need to convert these into a string object, and those are ANSI so they�셪l pout at you real bad and then bluntly refuse. Note that I use Java myself, and not necessarily for games, so this is not a message saying �쏦ELP GUYS I AM STUCK AND ABSOLUTELY NEED TO GET THIS RESOLVED OR ELSE I CANNOT WRITE MY GAME!!!�� I just want to provide as many wrappers for my DLL as I can without overdoing it, and BGT is definitely a big thing in the blind gamers community. That reminds me, I should probably try to do AutoIt too. Anyone know if that allows you to call DLLs in a non-evil way? Thanks, Davy --- Gamers mailing list __ Gamers@audyssey.org If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org. You can make changes or update your subscription via the web, at http://audyssey.org/mailman/listinfo/gamers_audyssey.org. All messages are archived and can be searched and read at http://www.mail-archive.com/gamers@audyssey.org. If you have any questions or concerns regarding the management of the list, please send E-mail to gamers-ow...@audyssey.org. --- Gamers mailing list __ Gamers@audyssey.org If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org. You can make changes or update your subscription via the web, at http://audyssey.org/mailman/listinfo/gamers_audyssey.org. All messages are archived and can be searched and read at http://www.mail-archive.com/gamers@audyssey.org. If you have any questions or concerns regarding the management of the list, please send E-mail to gamers-ow...@audyssey.org. --- Gamers mailing list __ Gamers@audyssey.org If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org. You can make changes or update your subscription via the web, at http://audyssey.org/mailman/listinfo/gamers_audyssey.org. All messages are archived and can be searched and read at http://www.mail-archive.com/gamers@audyssey.org. If you have any questions or concerns regarding the management of the list, please send E-mail to gamers-ow...@audyssey.org.
Re: [Audyssey] BGT And Screen Readers And Unicode And More
Right, I successfully copy-pasted together a basic wrapper written for BGT. I want to keep things as one-on-one as possible, so I didn't introduce private helper methods to get slightly more compact code. Boolean type variables are a little tricky, I ended up internally using uint8 for those. Now all that remains is to convert from string object to an array of ints and the other way around. But apart from that I can already query if the active screen reader supports speech and/or braille output, so I consider it an evening well spent. :) -Original Message- From: Gamers [mailto:gamers-boun...@audyssey.org] On Behalf Of Davy Kager Sent: Thursday, June 05, 2014 14:33 To: phi...@blastbay.com; 'Gamers Discussion list' Subject: Re: [Audyssey] BGT And Screen Readers And Unicode And More Hi Philip, Thanks, all of that makes sense. The main reason why I am firmly sticking to Unicode is because different screen readers support different formats, but they all appear to support Unicode. I also feel that in this day and age, providing both an ANSI and a Unicode version of the same function isn't the way to go. So for me it'd be the most convenient if BGT could gain a mechanism to prepare a Unicode string. This might find some use in other people's applications too! Passing int-pointers is no problem to me. I want to write a wrapper specifically so that third-party developers don't have to worry about those nitty gritty details. In all honesty, I haven't done much testing with actual Unicode or UTF-8 data yet. Maybe my implementation is still failing somewhere too. I originally started working on it for a project that is totally unrelated to gaming. Porting it to as many things as possible just seems a logical next step. But adding functionality (such as ANSI functions) to support one specific programming language is taking it a little too far as long as I don't need it myself. In fact, QuentinC has a screen reader library (UniversalSpeech) which already has ANSI functions, so for real developers out there that'd be a good option. Now for adding screen readers to BGT... Here is the official documentation for the SuperNova API, which admittedly isn't very satisfying: http://www.yourdolphin.com/productdetail.asp?id=1z=14page=682#api Their API is more limited than most, but both synchronous and asynchronous speech are available. ZoomText is a different story. They have a very extensive COM implementation much like Window-Eyes, but the company doesn't want to provide support for it outside of their own scripting facilities. It also requires a registry patch to get it to work because their installer program forgets to set things up properly. I have reported this to them and they indicated they'd fix it at some point. Once you applied the patch it works great (from C++ at least), but I'm not sure if it's suited for BGT. Might be better to wait for their developers to fix the installer so end-users don't have to apply patches (which most users won't want to do anyway). Thanks, Davy -Original Message- From: Gamers [mailto:gamers-boun...@audyssey.org] On Behalf Of Philip Bennefall Sent: Thursday, June 05, 2014 13:48 To: Gamers Discussion list Subject: Re: [Audyssey] BGT And Screen Readers And Unicode And More Hi Davy, The foundation of BGT is Ansi, which is a sort of historical accident from back when I first started the project. I did not envision it ever needing Unicode because it was primarily meant to use audio and any printed text would be mostly for debugging. There was no Sapi support planned at that time, and screen readers were even further from my mind. This was in mid 2009. Were I designing it today, it would be a Unicode application. With that said, there are definitely ways to solve it. Since BGT is Ansi, you can use UTF-8 strings without any trouble. Converting from UTF-8 to wide characters on Windows is trivial, so that's a function that I could definitely introduce. As far as the dll interface is concerned you'd just be passing an int* pointer whenever a wide character string was needed. Alternatively you could introduce UTF-8 conversion support to your own dll, which would be a nice convenience feature I'd say. I am certainly not opposed to adding native support for more screen readers if there is enough interest. Have you got any links to official references, redistribution terms for the dll's if any, etc? If so I would be more than happy to look into it. Kind regards, Philip Bennefall On 2014-06-05 10:02, Davy Kager wrote: Hi, NOTE: this post is sort of way too nerdy for this list, but I thought I’d send it anyway, for the wanna-be coder’s general delight. Now that BGT is FREE I thought I’d try and see if I could write a wrapper for my screen reader abstraction library so that my screen reader of choice (SuperNova) could be supported by games written using this toolkit. I also like having