Introducción

Esta API de cliente permite a una aplicación comunicarse con NVDA para hacer cosas tales como verbalizar texto o emitir un mensaje en braille.
La API de cliente está programada como una dll (biblioteca de vínculos dinámicos). Se puede llamar a las funciones de esta dll desde cualquier lenguaje de programación que soporte inspección y llamada a símbolos en una dll (tales como ctypes en Python) o enlazar con ella, como pasa en el caso de C++.

¿Qué se incluye en el paquete de descarga?

Nota: los archivos de cabecera y las bibliotecas se construyen junto con nvdaHelper. Si quieres construirlos por ti mismo, mira la documentación relativa a la compilación de NVDA Helper en el repositorio del código fuente.

  • nvdaControllerClient32.dll: la dll que contiene todas las funciones. Se puede usar en aplicaciones de 32 bits. Puedes distribuirla con tu aplicación.
  • nvdaControllerClient32.lib y nvdaControllerClient32.exp: las bibliotecas de importación y exportación para nvdaControllerClient32.dll (usadas al enlazar en código C/C++).
  • nvdaControllerClient64.dll, nvdaControllerClient64.lib y nvdaControllerClient64.exp: igual que arriba, pero para usarse con aplicaciones de 64 bits.
  • nvdaController.h: un archivo de cabecera de C que contiene las declaraciones de todas las funciones disponibles.
  • example_python.py: un programa de ejemplo de Python que usa la API de cliente del controlador de NVDA.
  • example_c.c: el código fuente de un programa de ejemplo en C que usa la API de cliente del controlador de NVDA.

Funciones disponibles

Todas las funciones de esta dll devuelven 0 si se ejecutan bien y un número distinto de 0 si ha habido algún fallo. El fallo puede darse porque la biblioteca no se puede comunicar con NVDA, o porque la función se ha llamado de forma inadecuada. Los códigos de error devueltos por estas funciones son códigos de error estándar de Windows.
Consulta nvdaController.h para ver la definición de todas las funciones disponibles. Cada función está documentada con comentarios.

Licencia

La API de cliente para el controlador de NVDA está cubierta por la GNU Lesser General Public License (LGPL) versión 2.1. Para simplificar, esto significa que puedes usar la biblioteca en cualquier aplicación. Sin embargo, si modificas la biblioteca debes contribuir con la comunidad aportando tus cambios tal y como se especifica en esta licencia. Dispones de una copia del archivo license.txt junto a la biblioteca, en la descarga de más abajo.

Descarga

Pulsa este enlace para descargar la API de cliente para el controlador de NVDA
Una vez descargada, necesitarás 7-zip o un descompresor compatible para acceder al contenido del archivo.

Contenido del archivo nvdaController.h

/* this ALWAYS GENERATED file contains the definitions for the interfaces */

/* File created by MIDL compiler version 7.00.0555 */
/* at Fri Feb 19 11:21:40 2010
*/
/* Compiler settings for interfaces\nvdaController\nvdaController.idl, interfaces\nvdaController\nvdaController.acf:
Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING( ) */

#pragma warning( disable: 4049 ) /* more than 64k source lines */

/* verify that the version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include “rpc.h”
#include “rpcndr.h”

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of
#endif // __RPCNDR_H_VERSION__

#ifndef __nvdaController_h__
#define __nvdaController_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */

#ifdef __cplusplus
extern “C”{
#endif

#ifndef __NvdaController_INTERFACE_DEFINED__
#define __NvdaController_INTERFACE_DEFINED__

/* interface NvdaController */
/* [implicit_handle][version][uuid] */

/* [comm_status][fault_status] */ error_status_t __stdcall nvdaController_testIfRunning( void);

/* [comm_status][fault_status] */ error_status_t __stdcall nvdaController_speakText(
/* [string][in] */ const wchar_t *text);

/* [comm_status][fault_status] */ error_status_t __stdcall nvdaController_cancelSpeech( void);

/* [comm_status][fault_status] */ error_status_t __stdcall nvdaController_brailleMessage(
/* [string][in] */ const wchar_t *message);

extern handle_t nvdaControllerBindingHandle;

extern RPC_IF_HANDLE nvdaController_NvdaController_v1_0_c_ifspec;
extern RPC_IF_HANDLE NvdaController_v1_0_c_ifspec;
extern RPC_IF_HANDLE nvdaController_NvdaController_v1_0_s_ifspec;
#endif /* __NvdaController_INTERFACE_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif