Giter Site home page Giter Site logo

dasher-project / dasher Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gnome/dasher

152.0 152.0 45.0 69.38 MB

Dasher

Home Page: http://www.inference.phy.cam.ac.uk/dasher/

License: GNU General Public License v2.0

HTML 0.02% Batchfile 0.01% XSLT 0.06% Python 0.88% C++ 23.73% C 71.17% Objective-C++ 0.81% Objective-C 0.26% Shell 0.07% Makefile 0.12% CMake 0.06% Java 2.65% Perl 0.01% M4 0.17% Rich Text Format 0.01% VBScript 0.01%
assistive-technology augmentative-communication

dasher's People

Contributors

aklapper avatar aurisc4 avatar behdad avatar cagdasgerede avatar changwoo avatar claudep avatar dbarnett avatar dmustieles avatar dmytro-bit avatar dooteo avatar frandieguez avatar gforcada avatar ipomoena avatar janderssonse avatar kelemeng avatar lbaudoin avatar marv-cz avatar mirosnik1 avatar mrkara avatar mtelka avatar mtrmac avatar pesder avatar piotrdrag avatar pmkovar avatar prlw1 avatar promixis avatar sehtia avatar takeshi-aihana avatar urmatej avatar yeager avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dasher's Issues

Speak-New doesn't work when the cursor is relocated

In the Oct10 version (and maybe before), there is still a problem with the speak new. It seems to work fine as long as the cursor does not change position but if the cursor is relocated to insert words within previously typed text, it messes up what it speaks so that instead of speaking the newly typed text, it speaks some of the previously typed text that happens to be at the end of the text string.

Speech should use language for selected alphabet

Dasher should speak in the language corresponding to the selected alphabet instead of speaking everything as if it were in the system locale's language. For instance, if you select the French alphabet and enter some French words, it should speak those words using French pronunciation regardless of whether the system locale is set to en, es, or any other language's locale.

All commands in control box should be configurable

On behalf of @smoothsaling
control.xml file. The nodes for move forward, move backward, delete forward, delete backward, and new, all seem pretty obvious. But, I don't see the options for pause, speak, and copy. Is that in a separate file? Ultimately, it would be nice if you could edit which controls are displayed in the control box and in which order through the preferences.

Control box delete problem in 10/10 version

In the Oct10 version, there is a problem with the control box delete options. All 4 of the delete back options only move the cursor to the beginning of the text but don't delete anything. The delete forward works but only after first returning to the beginning of the text so it deletes the wrong text.

Dasher should support a --version option

Most programs accept a --version argument to run them in a mode that prints the program version and exits, e.g.:

$ ls --version
ls (GNU coreutils) 8.21
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Richard M. Stallman and David MacKenzie.

Dasher completely ignores a --version arg if I pass it and starts normally instead. It doesn't seem to have any way to query the version besides loading the GUI and checking Help>About.

Win32 add Shortcuts to start dasher with 4 profiles.

"Dasher for conversation" - dasher.exe /config speak
"Dasher for giving speeches" - dasher.exe /config prepared_speech
"Dasher for editing" - dasher.exe /config edit
'"Dasher direct entry" - dasher.exe /config direct

Multiple alphabets in same alphabet file should share langcode

In the alphabet files in Data/alphabets/, it feels brittle duplicating the same langcode into multiple alphabets for the same language when it's generally the same for every alphabet in the same alphabet file. Any alphabet that doesn't have the same langcode as the others in the file is very likely to be a bug.

What would you think about making it an attribute or subelement at the "<alphabets>" level?

Clarify "Don't save" option to "Quit without saving"

A positive description like "Quit without saving" would be more self-explanatory than "Don't save" on the unsaved changes prompt. The "Don't save" and "Don't quit" options look too similar and I always have to stare at the options for a second to figure out which one I want.

Speak-New fried after Delete

The Speak-New command in the Control box sometimes (often) doesn't work or it says a bunch of numbers and nonsense. It works fine when you first start but the first time I use the delete in the control box, the Speak-New gets fried every time.

Linux:Option to disable confirm on quit

I'd like an option in Dasher Preferences to disable the "Are you sure you wish to quit?" prompts when I try to close Dasher.

When there's unsaved text there's a slightly different "Do you want to save your changes?" with a few additional options for saving to a file. I'd like to be able to turn that off, too, and only save explicitly, possibly as an additional option to not prompt for unsaved changes.

words per minute calculator

A not essential but really cool feature that might help in marketing would be if Dasher had a built in words per minute calculator. Besides the obvious features, I would recommend that there be an option for the training file to be disabled so that there is a base line for different people be able to compare scores. I think this would be a very useful and much used tool.

Extending red line into the white space

It is a minor issue but the red line that connects the crosshair to the cursor doesn't extend into the white space to the right of the letter horizon. I have an always on top icon on the right side of my screen that is in the middle of that white space and the lack of the red line makes it more difficult to select that button. Selecting show mouse location helps but is still difficult in bright light. Can the red line be set to extend to the right of the colored boxes and letters?

Dasher linux crashes with SIGSEGV in CDasherModel::ExpandNode

Dasher linux crashes with SIGSEGV in CDasherModel::ExpandNode in the pNode->SetFlag call.

This happens more often after pausing the application in a debugger.
Call stack:
timer_callback Timer.cpp:9
CDasherControl::TImerEvent DasherControl.cpp:492
Dasher::CDasherInterfaceBase::NewFrame DasherInterfaceBase.cpp:535
Dasher::CDasherInterfaceBase::Redraw DasherInterfaceBase.cpp:569
Dasher::AmortizedPolicy::apply ExpansionPolicy.cpp:130
Dasher::BudgettingPolicy::apply ExpansionPolicy.cpp:86
Dasher::CExpansionPolicy::ExpandNode ExpansionPolicy.cpp:18
Dasher::CDasherModel::ExpandNode DasherModel.cpp:497

Change color of pause control

Another minor issue but I wish the pause control could be a color other than yellow because it looks the same as the capital letters. I would avoid red because that is the color of numbers. Maybe orange or a dark blue. I use the default European/Asian color scheme.

prevent dasher from starting when obscured by other window.

It happen to me several times. I am riding along, tablet is displaying screen saver, and out of the sudden dasher is speaking complete garbage, or whatever was written before.

Now, I know why.

I use start in the centre circle, because moving head mouse is quicker than finding that click button.
Another case where is bugs me is when I have multiple dashers open. One for polish and another for English. They are both maximized. And when I start using one of them, the other one also starts and write funny text. To prevent it I need to minimize one before using the other. It slows me down.

Editing all control box commands

I like being able to edit the content and order of the commands in the control box. Can the control.xml file contain all of the control box commands? Currently, the pause, speak, and copy commands are programmed elsewhere so they are uneditable.

Eyetracker Mode

In Dasher4.11, there is a control style called Eyetracker Mode that has been missing from subsequent versions. I don't use an eyetracker but I have friend who does who wants to try the latest version. Is there another control style that supports eyegaze or can Eyetracker Mode be returned?

win32 - ModuleControlLongSpin overflow - 4.11+

Values of min max for long spin control are too big for up down win32 control. Even in 32 flavors of messages.
{LP_SOCKET_INPUT_X_MIN, T_LONGSPIN, -2147480000, 2147480000, 1000, 10000, _("X minimum:")},
{LP_SOCKET_INPUT_X_MAX, T_LONGSPIN, -2147480000, 2147480000, 1000, 10000, _("X maximum:")},
{LP_SOCKET_INPUT_Y_MIN, T_LONGSPIN, -2147480000, 2147480000, 1000, 10000, _("Y minimum:")},
{LP_SOCKET_INPUT_Y_MAX, T_LONGSPIN, -2147480000, 2147480000, 1000, 10000, _("Y maximum:")},

Control box move and delete commands don't update dasher context - c++

Here is screenshot after typing "Hello ". In this context the most probable text is "my name" or "I am".
image

And now after typing "Hello " and going through control box [Move back to beginning of text]. As you see context didn't change. Still the most probable text is "my name" or "I am".This is wrong. I am at the beginning of text.
image 1

And I would expect that capital letters are the most probable. Like in screenshot below.
image 2

Dasher should fail for unrecognized command-line args

Unrecognized command-line args usually cause programs to fail with an exit code, e.g.

$ ls --walrus-face
ls: unrecognized option '--walrus-face'
Try 'ls --help' for more information.

But dasher will happily start the GUI no matter what options I pass it:

$ dasher --walrus-face
** Message: Opening GUI file: /usr/local/share/dasher/dasher.traditional.ui

Could we make it validate that it doesn't receive any unrecognized args?

Build fails on "for each" syntax in ControlManager.cpp

After 67b6544 I get build failures like error: expected '(' before 'each' on the "for each" syntax in ControlManager.cpp. Looks like that's C++/CLI syntax for foreach loops and only builds on Microsoft compilers.

Full error:

/bin/sh ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I../..   -pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12   -I. -g -O2 -MT ControlManager.lo -MD -MP -MF .deps/ControlManager.Tpo -c -o ControlManager.lo ControlManager.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. -pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 -I. -g -O2 -MT ControlManager.lo -MD -MP -MF .deps/ControlManager.Tpo -c ControlManager.cpp  -fPIC -DPIC -o .libs/ControlManager.o
ControlManager.cpp: In member function 'virtual Dasher::CControlBase::Action* Dasher::CControlManager::parseAction(const XML_Char*, const XML_Char**)':
ControlManager.cpp:378:9: error: expected '(' before 'each'
     for each (auto arg in arguments) {
         ^
ControlManager.cpp:378:14: warning: C++11 auto only available with -std=c++11 or -std=gnu++11 [enabled by default]
     for each (auto arg in arguments) {
              ^
ControlManager.cpp:378:15: error: expected primary-expression before 'auto'
     for each (auto arg in arguments) {
               ^
ControlManager.cpp:378:36: error: 'each' was not declared in this scope
     for each (auto arg in arguments) {
                                    ^
ControlManager.cpp:378:38: error: expected ';' before '{' token
     for each (auto arg in arguments) {
                                      ^
ControlManager.cpp:381:3: error: expected primary-expression before '}' token
   }
   ^
ControlManager.cpp:381:3: error: expected ';' before '}' token
ControlManager.cpp:381:3: error: expected primary-expression before '}' token
ControlManager.cpp:381:3: error: expected ')' before '}' token
ControlManager.cpp:381:3: error: expected primary-expression before '}' token
ControlManager.cpp:381:3: error: expected ';' before '}' token
ControlManager.cpp:382:7: error: decl-specifier invalid in condition
   if (auto action = m_actions[key.str()])
       ^
ControlManager.cpp:382:12: error: ISO C++ forbids declaration of 'action' with no type [-fpermissive]
   if (auto action = m_actions[key.str()])
            ^
ControlManager.cpp:382:40: error: invalid conversion from 'std::map<std::basic_string<char>, Dasher::CControlBase::Action*>::mapped_type {aka Dasher::CControlBase::Action*}' to 'int' [-fpermissive]
   if (auto action = m_actions[key.str()])
                                        ^
ControlManager.cpp:383:12: error: invalid conversion from 'int' to 'Dasher::CControlBase::Action*' [-fpermissive]
     return action;
            ^

autogen.sh fails with "configure: error: No method to send characters into another application found"

I'm trying to build dasher from source on Ubuntu Linux 14.04, but running ./autogen.sh I get a failure with this output:

…
checking for XML_Parse in -lexpat... yes
checking for ATSPI... no
checking for CSPI... no
checking for XTestFakeKeyEvent in -lXtst... no
configure: error: No method to send characters into another application found

Any idea what dependencies I need to install to satisfy that check?

Control manager does not resolve forward references.

Possible cause- taking address of vector element and than adding more elements to that vector. parent.push_back(NULL);
unresolvedRefs.push_back(pairCControlBase::NodeTemplate**,string(&(parent.back()),target));

make fails with "dasher_editor_external_atspi.cpp:69:75: error: invalid conversion"

While trying to build on Ubuntu Linux 14.04, make failed with this output:

libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 -I./../DasherCore -DPROGDATA=\"/usr/local/share/dasher\" -pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT libdashergtk_la-dasher_editor_external_atspi.lo -MD -MP -MF .deps/libdashergtk_la-dasher_editor_external_atspi.Tpo -c dasher_editor_external_atspi.cpp  -fPIC -DPIC -o .libs/libdashergtk_la-dasher_editor_external_atspi.o
dasher_editor_external_atspi.cpp: In function 'void dasher_editor_external_create_buffer(DasherEditor*)':
dasher_editor_external_atspi.cpp:69:75: error: invalid conversion from 'void (*)(AtspiEvent*, void*) {aka void (*)(_AtspiEvent*, void*)}' to 'AtspiEventListenerCB {aka void (*)(const _AtspiEvent*, void*)}' [-fpermissive]
   p->pFocusListener = atspi_event_listener_new(focus_listener, pSelf, NULL);
                                                                           ^
In file included from /usr/include/at-spi-2.0/atspi/atspi.h:38:0,
                 from dasher_editor_external_atspi.cpp:4:
/usr/include/at-spi-2.0/atspi/atspi-event-listener.h:82:1: error:   initializing argument 1 of 'AtspiEventListener* atspi_event_listener_new(AtspiEventListenerCB, gpointer, GDestroyNotify)' [-fpermissive]
 atspi_event_listener_new (AtspiEventListenerCB callback,
 ^
dasher_editor_external_atspi.cpp:70:75: error: invalid conversion from 'void (*)(AtspiEvent*, void*) {aka void (*)(_AtspiEvent*, void*)}' to 'AtspiEventListenerCB {aka void (*)(const _AtspiEvent*, void*)}' [-fpermissive]
   p->pCaretListener = atspi_event_listener_new(caret_listener, pSelf, NULL);
                                                                           ^
In file included from /usr/include/at-spi-2.0/atspi/atspi.h:38:0,
                 from dasher_editor_external_atspi.cpp:4:
/usr/include/at-spi-2.0/atspi/atspi-event-listener.h:82:1: error:   initializing argument 1 of 'AtspiEventListener* atspi_event_listener_new(AtspiEventListenerCB, gpointer, GDestroyNotify)' [-fpermissive]
 atspi_event_listener_new (AtspiEventListenerCB callback,
 ^
make[3]: *** [libdashergtk_la-dasher_editor_external_atspi.lo] Error 1
make[3]: Leaving directory `/home/dbarnett/projects/dasher/Src/Gtk2'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/dbarnett/projects/dasher/Src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/dbarnett/projects/dasher'
make: *** [all] Error 2

It looks like the same issue as https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=755343, which was supposedly fixed a year ago. Seeing if I can find a Debian patch that was never accepted upstream or something…

Dasher speech stops working on program close/restart

If I open Dasher, go to Preferences, and uncheck/recheck "Speak words as you write", then Dasher speaks each word as I pass through it. But if I close and reopen dasher, speech stops working until I repeat the uncheck/recheck step in Preferences.

I see this on Ubuntu Linux 14.04.

"Speak words as you write" speaks partial words if you back up and retype

The "Speak words as you write" feature speaks all letters since the last speech in a way that's unintuitive if you ever back up and retype partial words. I would expect if you backed up and retyped, it would speak everything since the last whitespace even if that includes letters it already spoke.

For example, if you type just<Space><Back>ice, it will type the word "justice" but it will speak just… ice instead of just… justice. It's easy to accidentally hit the corner of the Space box when you're typing some words like "justice" with a big Space box.

The Linux version leaks memory.

In several places the Gtk2/... code returns char* or const char* without specifying if the memory should be released and often without releasing it even though it should.
Example:
'dasher_editor_get_context' returns the value from gtk_text_buffer_get_text, then in CDasherControl::GetContext the value is converted to a std::string but never freed with g_free.

It would probably be easier to change the return values to be std::string so the caller doesn't have to read the documentation for proper handling.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.