Zalogowany jako: gość

Forum

Wątek: Wypracujmy stanowisko w sprawie współpracy

Wróć do listy wątków

2 z 2

Poprzednia

21 z 24: pajper

Wkleję tu, co łatwiej będzie znaleźć.
Zrezygnowałem z całej obsługi plików, bo zapomniałem, że Ruby od wersji 1.9.3 obsługuje unikod w plikach, a więc miast bawić się w własne api, można śmiało użyć wbudowanego z bardzo dobrym rezultatem.



Wszystkie te funkcje działają w standardzie unicode.

Moduł Elten::Engine::Speech:
int say(string text, bool interrupt=true) - wypowiada podany tekst, jeśli interrupt==true, to przerywa poprzednio wypowiadany komunikat, zwraca 0, jeśli udane, wpp. niezero,
int stop(void) - przerywa gadanie, zwraca 0, jak przerwano, wpp. niezero,
bool is_speaking(void) - zwraca, czy synteza jest używana,
int get_volume(void) - zwraca głośność,
int set_volume(int vol) - ustawia głośność, skala 0-100, dalej analogicznie,
int get_pitch(void),
int set_pitch(int pitch);
int get_voice(void),
int set_voice(int voice),
string[] list_voices(void) - listuje w tablicy nazwy głosów,
bool can_changevoice(void) - zwraca, czy można zmieniać głos, jeśli false, funkcje do zmiany i listowania głosów nie będą wykorzystane.



Moduł Elten::Engine::UI:
int window_create(void) - tworzy okno, zwraca uchwyt lub 0,
int window_update(int window_id) - odświeża okno, zwraca 0 jak udane, wpp. niezero,
int window_state(int window_id) - zwraca status okna (0 - ukryte, 1 - na wierzchu, 2 - zminimalizowane),
int[] get_keyboard(void) - zwraca tablicę ze stanami klawiszy, wedle konwencji Windowsowej, przy innej konwencji musi dokonać konwersji,
char get_keyboardletter(int[] keyboard) - funkcja sprawdza, jaka litera jest wciśnięta na klawiaturze, (uwzględniając układ klawiatury), jeśli api systemu to obsługuje, jeśli nie obsługuje, zwraca nil.


Moduł Elten::Engine::Clipboard:
int set_text(string text) - wstawia do schowka text, zwraca długość tekstu,
string get_text(void) - zwraca tekst ze schowka.


moduł Elten::Engine::Shell:
string get_directory(int clsid) - zwraca ścieżkę do danego katalogu, np. profilu użytkownika, wedle Windowsowskiej konwencji clsid,
int get_language(void) - zwraca kod używanego w systemie języka.


Moduł Elten::Engine::Kernel:
string get_computername(void) - zwraca nazwę komputera,
string get_commandline(void) - zwraca linię, jaką uruchomiono proces,
int get_os(void) - zwraca system: 1 - windows, 2 - linux, 3 - mac,
string get_systemversion(void) - zwraca sformatowaną wersję systemu, np. "Linux Debian 5.0" czy "Windows 10 version 10.0.17134.765",
long get_memoryused(void) - zwraca pamięć RAM użytą przez proces,
long get_memoryavailable(void) - zwraca ilość dostępnej pamięci operacyjnej.


Kilka funkcji dojdzie, bo brakuje jeszcze m.in. obsługi zewnętrznych procesów, ale to chyba najważniejsze.
#StandWithUkraine Shoot for the Moon. Even if you miss, you'll land among the stars.
05.06.2019 00:34

22 z 24: pajper

Dodam, że konwersje konwencji kodów klawiszy czy clsid fajnie byłoby robić na makrach, w ten sposób będzie to działało szybciej. ;)
#StandWithUkraine Shoot for the Moon. Even if you miss, you'll land among the stars.
05.06.2019 00:37

23 z 24: EugeniuszPompiusz

Na wstępie; naprostujcie mnie, jeśli źle rozumuję.

Konwersję, kodów klawiszy... że w sensie między platformami?czy jak?
Nie ukrywam, że wolałbym, by klawiatura na windowsie była as native as possible, zważywszy na probley, jakie zglaszamy nie tylko my w obecnym silniku obsługi.

Kwestia okien i ich "wysokopoziomowego" traktowania też mnie, użytkownika win 7 niepokoi zważywszy, że widzę, jak obecne okienko lubi się z alt+tabem, alt+shift+tabem, szczególnie ciągłym, i ile czasu zajmuje wyjście z okna Elten, jeśli człowiek wszedł w nie nie chcący.
Abstrachuję już od tego, że przy ilości okien pod alt+tabem typu 20 plus, Elten bardzo skutecznie rozwala chierarchię okienek widzianą przez alt+tab alt+shift+tab.

Rozmawiałem z Dawidem, który problemu nie odczuwa, natomiast ja zwalam to na kark przyzwyczajenia, nie zaś nieodczuwania, ale może to moja drobna uszczypliwostka. :)

W każdym razie, o ile pamiętam, Klango (koncepcja podobna) na problem nie cierpiało.

Dobra, bo serwuję tu straszny offtop. tak czy inaczej, rzucam pod rozwagę.
Sygnaturka.: "That seems to point up a significant difference between Europeans and Americans. A European says: 'I can't understand this, what's wrong with me?' An American says: 'I can't understand this, what's wrong with him?'" TERRY PRATCHETT
05.06.2019 16:50

24 z 24: pajper

@EugeniuszPompiusz nie, tutaj chodziło mi o coś zupełnie innego.
Klawiaturę można przekazać i przetworzyć możliwie wysokopoziomowo. Rzecz w tym, że kody klawiszy między Linuxem, Macem i Windowsem się różnią.
I na przykład klawisz ctrl to na Windowsie 0x11, na Pingwinku już niekoniecznie.
Aby sprawdzić, czy wciśnięty jest control, trzeba odpytać silnik o kod 0x11 dla Windowsa. Dlatego, jeśli platformą jest np. Linux, silnik musi konwertować między 0x11 a kodem Linuxowskim. I tak dalej.
Kwestia spójności danych.
#StandWithUkraine Shoot for the Moon. Even if you miss, you'll land among the stars.
05.06.2019 16:52

Wróć do listy wątków

2 z 2

Poprzednia

Nawigacja


Copyright (©) 2014-2024, Dawid Pieper