Added new driver virtual methods 'start_driver' and 'stop_driver'
This commit is contained in:
parent
1d4d908cb8
commit
5107112a91
@ -10,6 +10,8 @@ struct termkey_driver
|
||||
{
|
||||
void *(*new_driver)(termkey_t *tk, const char *term);
|
||||
void (*free_driver)(void *);
|
||||
void (*start_driver)(termkey_t *tk);
|
||||
void (*stop_driver)(termkey_t *tk);
|
||||
termkey_result (*getkey)(termkey_t *tk, termkey_key *key, int force);
|
||||
};
|
||||
|
||||
|
@ -185,6 +185,9 @@ termkey_t *termkey_new_full(int fd, int flags, size_t buffsize, int waittime)
|
||||
}
|
||||
}
|
||||
|
||||
if(tk->driver.start_driver)
|
||||
(*tk->driver.start_driver)(tk);
|
||||
|
||||
return tk;
|
||||
|
||||
abort_free_keynames:
|
||||
@ -217,6 +220,9 @@ void termkey_free(termkey_t *tk)
|
||||
|
||||
void termkey_destroy(termkey_t *tk)
|
||||
{
|
||||
if(tk->driver.stop_driver)
|
||||
(*tk->driver.stop_driver)(tk);
|
||||
|
||||
if(tk->restore_termios_valid)
|
||||
tcsetattr(tk->fd, TCSANOW, &tk->restore_termios);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user