2017-07-06 12:03:23 +00:00
|
|
|
//functions_for_cmd_typist.h: Contains all function prototypes, constants and global variables.
|
|
|
|
|
|
|
|
/*
|
|
|
|
Program title: CMDTYPIST
|
|
|
|
Author: Chiatiah Calson
|
|
|
|
License: GPL 3 or later versions
|
|
|
|
Date and Time: 5 July 2017 @ 10:40PM
|
|
|
|
Program Size: 2.8
|
|
|
|
*/
|
|
|
|
|
2017-05-23 15:44:27 +00:00
|
|
|
char get_only_char();
|
2017-04-27 15:41:21 +00:00
|
|
|
char time_set=0;
|
|
|
|
char file_to_read[19];//name of lesson file to read from
|
|
|
|
unsigned short int block_length;
|
|
|
|
//#include<math.h>
|
2017-07-06 12:03:23 +00:00
|
|
|
#define SIZE_NAME 81//variable to hold the name of the user.
|
2017-04-27 15:41:21 +00:00
|
|
|
char mode=8;//mode of play, could be random or standard, setting it defined amount to prevent it from being initialised to 0
|
|
|
|
char ch;//used for character input and testing.
|
2017-07-06 12:03:23 +00:00
|
|
|
#define RED "\x1B[31m"//bash script for red color
|
|
|
|
#define GREEN "\x1B[32m"//bash script for Green color
|
2017-04-27 15:41:21 +00:00
|
|
|
#define SPEED_COLOR "\x1B[36m"//printing speed color
|
2017-07-06 12:03:23 +00:00
|
|
|
#define TIP_COLOR "\x1B[35m"//bash script for Green color
|
|
|
|
#define LAST_LINE_BLUE "\x1B[34m"//Green color
|
2017-04-27 15:41:21 +00:00
|
|
|
#define RESET "\x1B[0m"//color reset to normal (black)
|
|
|
|
#if defined(_WIN32)//checking if the system on which the program is running is windows
|
|
|
|
#include<Windows.h>//and including the windows header file.
|
|
|
|
#elif defined(__linux__)//if machine is linux
|
|
|
|
#include<unistd.h>//include the linux header file
|
2017-07-06 12:03:23 +00:00
|
|
|
#include<termios.h>//a linux header file for echo, works with getche()
|
2017-04-27 15:41:21 +00:00
|
|
|
#endif
|
2017-07-06 12:03:23 +00:00
|
|
|
//char firstarg[8];//global variable to hold the "select argument"
|
2017-05-23 15:44:27 +00:00
|
|
|
|
2017-07-06 12:03:23 +00:00
|
|
|
//function prototypes
|
|
|
|
void main_play(int argc_cmd,int* lesson_choice);//prototype for the main play, main play board
|
|
|
|
void select_lesson(int argc_cmd, int* user_choice);
|
2017-09-01 19:13:45 +00:00
|
|
|
void lesson_position(long* read_this_length,long* point_to,int* my_choice);//prototype for lesson selection, selects from list of lessons
|
|
|
|
|
|
|
|
|
2017-07-06 12:03:23 +00:00
|
|
|
void make_current(FILE *file_to_remove_from);
|
|
|
|
extern void name_display(void);//functions for display control, location: display.c
|
|
|
|
//functions for program configuration, location: config.c
|
|
|
|
extern char read_myown_config(void);
|
|
|
|
extern void write_myown_config(char n);
|
|
|
|
extern char read_conf_mode(void);//num_value is used to record settings for random and standard play
|
|
|
|
extern void write_conf_mode(char n);//r is used to record settings for random and standard play
|
|
|
|
extern char read_conf_block_read(void);//num_value is used to record settings for random and standard play
|
|
|
|
extern void write_conf_block_read(unsigned int n);//r is used to record settings for random and standard play
|
|
|
|
extern char sound_config_read(void);//num_value is used to record settings for random and standard play
|
|
|
|
extern void sound_config_write(unsigned int n);//r is used to record settings for random and standard play
|
|
|
|
|
|
|
|
extern char adapt_to_ver(void);//num_value is used to record settings for random and standard play
|
|
|
|
extern char adapt_to_ver_read(void);//num_value is used to record settings for random and standard play
|
|
|
|
extern unsigned int is_integral(char number[], int argc_cmd);
|
|
|
|
extern int range_verifier(int n);
|
|
|
|
extern void write_message_conf(char n);//r is used to record settings for random and standard play
|
|
|
|
extern void read_message_conf(void);//Function for first time message display
|
|
|
|
//terminal manipulation and control, location in utils.c
|
|
|
|
static void fget_ignore_newline(char* arr_no_newline);
|
|
|
|
extern char get_only_char();
|
|
|
|
void valid_range(int num_to_convert);//Ensures correct range is entered
|
|
|
|
char* upper_case(char* name);
|
|
|
|
static char* cat_name(char* name);//catenating \n to a pointer to .
|
|
|
|
void test_new_user(char* name);//used to create new user name
|
|
|
|
void name_modify(char* name);
|
|
|
|
extern void letter_clear(int n);
|
|
|
|
extern int getche(void);
|
|
|
|
extern void sleepf(int time_to_sleep);//implementing a sleep function
|
|
|
|
extern void waiting(char* wait_style);//style in waiting for input.
|
|
|
|
extern void lesson_list(void);
|
|
|
|
void seconds_to_hms(long int time_in_seconds, char* time);
|
2017-07-07 00:17:24 +00:00
|
|
|
void session_style(unsigned int session_time,int wrongly_typed,float typed);
|
2017-07-06 12:03:23 +00:00
|
|
|
extern void user_test(void);
|
|
|
|
void make_current(FILE* file_to_remove_from);
|
2017-07-07 00:17:24 +00:00
|
|
|
void write_user_speed(unsigned int session_time,int wrongly_typed, float typed);//Elapsed time is time taken to type
|
2017-09-01 19:13:45 +00:00
|
|
|
char get_user_name(char *user_name);
|
2017-07-06 12:03:23 +00:00
|
|
|
void accounts_create(void);
|
|
|
|
void write_to_line(char* to_write, FILE* fp);
|
|
|
|
long int select_user(void);
|
|
|
|
long int read_file_size(FILE* name_to_read);
|
|
|
|
void swap_modify_name(int length_of_string);
|
|
|
|
void edit_name(void);
|
|
|
|
extern void remove_ext_ascii(void);
|
|
|
|
static int my_atoi(const char* snum);
|
|
|
|
void reset_default_config(char* raw, int argc_cmd);
|
|
|
|
extern short unsigned first_time(void);//check if 0 is wrritten to first position of config file
|
|
|
|
extern void confirm_user_exist(void);
|
|
|
|
char new_name[81];//global variable for name modification.
|
2017-05-23 15:44:27 +00:00
|
|
|
int last_user_ptr;
|
2017-07-06 12:03:23 +00:00
|
|
|
int avg_speed;//average typing speed.
|
2017-05-23 15:44:27 +00:00
|
|
|
char user_name[SIZE_NAME];//holds the name of the user.
|
|
|
|
char user_info[360]; //string to store user details.
|
|
|
|
char temp_name[360];//temporary store for user name
|
|
|
|
|
2017-05-19 08:20:31 +00:00
|
|
|
|
2017-05-20 15:16:14 +00:00
|
|
|
|
2017-05-20 15:19:50 +00:00
|
|
|
|
2017-05-21 21:46:43 +00:00
|
|
|
|
2017-05-21 21:52:11 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2017-05-21 21:53:30 +00:00
|
|
|
|
2017-05-22 07:53:51 +00:00
|
|
|
|
2017-05-22 07:58:04 +00:00
|
|
|
|
2017-05-22 07:59:33 +00:00
|
|
|
|
2017-05-23 15:36:03 +00:00
|
|
|
|