pax_global_header00006660000000000000000000000064121712206070014510gustar00rootroot0000000000000052 comment=c2cbeb215a66a606ed01b58fc0be513ebb373e7c aldo-0.7.8/000077500000000000000000000000001217122060700124435ustar00rootroot00000000000000aldo-0.7.8/AUTHORS000066400000000000000000000001011217122060700135030ustar00rootroot00000000000000Giuseppe "denever" Martino IZ8EQD aldo-0.7.8/COPYING000077700000000000000000000000001217122060700207022/usr/share/automake-1.11/COPYINGustar00rootroot00000000000000aldo-0.7.8/ChangeLog000066400000000000000000000653021217122060700142230ustar00rootroot000000000000002012-03-31 13:42 Giuseppe Martino * Added suggestion from Hannes Jochriem to print chars before koch * Added patch from Jeremy W. Sherman to fix crash due to changes in libao * Relased aldo 0.7.7 2009-01-16 17:42 Giuseppe Martino * Added soundcard selection patch from Corey Minyard. * Added a patch from Sam "SammytheSnake" Penny that adds support to upper-case and punctuation characters * Added patch from Corey Minyard that changes default koch sequence * Released aldo 0.7.6 2007-11-05 10:00 Giuseppe Martino * Released aldo 0.7.5 2007-11-05 09:53 Giuseppe Martino * configure.ac: Committed Diane VA3DB's patch 2007-10-03 19:54 Giuseppe Martino * src/audioworkspace.cc: Committed Diane VA3DB's patch 2007-08-19 15:36 Giuseppe Martino * src/: blocks.cc, keyer.cc, koch.cc, setup.cc, wave.cc: Removed unused #include 2007-07-01 09:25 Giuseppe Martino * THANKS, src/audioworkspace.cc: Committed Jan-Simon Möller's patch to smoth of audio output in aldo 2007-06-29 10:48 Giuseppe Martino * src/main.cc: Added #include in main.cc 2007-05-19 10:37 Giuseppe Martino * debian/: control, copyright, docs: Update debian package info 2007-05-19 10:35 Giuseppe Martino * include/koch.hh, src/koch.cc, src/koch_exc.cc, src/setup.cc: Change Koch method difficulty advancing 2007-05-16 11:52 Giuseppe Martino * ChangeLog, VERSION, configure.ac, src/textfile_exc.cc: Released 0.7.4 2007-05-16 11:43 Giuseppe Martino * include/dialog.hh, src/check.cc, src/menu.cc, src/setup.cc, src/textfile_exc.cc: Fixed EOF bug also in check.cc, setup.cc, textfile_exc.cc 2007-05-16 11:13 Giuseppe Martino * include/koch.hh, src/koch_exc.cc: (bug #19741) Fixed. Koch method skill is never saved. Fixing this bug I discovered that aldo doesn't save also speed, number of string, number of chars. 2007-05-16 10:50 Giuseppe Martino * include/dialog.hh, src/menu.cc: (bug #19742) Fixed. EOF on standard input sends program into infinite loop 2007-05-04 12:27 Giuseppe Martino * ChangeLog: Updated ChangeLog 2007-04-30 00:48 Thomas Herlea * src/check.cc: Put feedback legend for per-symbol statistics between double quotes and separated it from the stats with an empty line. 2007-04-30 00:44 Thomas Herlea * src/check.cc: Fixed the division by zero that could happen during computing statistics if a certain symbol had (by chance) never been keyed or if it had never been copied (regardless of whether it had been keyed or not). 2007-04-29 23:51 Thomas Herlea * src/check.cc: Replaced algorithm for generating and displaying the feedback for groups of symbols: - one loop for generating feedback cells - another loop for displaying the cells taking care of terminal width 2007-04-29 23:33 Thomas Herlea * include/resources.hh, src/check.cc: Added finer-grained feedback per symbol: - two points of view for the statistics: * what was keyed, to see which symbols tend not to be recognized * what was copied, to see which symbols tend to be "heard" even when they are not keyed - both count breakdown and percentage breakdown for each 2007-04-29 23:16 Thomas Herlea * src/check.cc: Expanded feedback legend in display_comparison() to include the MISSED_MARKER. Added double quotes in the output around the legend. 2007-04-29 23:09 Thomas Herlea * include/resources.hh: Expanded feedback legend in display_comparison() to include the MISSED_MARKER. Added double quotes in the output around the legend. 2007-04-29 13:59 Thomas Herlea * src/check.cc: Display missed symbols as missed, not as mistakes (both when explicitly entered as missed and when a group is too short). 2007-04-29 13:35 Thomas Herlea * src/check.cc: Replaced hardcoded markers '.' and '@' by macros and renamed the macro for '!'. 2007-04-28 12:19 Thomas Herlea * src/check.cc: Replaced inflexible macro COUNTER_WIDTH with function width_base_10(max_counter_value). 2007-04-25 21:15 denever * include/menu.hh: Comitted a patch from Martin Michlmayr FTBFS with GCC 4.3: error: extra ';' 2007-04-25 00:28 Thomas Herlea * src/check.cc: (bug #19692) When truncating a symbol group, the number of correctly copied occurrences of the symbols omitted from the group is not reset to zero any more. 2007-04-25 00:21 Thomas Herlea * src/check.cc: Ensure that the symbol group counter has the right values in the last cell row, regardless whether it is the only row or not. 2007-04-24 01:25 Thomas Herlea * src/check.cc: (bug #19674) In the loop for the incomplete row of cells, increment cell counter before creating cell because the previous loop left it at a value corresponding to the last cell of the previous row. 2007-04-24 01:22 Thomas Herlea * src/check.cc: Removed loop counter incrementation which duplicated the incrementation from the for statement. Now the rows of cells are tracked properly. 2007-04-24 01:20 Thomas Herlea * src/check.cc: (bug #19674) list iterators advance every time a cell is built, otherwise every row but the last one will just repeat its first cell. 2007-04-24 01:15 Thomas Herlea * src/check.cc: Replaced ostringstream::clear() by ostringstream::str(string). The old one just clears error flags, the new one "empties" the string. This way a new rows of cells replaces the old one instead of being appended to it. 2007-04-23 10:54 Thomas Herlea * src/check.cc: Moved function padding() to the top of the file because it will be used in future functions, too, and because it was separating the function display_comparison() from its comments. 2007-04-23 00:10 Giuseppe Martino * include/koch.hh, src/koch.cc, src/koch_exc.cc: Committed Thomas Herlea's Shuffle Koch Patch 2006-11-01 09:35 Giuseppe Martino * src/: koch_exc.cc, main.cc: Added support for automated writing of ~/.aldorc 2006-09-27 19:53 Giuseppe Martino * THANKS: Updated THANKS for Ferdinando Maresca 2006-09-27 19:48 Giuseppe Martino * src/check.cc: Added ++n at check.cc:264 2006-09-25 13:01 Giuseppe Martino * ChangeLog, VERSION, configure.ac: Released 0.7.3 * configure.ac: Added error message to AC_CHECK_LIB 2006-09-24 19:22 Giuseppe Martino * src/check.cc: Defined typedefs s/std:://g Rewrited display_symbol_rate using list and map iterators Rewrited mark_mistakes using string iterators Rewrited get_maked_strings using list iterators Used padding function in display_comparison Rewrited count_wrong_letters using string iterators 2006-09-24 12:13 Giuseppe Martino * src/check.cc: Rewrited display_simbol_rate in check.cc using map Fixed a bug in mark_mistakes in check.cc 2006-09-24 09:06 Giuseppe Martino * src/check.cc: Replaced padding function with string(int,'@') 2006-09-23 21:24 Giuseppe Martino * include/blocks.hh, include/koch.hh, src/blocks.cc, src/check.cc, src/koch.cc: Removed get_string, get_string_len, len, verify methods from interface of Blocks Added tokenize method to interface of Blocks Removed get_string, get_string_len, len, verify methods from interface of Koch Added tokenize method to interface of Koch Used tokenize in check.cc 2006-06-12 22:54 Giuseppe Martino * VERSION, configure.ac: Released 0.7.2 2006-06-12 22:35 Giuseppe Martino * src/textfile.cc: Fixed a typo at line 77 s/exc_string()/exc_string/ 2006-06-12 22:25 Giuseppe Martino * src/textfile.cc: Fixed temporary variable bug thanks to Jim Van Donsel 2006-06-12 22:08 Giuseppe Martino * src/: astream.cc, blocks.cc, blocks_exc.cc, check.cc, datafile.cc, keyer.cc, koch.cc, koch_exc.cc, main.cc, menu.cc, option.cc, qrz.cc, qrz_exc.cc, random.cc, section.cc, setup.cc, textfile.cc, textfile_exc.cc, wave.cc: Fixed Copyright notice 2006-04-12 20:40 Giuseppe Martino * include/: astream.hh, audioexcep.hh, audioworkspace.hh, blocks.hh, datafile.hh, dialog.hh, exception.hh, keyer.hh, koch.hh, menu.hh, option.hh, qrz.hh, resources.hh, section.hh, skill.hh, textfile.hh, wave.hh: Fixed a typo Released 0.7.1 2006-04-12 17:46 Giuseppe Martino * include/blocks.hh, include/keyer.hh, include/koch.hh, include/qrz.hh, include/textfile.hh, src/blocks.cc, src/menu.cc: Fixed to be gcc-4.2 compliant 2006-03-06 21:56 Giuseppe Martino * src/blocks.cc: Aggiunta la funzione membro: unsigned int Blocks::execute() 2005-10-28 13:34 Giuseppe Martino * include/Makefile.am, include/resources.hh, src/Makefile.am, src/resources.hh: Moved src/resource.hh in include/ 2005-10-27 23:31 Giuseppe Martino * THANKS, bootstrap, configure.ac: Fixed bootstrap.sh adding mkdir config Removed blank rows in THANKS 2005-10-27 10:25 Giuseppe Martino * include/random.hh, src/koch.cc: In koch method increase also blocks size and blocks number 2005-10-25 18:01 Giuseppe Martino * src/setup.cc: Fixed a bug in configfile in setup.cc with s/classic/blocks/g 2005-10-25 17:51 Giuseppe Martino * src/resources.hh: Fixed resources.hh with s/block/blocks/g 2005-10-25 17:45 Giuseppe Martino * src/: blocks.cc, blocks_exc.cc: Added missed files 2005-10-25 17:17 Giuseppe Martino * README: Updated README with s/Classic/Blocks method/g 2005-10-25 17:15 Giuseppe Martino * aldo.1: Updated aldo.1 2005-10-25 17:14 Giuseppe Martino * ChangeLog, debian/control, include/Makefile.am, include/blocks.hh, include/classic.hh, src/Makefile.am, src/check.cc, src/classic.cc, src/classic_exc.cc, src/main.cc, src/resources.hh: Renamed Classic method in Blocks method in resource.hh Renamed classic.hh in blocks.hh Renamed classic.cc in blocks.cc Renamed classic_exc in blocks_exc.cc Updated include/Makefile.am src/Makefile.am Renamed ::OnClassic() in ::OnBlocks() Renamed class Classic in class Blocks Updated debian/control 2005-10-23 21:41 Giuseppe Martino * src/: classic_exc.cc, qrz_exc.cc, textfile_exc.cc: Renamed each current_exercise in [classic|koch|textfile|qrz]_exc form 2005-10-23 21:37 Giuseppe Martino * include/astream.hh, include/audioexcep.hh, include/audioworkspace.hh, include/classic.hh, include/datafile.hh, include/dialog.hh, include/exception.hh, include/keyer.hh, include/koch.hh, include/menu.hh, include/option.hh, include/qrz.hh, include/random.hh, include/section.hh, include/skill.hh, include/textfile.hh, include/wave.hh, src/astream.cc, src/check.cc, src/classic.cc, src/classic_exc.cc, src/datafile.cc, src/keyer.cc, src/koch.cc, src/koch_exc.cc, src/main.cc, src/menu.cc, src/option.cc, src/qrz.cc, src/qrz_exc.cc, src/random.cc, src/resources.hh, src/section.cc, src/setup.cc, src/textfile.cc, src/textfile_exc.cc, src/wave.cc: Fixed copyleft/copyright typo 2005-10-23 21:36 Giuseppe Martino * README, src/resources.hh, src/setup.cc: Updated README for new setup menu Updated Koch setup menu for new Koch exercise options 2005-10-22 22:50 Giuseppe Martino * include/dialog.hh, src/koch_exc.cc: Fixed bug in dialog default management 2005-10-17 22:48 Giuseppe Martino * debian/control: Removed unused autotools-dev build dependency 2005-10-17 22:03 Giuseppe Martino * src/: resources.hh, setup.cc: Added koch skill setup 2005-10-17 21:51 Giuseppe Martino * src/: resources.hh, setup.cc: Added configuration of training set if characters 2005-10-17 21:17 Giuseppe Martino * include/dialog.hh, include/koch.hh, src/check.cc, src/koch.cc, src/koch_exc.cc: Added cin.ignore() in Dialog::show() Removed inline next() Added Koch::next() Fixed a typo in Koch constructor 2005-10-17 19:46 Giuseppe Martino * include/koch.hh, src/check.cc, src/koch_exc.cc: Added Koch::skill() Added Koch::get_chars() Added Koch::next() Added check(Koch) Added display_feedback(Koch) 2005-10-17 19:13 Giuseppe Martino * src/: classic_exc.cc, koch_exc.cc, qrz_exc.cc, textfile_exc.cc, resources.hh: Fixed a silly typo 2005-10-17 19:03 Giuseppe Martino * include/koch.hh, src/koch.cc, src/setup.cc: Fixed a silly typo in setup.cc Added Chars option for koch config Included koch.hh in koch.cc Fixed Koch constructor declaration 2005-10-17 17:58 Giuseppe Martino * VERSION: Changed to 0.7.1 version 2005-10-17 17:57 Giuseppe Martino * configure.ac: Changed to 0.7.1 2005-10-17 17:54 Giuseppe Martino * src/Makefile.am: Fixed src/Makefile.am adding resource.hh to aldo_SOURCES 2005-10-17 17:51 Giuseppe Martino * include/Makefile.am, src/Makefile.am: Updated include/Makefile.am src/Makefile.am for compiling new koch method 2005-10-17 17:49 Giuseppe Martino * include/classic.hh, include/dialog.hh, include/koch.hh, include/menu.hh, src/koch.cc: Added macro *_H checking in classic.hh dialog.h menu.hh Added new koch method 2005-10-17 15:39 Giuseppe Martino * aldo.1: Rewrited aldo man page 2005-10-16 19:40 Giuseppe Martino * debian/: control: Changed read from file description 2005-10-16 18:54 Giuseppe Martino * debian/control: Fixed long description 2005-10-16 18:20 Giuseppe Martino * debian/control: Long description rewrited one more time 2005-10-16 17:46 Giuseppe Martino * debian/control: Writed new long description 2005-10-16 17:23 Giuseppe Martino * debian/control: Remove two build dependencies marked as build-essential 2005-10-11 21:23 Giuseppe Martino * src/resources.hh: Changed to .hh headers 2005-10-11 21:18 Giuseppe Martino * include/Makefile.am, include/astream.h, include/audioexcep.h, include/audioworkspace.h, include/classic.h, include/datafile.h, include/dialog.h, include/exception.h, include/keyer.h, include/menu.h, include/option.h, include/qrz.h, include/random.h, include/section.h, include/skill.h, include/textfile.h, include/wave.h, src/astream.cc, src/audioworkspace.cc, src/check.cc, src/classic.cc, src/classic_exc.cc, src/datafile.cc, src/keyer.cc, src/koch_exc.cc, src/main.cc, src/menu.cc, src/option.cc, src/qrz.cc, src/qrz_exc.cc, src/random.cc, src/resources.h, src/section.cc, src/setup.cc, src/textfile.cc, src/textfile_exc.cc, src/wave.cc, include/astream.hh, include/audioexcep.hh, include/audioworkspace.hh, include/classic.hh, include/datafile.hh, include/dialog.hh, include/exception.hh, include/keyer.hh, include/menu.hh, include/option.hh, include/qrz.hh, include/random.hh, include/section.hh, include/skill.hh, include/textfile.hh, include/wave.hh: Changed to .hh headers 2005-10-11 08:27 Giuseppe Martino * src/: astream.cc, audioworkspace.cc, check.cc, classic.cc, classic_exc.cc, datafile.cc, keyer.cc, koch_exc.cc, main.cc, menu.cc, option.cc, qrz.cc, qrz_exc.cc, random.cc, section.cc, setup.cc, textfile.cc, textfile_exc.cc, wave.cc: Changed from *.cpp to *.cc 2005-10-11 08:22 Giuseppe Martino * debian/copyright, src/Makefile.am, src/astream.cpp, src/audioworkspace.cpp, src/check.cpp, src/classic.cpp, src/classic_exc.cpp, src/datafile.cpp, src/keyer.cpp, src/koch_exc.cpp, src/main.cpp, src/menu.cpp, src/option.cpp, src/qrz.cpp, src/qrz_exc.cpp, src/random.cpp, src/section.cpp, src/setup.cpp, src/textfile.cpp, src/textfile_exc.cpp, src/wave.cpp: Change from *.cpp to *.cc 2005-10-07 23:19 Giuseppe Martino * TODO, debian/copyright: The TODO doesn't seem to have much of value for the end-user. 2005-10-07 16:47 Giuseppe Martino * debian/aldo.substvars: Removed unuseful file 2005-10-07 15:40 Giuseppe Martino * src/Makefile.am: Removed README.sources from extradist * aldo-0.7.0 released 2005-10-07 12:05 Giuseppe Martino * NEWS: Updated News file 2005-10-07 11:06 Giuseppe Martino * ChangeLog, README: Updated ChangeLog Removed from README instructions to configure soundcard 2005-10-06 11:41 Giuseppe Martino * src/README.sources: Removed empty unused file 2005-10-04 20:11 Giuseppe Martino * include/dialog.h: Fixed a bug of default support in dialog 2005-10-03 22:17 Giuseppe Martino * ChangeLog, NEWS: ChangeLog Updated NEWS 2005-10-03 21:11 Giuseppe Martino * ChangeLog, include/astream.h, include/audioexcep.h, src/astream.cpp: Updated ChangeLog Used AudioException in astream.* Rewrited AudioException 2005-10-03 18:23 Giuseppe Martino * config/readline.m4: Removed unused file readline.m4 2005-10-03 17:35 Giuseppe Martino * ChangeLog, THANKS, include/dialog.h, src/koch_exc.cpp, src/menu.cpp, src/resources.h, src/setup.cpp: ChangeLog THANKS Updated Added default choice support Changed prompt string Used dialog with default choice 2005-10-01 15:58 Giuseppe Martino * src/setup.cpp: Fixed \0 getline bug 2005-09-29 14:41 Giuseppe Martino * debian/control, src/setup.cpp: Removed build-depend on libreadline5-dev Changed description Rewrited update_option function 2005-09-25 15:53 Giuseppe Martino * configure.ac, include/dialog.h, src/menu.cpp: Removed libreadline use 2005-09-25 13:43 Giuseppe Martino * include/keyer.h, src/astream.cpp, src/keyer.cpp: Added new set_* methods Removed wrong used of delete 2005-09-25 11:52 Giuseppe Martino * include/astream.h, include/audioexcep.h, include/classic.h, include/datafile.h, include/exception.h, include/keyer.h, include/menu.h, include/option.h, include/qrz.h, include/section.h, include/skill.h, include/textfile.h, src/check.cpp, src/classic.cpp, src/classic_exc.cpp, src/datafile.cpp, src/keyer.cpp, src/koch_exc.cpp, src/menu.cpp, src/option.cpp, src/qrz.cpp, src/qrz_exc.cpp, src/resources.h, src/section.cpp, src/textfile.cpp: Fixed typo in GPL disclaimer 2005-09-25 11:44 Giuseppe Martino * include/keyer.h: Fixed a typo in keyer constructor declaration 2005-09-25 11:32 Giuseppe Martino * include/: dialog.h, keyer.h: Used standard template declaration Rewrited interface in a more readable way 2005-09-20 21:31 Giuseppe Martino * include/astream.h: Added HAVE_AO_H checking befor include ao/ao.h 2005-09-20 21:26 Giuseppe Martino * VERSION, configure.ac, debian/control: Updated to 0.7.0 Added build-depend item on libao-dev 2005-09-20 20:31 Giuseppe Martino * Makefile.am, include/Makefile.am, src/Makefile.am: Removed note "based on Bob Harrington Makefile.am" because rewrited from scratch 2005-09-20 20:29 Giuseppe Martino * src/random.cpp: Fixed an unused variable warning about rightRangeRand with s/rightScaleRand/rightRangeRand at line 76 2005-09-20 20:23 Giuseppe Martino * include/keyer.h: Fixed position of m_audio e m_aws private variable 2005-09-20 20:21 Giuseppe Martino * THANKS: Updated about libao 2005-09-20 20:20 Giuseppe Martino * TODO, src/classic_exc.cpp, src/koch_exc.cpp, src/qrz_exc.cpp, src/resources.h, src/setup.cpp, src/textfile_exc.cpp: Removed any refernce to SoundCard configuration Removed last TODO item about alsa support 2005-09-20 20:06 Giuseppe Martino * include/Makefile.am, src/Makefile.am: Added audioworkspace.h to noinst_HEADERS Added audioworkspace.cpp to aldo_SOURCES 2005-09-20 20:02 Giuseppe Martino * include/audioworkspace.h, src/audioworkspace.cpp: Added from new libaudiosteam libao based 2005-09-20 19:53 Giuseppe Martino * configure.ac, include/astream.h, include/keyer.h, include/wave.h, src/astream.cpp, src/classic.cpp, src/classic_exc.cpp, src/keyer.cpp, src/koch_exc.cpp, src/qrz_exc.cpp, src/textfile_exc.cpp, src/wave.cpp: Added checks for libao Removed checks for OSS headers Installed new libaudiostream using libao Changed Keyer constructor arguments removed oastream arg\ with audioworkspace arg Removed Keyer::sample_rate() Removed Keyer::sample_size() Changed sample_type from double to char Removed Wave::Wave() Added Wave::Wave(size_type, sample_buffer_pointer) Removed SineWave and Pause Fixed indentation Used new Keyer constructor 2005-09-19 22:15 Giuseppe Martino * src/Makefile.am: Added ansi pedantic Wall flags 2005-09-17 01:34 Giuseppe Martino * src/: astream.cpp, menu.cpp, resources.h: Checking HAVE_CONFIG_H before including config.h 2005-09-15 10:10 Giuseppe Martino * debian/dirs: Removed /usr/sbin unused dir 2005-09-15 09:44 Giuseppe Martino * include/Makefile.am, src/astream.cpp: Fixed noinst_include_HEADERS to noinst_HEADERS Added missed include config.h 2005-09-15 09:36 Giuseppe Martino * include/Makefile.am: Changed include_HEADERS in noinst_include_HEADERS to avoid installation of include/*.h 2005-09-14 21:03 Giuseppe Martino * configure.ac, debian/copyright, src/astream.cpp, src/resources.h: Update autoconf support checking for more headers Using config.h in astream.cpp e resources.h 2005-09-13 11:05 Giuseppe Martino * debian/control: Removed a libc6-dev that was listed twice in build-depends Changed long description 2005-09-13 10:37 Giuseppe Martino * ChangeLog, NEWS, VERSION: Switched to 0.6.11 version Updated ChangeLog NEWS VERSION 2005-09-13 00:45 Giuseppe Martino * src/Makefile.am: Fixed wrong name s/README.Sources/README.sources in src/Makefile.am 2005-09-13 00:34 Giuseppe Martino * configure.ac, debian/control, src/Makefile.am: Removed unuseful build-depend on automake1.9 Changed to version 0.6.11 Added to distro README.Sources 0.6.11 Mon 12 Sep 2005 Giuseppe Martino Added man page file in top source dir aldo.1 Added readline.m4 in config/ Moved librandom/*.h in include/ Moved libdatafile/src/*.h in include/ Moved libkeyer/*.h in include/ Moved libmenus/*.h in include/ Moved libaudiostream/*.h in include/ Moved librandom/*.cpp in src/ Moved libdatafile/src/*.cpp in src/ Moved libkeyer/*.cpp in src/ Moved libmenus/*.cpp in src/ Moved libaudiostream/*.cpp in src/ Removed librandom/ Removed libdatafile/ Removed libkeyer/ Removed libmenus/ Removed libaudiostream/ Added include/Makefile.am Added *.cpp in src/Makefile.am In configure.ac removed AC_CHECK_HEADERS([readline/readline.h readline/history.h]) In configure.ac added VL_LIB_READLINE defined in readline.m4 In configure.ac removed lib*/Makefile from AC_CONFIG_FILES In configure.ac added include/Makefile in AC_CONFIG_FILES Fixed dialog.h and menu.cpp removing bogus use of cin and char* 0.6.10 Mon 12 Sep 2005 Giuseppe Martino Version burned 0.6.9 Mon 12 Sep 2005 Giuseppe Martino Version burned 0.6.8 Sat 3 Sep 2005 Bob Harrington Added Makefile.am Added Makefile.in Added configure.ac Added bootstrap Added librandom/Makefile.am Added libdatafile/src/Makefile Added libdatafile/src/Makefile.am Added libdatafile/Makefile.am Added libkeyer/Makefile.am Added libmenus/Makefile.am In librandom/random.h removed from Random class: void randomize(); Random(unsigned long seed); int ToC(); double real(); In librandom/random.cpp removed: void randomize(); Random(unsigned long seed); int ToC(); double real(); In librandom/random.cpp changed: Random::integer(int min, int max) to use rand() from stdlib In libexercise/classic.cpp Classic::randstring removed weights Wed 7 Sep 2005 Giuseppe Martino Writed ChangeLog file Fixed THANKS file Fixed GPL disclaimers In libmenu/dialog.h added prepocessor directive handling config macros In libmenu/menu.cpp added prepocessor directive handling config macros In libmenu/dialog.h added Choice::Choice(const Choice & cpy) In libmenu/dialog.h added Choice::operator=(const Choice & cpy) In libmenu/dialog.h added Choice::~Choice() aldo-0.7.8/Makefile.am000066400000000000000000000010401217122060700144720ustar00rootroot00000000000000# Copyright (C) 2005 Giuseppe Martino # # This file is free software; as a special exception the author gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. SUBDIRS = src include man_MANS = aldo.1 EXTRA_DIST = $(man_MANS) aldo-0.7.8/NEWS000066400000000000000000000070341217122060700131460ustar00rootroot000000000000000.7.0 Thu 04 2005 Giuseppe Martino Aldo uses libao. Removed readline use. Removed soundcard configuration. Many bugs and memory leaks fixed. 0.6.11 Mon 12 Sep 2005 Giuseppe Martino Fixed autoconf and automake support 0.6.10 Mon 12 Sep 2005 Giuseppe Martino Version burned 0.6.9 Mon 12 Sep 2005 Giuseppe Martino Version burned 0.6.8 Sat 3 Sep 2005 Bob Harrington Added autoconf and automake support Improved random number generator Wed 7 Sep 2005 Giuseppe Martino Fixed some bugs in libmenu Improved libmenu to use config.h 0.6.7 Wed 23 Feb 2005 Thomas Herlea Added exercise feedback about copying success per symbol. Added exercise feedback about positions of copy mistakes. In Setup, added hint about current parameter value to the input prompt for all, except the skill parameters. In Setup prompts, pressing Enter keeps the current parameter value. Made Koch method parameters controllable through Setup. Made difficulty parameters of Koch method persistent. 0.6.6 Sun 8 Aug 2004 Giuseppe Martino Readline support 0.6.5 Wed 20 Apr 2004 Giuseppe Martino Fixed a bug in Koch Method Setup Fixed for runnig with gcc 3.4.0 0.6.4 Wed 17 Mar 2004 Scott Lambert KC5MLE Makefile with PREFIX FreeBSD port 0.6.3 Sun 30 Gen 2004 Tom Mortell fixed the '9' bug 0.6.2 Tue 25 Nov 2003 Arlo Gittings KC0MNN Rewriting of README Restringing of resources.h 0.6.2 Tue 21 Nov 2003 Giuseppe Martino Code clean-up 0.6.1 Thu 20 Nov 2003 Giuseppe Martino Code Clean-up 21K to 18K Leaved i8n 0.6.0 Tue 28 Oct 2003 Giuseppe Martino New random string generator New keyer Exercises rewrited to support new keyer Added Callsign exercise aka QRZ exercise Added keyer setup Added soundcard setup New format for configuration file Improvements in libaudiostream Improvements in libmorse Improvements in libdatafile Fixed speed bug Removed speed in cpm Leave localization support 0.5.5 Sun 5 Oct 2003 Giuseppe Martino Fixed some bugs in Classic exercise generator THANKS TO Sandro Serafini Fixed bugs random number generator THANKS TO Sandro Serafini 0.5.4 Fri 3 Oct 2003 Giuseppe Martino Fixed grammar issues --> THANKS TO Tony Fixed a big bug in exercise generator --> THANKS TO Sandro Serafini Fixed a bug in 16bit sound routine --> THANKS TO Marco Bisioli New italian traslation Fixed a big bug in sound routines 0.5.3 Wed 1 Oct 2003 Giuseppe Martino Code cleanup from 24K to 19K 0.5.2 Tue 30 Set 2003 Giuseppe Martino Fixed a big bug: Aldo didn't play chars "r,p,l,f" --> THANKS TO Sandro Serafini 0.5.1 Sat 27 Set 2003 Giuseppe Martino Small fixes in libkeyer Small fixes in resources.h 0.5.0 Sun 6 Jul 2003 Giuseppe Martino Added verify exercise routine Removed check exercise routine Brandnew exercise generator Many improvements in libmorse Many improvements in libmenus Fixed a bug in libmenus --> THANKS TO Arlo Gittings KC0MNN Added koch method Added skill customizer Added exercise from text file New format for configuration filealdo-0.7.8/README000066400000000000000000000066661217122060700133410ustar00rootroot00000000000000When you start Aldo you will see the Main Menu: ************************************* * Aldo Main Menu * * 1: Blocks method * * 2: Koch method * * 3: Read from file * * 4: Callsigns * * 5: Setup * * 6: Exit * * * * Your choice: * ************************************* First of all you must set up Aldo for your PC, so select 5. Now you will see the Setup Menu: ********************************* * Setup Menu * * 1: Keyer Setup * * 2: Blocks method Setup * * 3: Koch method Setup * * 4: Qrz exercise Setup * * 5: Default Settings * * 6: Return to Main Menu * ********************************* Now you have to create the configuration file ~/.aldorc So select 5. Other choices in the Setup Menu: ********************************* * Setup Menu * * 1: Keyer Setup * * 2: Blocks method Setup * * 3: Koch method Setup * * 4: Qrz exercise Setup * * 5: Default Settings * * 6: Return to Main Menu * ********************************* By selecting 1 you can set up: 1) Pause before the start of keying, in seconds (default: 2) 2) Pause between two letters in a word (default: 3) 3) Pause between two words (default: 7) 4) Keying speed in wpm 5) Length of dot (default: 1) 6) Length of dash (default: 3) 7) Frequency of buzzer in Hz (default: 900) By selecting 2 you can set up training with the Blocks method exercise: 1) Length of words, in characters (default: 5) 2) Number of words (default: 3) 3) Character set (default: 1 - i.e. "e,i,s,h,t,m,o") By selecting 3 you can set up the keying speed for the Koch method. By selecting 4 you can set up the Callsign exercise. Specify your preferred callsign format, using "wildcards":. @ = random letter # = random number ? = optional letter $ = optional number A fixed letter or a fixed number, (such as "i" or "8" in the examples below), is used literally. For example: iz8@@@ is a format for callsigns like iz8bqi iz8eqd iz8tpz etc.. iz#m@@ gives iz0muv iz9mer iz8mrd etc.. iz#@@@ gives iz2qwe iz1ert etc.. i?8@@@ gives i8mro iz8eqd it8aa ih8epz etc.. i?#@@@ gives imro izqvo iz8mrt etc.. kc#@@@ gives kc0mnn kc1hjy kc9yup NOTE: Callsign formats must be lower case: e.g. iz#m@@, not IZ#M@@ Coming back to the Main Menu: ************************************* * Aldo Main Menu * * 1: Blocks method * * 2: Koch method * * 3: Read from file * * 4: Callsigns * * 5: Setup * * 6: Exit * * * * Your choice: * ************************************* Select 1 to train by the Blocks Method Select 2 to train by the Koch Method Select 3 for Aldo to read a text file from disk Select 4 to train by using random callsigns Now listen to your speakers. Identify the morse characters and write them on a sheet of paper. If you are unsure, use an underscore ( _ ) to hold the place of missed letters. When the exercise has finished you should enter the characters at the keyboard. Entering the characters at the keyboard, please replace underscore ( _ ) with @. ALDO will then compare your results with the correct version. If you have suggestions for additional features, please send me an email to denever@users.sf.net or subscribe aldo mailinglist at http://lists.sourceforge.net/lists/listinfo/aldo-main. Ciao ciao, Giuseppe Martino IZ8EQD. Thanks to: Arlo Gitting KC0MNN David Sumbler They revised this file (except this row :) )aldo-0.7.8/THANKS000066400000000000000000000016661217122060700133670ustar00rootroot00000000000000Thanks to Arlo Gittings KC0MNN for a lot of corrections about grammar issues and for README and README.sources. Thanks to Leonard Penzer DH7LP for a lot of feedbacks, for German language support, for correction in speed selection. Thanks to David Sumbler for a lot of corrections about grammar issues and for README and README.sources. Thanks to Thomas Herlea for : 1. more detailed exercise evaluation 2. displaying of the current option value in setup and the possibility to keep a value unchanged by pressing Enter 3. more configurable start for the Koch training method 4. saving the difficulty level achieved in the Koch training method Thanks to Bob Harrington for autoconf and automake support and for improved random number generator Thanks to Bob Harrington for suggestion about libao (www.xiph.org/ao) Thanks to Ferdinando Maresca for a lot of bug reports Thanks to Jan-Simon Möller DL9PF for a patch smothening of audio output in aldoaldo-0.7.8/VERSION000066400000000000000000000000071217122060700135100ustar00rootroot000000000000000.7.7 aldo-0.7.8/aldo.1000066400000000000000000000042251217122060700134470ustar00rootroot00000000000000.\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH ALDO 1 "Nov 20, 2004" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME aldo \- A fully console morse code trainer written in ISO C++. .SH SYNOPSIS .B aldo .br .SH DESCRIPTION .ad b \fBAldo\fP is developed from scratch in ISO C++ using GNU C++ Standard Library and libao (www.xiph.org/ao). .br It is a morse code learning tool which provides four type of training methods: .br .PP .TP .B Blocks Identify blocks of random characters played in morse code. .TP .B Koch Two morse characters will be played at full speed (20wpm) until you'll be able to identify at least 90 percent of them. After that, one more character will be added, and so on. .TP .B File Identify played characters generated from a file. .TP .B Callsign Identify random callsigns played in morse code. .br .SH NOTES The "Device" option under the keyer depends on the particular driver. The "default" setting picks the default sound device. This option may be used to pick a different soundcard than the default one. For alsa, it is "hw:,", where the card and device number are the particular hardware devices. The default is generally "hw:0.0". Generally 0 is the first card, 1 is the second, etc. Some sound cards may have multiple output devices, the device picks the particular one. For oss, sun, and aixs, it is the device name, like /dev/dsp. For esd, it is the host name, like "whizbang.com:555". It is not used on any other drivers. .SH AUTHOR This manual page was written by Giuseppe Martino , for the Debian project (but may be used by others). aldo-0.7.8/bootstrap000066400000000000000000000015361217122060700144100ustar00rootroot00000000000000#! /bin/sh # Copyright (C) 2005 Giuseppe Martino # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. mkdir config aclocal -I config autoheader automake --gnu --add-missing autoconf aldo-0.7.8/configure.ac000066400000000000000000000015751217122060700147410ustar00rootroot00000000000000# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ([2.59]) AC_INIT([aldo], [0.7.7], [Giuseppe Martino denever@users.sf.net]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_HEADER([config.h]) AM_INIT_AUTOMAKE([dist-bzip2]) CPPFLAGS="-I${includedir}" LDFLAGS="-L${libdir}" LIBS="-L${libdir} ${LIBS}" # Checks for programs. AC_PROG_CXX AC_PROG_INSTALL #AC_PROG_RANLIB # Checks for header files. AC_HEADER_STDC AC_CHECK_LIB(ao, main) AC_CHECK_HEADERS(ao/ao.h, [], [echo "Error! You need to have libao (www.xiph.org/ao) around.";exit -1]) # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_C_CONST AC_C_INLINE # Checks for library functions. AC_PROG_GCC_TRADITIONAL AC_CHECK_FUNCS([floor]) AC_CONFIG_FILES([Makefile include/Makefile src/Makefile]) AC_OUTPUT aldo-0.7.8/include/000077500000000000000000000000001217122060700140665ustar00rootroot00000000000000aldo-0.7.8/include/Makefile.am000066400000000000000000000012671217122060700161300ustar00rootroot00000000000000# Copyright (C) 2005 Giuseppe Martino # # This file is free software; as a special exception the author gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. noinst_HEADERS = astream.hh datafile.hh exception.hh menu.hh qrz.hh section.hh\ textfile.hh blocks.hh dialog.hh keyer.hh option.hh random.hh skill.hh\ wave.hh audioexcep.hh audioworkspace.hh koch.hh resources.hh aldo-0.7.8/include/astream.hh000066400000000000000000000046341217122060700160520ustar00rootroot00000000000000// -*- C++ -*- /*************************************************************************** libaudiostream -------------------- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Giuseppe "denever" Martino begin : Sat 9 Mar 2002 email : denever@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301 USA * * * ***************************************************************************/ #ifndef AUDIOSTREAM_H #define AUDIOSTREAM_H #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #ifdef HAVE_AO_AO_H #include #endif #include "wave.hh" #include "audioworkspace.hh" #include "audioexcep.hh" namespace libaudiostream { class oastream { public: oastream(ao_sample_format, std::string device) throw(AudioException); oastream(const oastream&); ~oastream(); oastream& operator<<(const Wave&) throw(AudioException); oastream& operator=(const oastream&); private: ao_device* m_audio; ao_sample_format m_format; int m_default_driver; }; } #endif //AUDIOSTREAM_H aldo-0.7.8/include/audioexcep.hh000066400000000000000000000044131217122060700165370ustar00rootroot00000000000000// -*- C++ -*- /*************************************************************************** libaudiostream -------------------- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Giuseppe "denever" Martino begin : Sat 9 Mar 2002 email : denever@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301 USA * * * ***************************************************************************/ #ifndef AUDIOEXCEPTION_H #define AUDIOEXCEPTION_H #include #include namespace libaudiostream { class AudioException : public std::exception { private: std::string m_message; public: AudioException(const std::string &message) throw() : std::exception() { m_message = message; } virtual ~AudioException() throw() { } virtual const char* message() const throw() { return m_message.c_str(); } }; } #endif // AUDIOEXCEPTION_H aldo-0.7.8/include/audioworkspace.hh000066400000000000000000000046241217122060700174350ustar00rootroot00000000000000// -*- C++ -*- /*************************************************************************** libaudiostream -------------------- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Giuseppe "denever" Martino begin : Sat 9 Mar 2002 email : denever@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301 USA * * * ***************************************************************************/ #ifndef AUDIOWORKSPACE_H #define AUDIOWORKSPACE_H #include "wave.hh" #include namespace libaudiostream { class oastream; class AudioWorkSpace { public: AudioWorkSpace(std::string); AudioWorkSpace(size_type, size_type, size_type, size_type, std::string); AudioWorkSpace(const Wave&); virtual ~AudioWorkSpace(); oastream create_output_stream(); Wave gen_pause(size_type); Wave gen_sine_wave(size_type, double, double); private: size_type m_bits; size_type m_sample_rate; size_type m_channels; size_type m_byte_format; std::string m_device; }; } #endif //AUDIOWORKSPACE_H aldo-0.7.8/include/blocks.hh000066400000000000000000000053301217122060700156650ustar00rootroot00000000000000// -*- C++ -*- /*************************************************************************** libexercises part of Aldo --------------------- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Giuseppe "denever" Martino begin : Sun May 6 2001 email : denever@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301 USA * * * ***************************************************************************/ #ifndef BLOCKS_H #define BLOCKS_H #include "keyer.hh" #include "skill.hh" #include #include namespace libexercises { class Blocks { friend libkeyer::Keyer& operator<<(libkeyer::Keyer&, const Blocks&); private: std::string m_strings; unsigned int m_num_chars; unsigned int m_num_strings; unsigned int m_skill; void m_prepare_mixed(); void m_prepare_submixed(); void m_prepare_ordered(); unsigned int share(); std::string randstring(std::string, unsigned int); std::string gen(std::string, unsigned int); public: Blocks(unsigned int, unsigned int, unsigned int); Blocks(const Blocks&); ~Blocks(); std::list tokenize() const; /* inline unsigned int string_len() const { return m_num_chars; } inline unsigned int len() const { return m_num_strings; } */ }; libkeyer::Keyer& operator<<(libkeyer::Keyer&, const Blocks&); } #endif //BLOCKS_H aldo-0.7.8/include/datafile.hh000066400000000000000000000050371217122060700161650ustar00rootroot00000000000000// -*- C++ -*- /*************************************************************************** libdatafile -------------------- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Giuseppe "denever" Martino begin : Sun May 6 2001 email : denever@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301 USA * * * ***************************************************************************/ #ifndef DATAFILE_H #define DATAFILE_H #include "section.hh" namespace libdatafile { typedef std::list
::iterator sec_it; enum access {Read = 2, Write = 4, Create = 8, Update = 16}; class Datafile { private: bool m_opened; std::list
m_sections; std::string m_filename; access m_access; std::string read_value_in(const std::string&); std::string read_option_name_in(const std::string&); sec_it begin(); sec_it end(); public: Datafile(const std::string&, const access&); Datafile(const Datafile&); ~Datafile(); void open(); void save(); sec_it section(const std::string&); void add_section(const std::string&); void remove_section(const std::string&); }; } #endif //Datafile_H aldo-0.7.8/include/dialog.hh000066400000000000000000000113561217122060700156540ustar00rootroot00000000000000// -*- C++ -*- /*************************************************************************** libmenu -------------------- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Giuseppe "denever" Martino begin : Sun May 6 2001 email : denever@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301 USA * * * ***************************************************************************/ #ifndef DIALOG_H #define DIALOG_H #include #include #include template class Choice { private: std::string m_caption; T m_return_value; public: Choice(); Choice(std::string, T); Choice(const Choice & cpy) { m_caption = cpy.m_caption; m_return_value = cpy.m_return_value; } Choice& operator=(const Choice& cpy) { m_caption = cpy.m_caption; m_return_value = cpy.m_return_value; return *this; } ~Choice() {} std::string caption() const; T selected() const; }; template class Dialog { private: std::string m_title; std::string m_prompt; std::vector > m_choices; unsigned int m_default; unsigned int m_size; public: Dialog(); Dialog(std::string, std::string); Dialog(const Dialog&); void add_choice(std::string, T); void add_default_choice(std::string, T); T show(); }; template Choice::Choice(): m_caption("Empty"), m_return_value(0) {} template Choice::Choice(std::string c, T v): m_caption(c), m_return_value(v) {} template std::string Choice::caption() const { return m_caption; } template T Choice::selected() const { return m_return_value; } template Dialog::Dialog(): m_title("Dialog"), m_prompt("Prompt:"), m_default(0) {} template Dialog::Dialog(std::string t, std::string p):m_title(t), m_prompt(p), m_default(0), m_size(0) {} template Dialog::Dialog(const Dialog& copy) { m_title = copy.m_title; m_prompt = copy.m_prompt; m_choices = copy.m_choices; m_default = copy.m_default; } template void Dialog::add_choice(std::string c, T r) { m_choices.push_back(Choice(c,r)); m_size++; } template void Dialog::add_default_choice(std::string c, T r) { m_size++; m_choices.push_back(Choice(c,r)); m_default = m_size; } template T Dialog::show() { std::cin.ignore(); std::cout< 47) { if(int(trash[0]) < 58) choice = int(trash[0]) - 49; if( (int(trash[0]) > 96) && (int(trash[0]) < 123) ) choice = int(trash[0]) - 88; } } else choice = m_default - 1; } while( choice > m_choices.size()-1 ); return m_choices.at(choice).selected(); } #endif //DIALOG_H aldo-0.7.8/include/exception.hh000066400000000000000000000052761217122060700164170ustar00rootroot00000000000000// -*- C++ -*- /*************************************************************************** libdatafile -------------------- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Giuseppe "denever" Martino begin : Sun May 6 2001 email : denever@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301 USA * * * ***************************************************************************/ #ifndef EXCEPTION_H #define EXCEPTION_H namespace libdatafile { struct Not_datafile_format { const char* m_file_name; public: Not_datafile_format(const char* f): m_file_name(f) {} }; struct Over_write_file { const char* m_file_name; public: Over_write_file(const char* f): m_file_name(f) {} }; struct Option_not_found { const char* m_option_name; public: Option_not_found(const char* o): m_option_name(o) {} }; struct Section_not_found { const char* m_section_name; public: Section_not_found(const char* s): m_section_name(s) {} }; struct File_not_opened { const char* m_file_name; public: File_not_opened(const char* f): m_file_name(f) {} }; struct File_not_exist { const char* m_file_name; public: File_not_exist(const char* f): m_file_name(f) {} }; } // Namespace Datafile_exception #endif // EXCEPTION_H aldo-0.7.8/include/keyer.hh000066400000000000000000000062331217122060700155320ustar00rootroot00000000000000// -*- C++ -*- /*************************************************************************** libkeyer part of Aldo --------------------- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Giuseppe "denever" Martino begin : Sun May 6 2001 email : denever@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301 USA * * * ***************************************************************************/ #ifndef KEYER_H #define KEYER_H #include "astream.hh" #include namespace libkeyer { class Keyer { public: explicit Keyer(libaudiostream::AudioWorkSpace&, unsigned int, unsigned int =3, unsigned int=2, unsigned int=1, unsigned int=3); Keyer(const Keyer&); Keyer& operator<<(const unsigned int&); Keyer& operator<<(unsigned char); Keyer& operator<<(const std::string&); void set_speed(unsigned int); void set_charpause_len(unsigned int); void set_stringpause_len(unsigned int); void set_dot_len(unsigned int); void set_line_len(unsigned int); inline unsigned int keying_speed() { return m_speed; } inline unsigned int charpause_len() { return m_interch; } inline unsigned int stringpause_len() { return m_interword; } inline unsigned int dot_len() const { return m_dot; } inline unsigned int line_len() const { return m_line; } inline unsigned int tone() const { return int(m_tone); } inline void set_tone(unsigned int t) { m_tone = t; } private: libaudiostream::AudioWorkSpace m_aws; libaudiostream::oastream m_audio; unsigned int m_speed; unsigned int m_count; unsigned int m_interch; unsigned int m_interword; double m_tone; unsigned int m_dot; unsigned int m_line; void play(unsigned int); void char_pause(); void string_pause(); }; } #endif // KEYER_H aldo-0.7.8/include/koch.hh000066400000000000000000000060441217122060700153370ustar00rootroot00000000000000// -*- C++ -*- /*************************************************************************** libexercises part of Aldo --------------------- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Giuseppe "denever" Martino begin : Sun May 6 2001 email : denever@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301 USA * * * ***************************************************************************/ #ifndef KOCH_H #define KOCH_H #include "keyer.hh" #include "skill.hh" #include #include namespace libexercises { const unsigned int addgroup = 0; const unsigned int addchar = 1; const unsigned int addsymbol = 2; class Koch { friend libkeyer::Keyer& operator<<(libkeyer::Keyer&, const Koch&); private: std::string m_strings; std::string m_chars; unsigned int m_num_chars; unsigned int m_num_strings; unsigned int m_skill; unsigned int m_next_difficulty; std::string randstring(std::string, unsigned int); public: // Koch(unsigned int, unsigned int, unsigned int, unsigned int); Koch(std::string, unsigned int, unsigned int, unsigned int, unsigned int); Koch(const Koch&); ~Koch(); void shuffle(); void next(); std::list tokenize() const; inline unsigned int skill() const { return m_skill; } inline std::string get_chars() const { return m_chars; } inline unsigned int strlen() const { return m_num_chars; } inline unsigned int strnum() const { return m_num_strings; } inline unsigned int difficulty() const { return m_next_difficulty; } }; libkeyer::Keyer& operator<<(libkeyer::Keyer&, const Koch&); } #endif //KOCH_H aldo-0.7.8/include/menu.hh000066400000000000000000000071711217122060700153610ustar00rootroot00000000000000// -*- C++ -*- /*************************************************************************** libmenu -------------------- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Giuseppe "denever" Martino begin : Sun May 6 2001 email : denever@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301 USA * * * ***************************************************************************/ #ifndef MENU_H #define MENU_H #include #include namespace libmenu { class Menu; enum item_type { none = 0, type1 = 1, type2 = 2}; typedef unsigned int id_type; typedef void (*Function1)(); typedef void (*Function2)(Menu&); class Item { private: unsigned int m_id; std::string m_caption; item_type m_type; Function1 m_cmd1; Function2 m_cmd2; public: Item() :m_id(0), m_type(none), m_cmd1(0), m_cmd2(0) {} Item(id_type id, std::string c, Function1 f1) : m_id(id), m_caption(c), m_type(type1), m_cmd1(f1), m_cmd2(0) {} Item(id_type id, std::string c, Function2 f2) : m_id(id), m_caption(c), m_type(type2), m_cmd1(0), m_cmd2(f2) {} Item(const Item& cpy); std::string caption() const; void exe(Menu&) const; item_type get_type() { return m_type; } Item& operator=(const Item&); inline id_type id() const { return m_id; } }; class Menu { private: std::string m_title; std::string m_prompt; std::vector m_its; bool m_running; unsigned int m_last; public: Menu(); Menu(const std::string&, const std::string&); Menu(const Menu& cpy); void show(); void add_item(id_type, std::string, Function1); void add_item(id_type, std::string, Function2); void operator--(); void add_item_at(unsigned int, id_type, std::string, Function1); void add_item_at(unsigned int, id_type, std::string, Function2); void delete_item_at(unsigned int); void delete_item(id_type); bool find(id_type); inline void set_title(std::string title) { m_title = title; } inline void set_prompt(std::string prompt) { m_prompt = prompt; } inline bool running() const { return m_running; } inline void close() { m_running = false; } inline unsigned last_selected() { return m_last; } }; } #endif // MENU_H aldo-0.7.8/include/option.hh000066400000000000000000000043351217122060700157240ustar00rootroot00000000000000// -*- C++ -*- /*************************************************************************** libdatafile -------------------- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Giuseppe "denever" Martino begin : Sun May 6 2001 email : denever@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301 USA * * * ***************************************************************************/ #ifndef OPTION_H #define OPTION_H #include "exception.hh" #include namespace libdatafile { class Option { private: std::string m_name; std::string m_valuestr; unsigned int m_value; public: Option(const std::string&); Option(const Option&); void set(unsigned int); void set(const std::string&); unsigned int get() const; std::string getstr() const; std::string name() const; }; } #endif // OPTION_H aldo-0.7.8/include/qrz.hh000066400000000000000000000050621217122060700152260ustar00rootroot00000000000000// -*- C++ -*- /*************************************************************************** libexercises part of Aldo --------------------- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Giuseppe "denever" Martino begin : Sun May 6 2001 email : denever@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301 USA * * * ***************************************************************************/ #ifndef QRZ_H #define QRZ_H #include "keyer.hh" #include namespace libexercises { class Qrz { friend libkeyer::Keyer& operator<<(libkeyer::Keyer&, const Qrz&); private: std::string m_strings; unsigned int m_num_chars; unsigned int m_num_strings; public: Qrz(): m_num_chars(0), m_num_strings(0) { m_strings.clear(); } Qrz(const std::string &, unsigned int); Qrz(const Qrz&); unsigned int verify(const std::string&) const; inline unsigned int string_len() const { return m_num_chars; } inline unsigned int len() const { return m_num_strings; } inline std::string get_string() const { return m_strings; } }; libkeyer::Keyer& operator<<(libkeyer::Keyer&, const Qrz&); } #endif //QRZ_H aldo-0.7.8/include/random.hh000066400000000000000000000040071217122060700156700ustar00rootroot00000000000000// -*- C++ -*- /*************************************************************************** librandom part of Aldo -------------------- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Giuseppe "denever" Martino begin : Sun May 6 2001 improved : Bob Harrington email : denever@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301 USA * ***************************************************************************/ #ifndef RANDOM_H #define RANDOM_H namespace librandom { class Random { private: unsigned long m_seed; unsigned long m_count; public: Random(); int integer(int max); int integer(int min, int max); }; } #endif // RANDOM_H aldo-0.7.8/include/resources.hh000066400000000000000000000143451217122060700164300ustar00rootroot00000000000000// -*- C++ -*- /*************************************************************************** Aldo -------------------- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Giuseppe "denever" Martino begin : Sun May 6 2001 email : denever@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301 USA * * * ***************************************************************************/ #ifdef HAVE_CONFIG_H #include "config.h" #endif #define chkmsg_1 "Please input the signs you copied." #define chkmsg_2 "If you didn't copy a sign, put '@'." #define fbkmsg_title "EVALUATION" #define ovrmsg_title "Overall success rate" #define smbmsg_title "Success rate per symbol" #define smbmsg_symbol "symbol" #define smbmsg_copied "copied" #define smbmsg_keyed "keyed" #define smbmsg_correct "correct" #define smbmsg_incorrect "incorrect" #define smbmsg_missed "missed" #define smbmsg_percent "percentages" #define cmpmsg_title "Comparison between keyed and copied sign groups" #define cmpmsg_group "Group index" #define cmpmsg_correct "correct" #define cmpmsg_incorrect "incorrect" #define cmpmsg_missed "missed" #define cmpmsg_keyed "Keyed signs = what was transmitted" #define cmpmsg_copied "Copied signs = what you have input" #define errmsg_noformat "Configuration file is incorrectly formatted" #define errmsg_overwrite "You have tried to overwrite the configuration file" #define errmsg_nooption "Can't find an option in the configuration file" #define errmsg_nosection "Can't find section in the configuration file" #define errmsg_noopenfile "Can't open the configuration file" #define errmsg_nofile "The configuration file doesn't exist" #define errmsg_conf "Select Default Settings in the Setup Menu" #define errmsg_devicefile "Can't write on device file " #define errmsg_rate "Wrong rate" #define errmsg_format "Format error" #define errmsg_fragment "Fragment error" #define errmsg_stereo "Stereo error" #define main_menu_title "Aldo " VERSION " Main Menu" #define main_menu_prompt "Your choice" #define main_menu_item1 "Blocks method" #define main_menu_item2 "Koch method" #define main_menu_item3 "Read from file" #define main_menu_item4 "Callsigns" #define main_menu_item5 "Setup" #define main_menu_item6 "Exit" #define msg_start "About to start keying. Get ready..." #define msg_changes "Change these settings from the Setup Menu." #define msg_speed "Keying speed: " #define msg_strlen "String length: " #define msg_skill "Training character set: " #define msg_strnum "Number of strings: " #define msg_callformat "Template callsign: " #define dlg_skill_title "Select training character set" #define dlg_skill_choice1 "e,i,s,h,t,m,o" #define dlg_skill_choice2 "e,i,s,h,t,m,o,a,j,w,v,u" #define dlg_skill_choice3 "e,i,s,h,t,m,o,a,w,j,u,v,n,d,b,g" #define dlg_skill_choice4 "e,i,s,h,t,m,o,a,w,j,u,v,n,d,b,g,r,p,l,f" #define dlg_skill_choice5 "e,i,s,h,t,m,o,a,w,j,u,v,n,d,b,g,r,p,l,f,k,c,y,q,z,x" #define dlg_skill_choice6 "All chars and numbers" #define dlg_skill_choice7 "Custom character set" #define dlg_skill2_title "Add a group or option to your exercise:" #define dlg_skill2_choice1 "e,i,s,h,t,m,o" #define dlg_skill2_choice2 "a,w,j,v,u" #define dlg_skill2_choice3 "n,d,b,g" #define dlg_skill2_choice4 "r,p,l,f" #define dlg_skill2_choice5 "k,c,y,q,z,x" #define dlg_skill2_choice6 "0123456789" #define dlg_skill2_choice7 "Chars ordered " #define dlg_skill2_choice8 "Chars submixed with group order " #define dlg_skill2_choice9 "Chars mixed without group order " #define dlg_skill2_choice10 "End" #define dlg_koch_title "Do you want to continue with the Koch method?" #define dlg_koch_continue "Yes" #define dlg_koch_exit "No" #define insert_device "Soundcard device name/file" #define insert_samplerate "Sample rate" #define insert_samplesize "Sample size" #define insert_beginpause "Pause before keying (seconds)" #define insert_charpause "Length of space between two characters in a word (number of dots)" #define insert_strpause "Length of space between two words (number of dots)" #define insert_dotlen "Dit length" #define insert_linelen "Dah length" #define insert_tone "Frequency of buzzer (Hz)" #define insert_chars "Training character set" #define insert_pos "Starting position" #define insert_wpm "Keying speed (words per minute)" #define insert_strlen "Length of strings" #define insert_filename "Name of file to read" #define insert_strnum "Number of strings to send" #define insert_callformat "Enter callsign template" #define conf_menu_title "Setup Menu" #define conf_menu_item1 "Keyer Setup" #define conf_menu_item2 "Blocks method Setup" #define conf_menu_item3 "Koch method Setup" #define conf_menu_item4 "Qrz exercise Setup" #define conf_menu_item5 "Default Settings" #define conf_menu_item6 "Return to Main Menu" aldo-0.7.8/include/section.hh000066400000000000000000000045021217122060700160540ustar00rootroot00000000000000// -*- C++ -*- /*************************************************************************** libdatafile -------------------- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Giuseppe "denever" Martino begin : Sun May 6 2001 email : denever@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301 USA * * * ***************************************************************************/ #ifndef SECTION_H #define SECTION_H #include "option.hh" #include namespace libdatafile { typedef std::list