dect
/
libdect
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
libdect/example/pp-common.c

90 lines
2.2 KiB
C

/*
* DECT PP common functions
*
* Copyright (c) 2010 Patrick McHardy <kaber@trash.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <getopt.h>
#include <dect/libdect.h>
#include <dect/auth.h>
#include "common.h"
#define debug(fmt, args...) printf("P-IWU: " fmt, ## args)
void dect_pp_init_terminal_capability(struct dect_ie_terminal_capability *tcap)
{
tcap->tone = DECT_TONE_CAPABILITY_DIAL_TONE_ONLY;
tcap->echo = DECT_ECHO_PARAMETER_FULL_TCLW;
tcap->noise_rejection = DECT_NOISE_REJECTION_NONE;
tcap->volume_ctrl = DECT_ADAPTIVE_VOLUME_PP_CONTROL_NONE;
tcap->slot = DECT_SLOT_CAPABILITY_FULL_SLOT;
tcap->display = DECT_DISPLAY_CAPABILITY_FULL_DISPLAY;
tcap->display_memory = 48;
tcap->display_lines = 3;
tcap->display_columns = 16;
tcap->display_control = DECT_DISPLAY_CONTROL_CODE_CODING_1;
tcap->display_charsets = 0;
tcap->scrolling = DECT_SCROLLING_NOT_SPECIFIED;
tcap->profile_indicator = DECT_PROFILE_GAP_SUPPORTED |
DECT_PROFILE_REKEYING_EARLY_ENCRYPTION_SUPPORTED |
DECT_PROFILE_NG_DECT_PART_1 |
DECT_PROFILE_NG_DECT_PART_3;
}
void dect_pp_common_init(struct dect_ops *ops, const char *cluster,
const struct dect_ipui *ipui)
{
dect_pp_auth_init(ops, ipui);
dect_common_init(ops, cluster);
dect_pp_set_ipui(dh, ipui);
}
enum {
OPT_CLUSTER = 'c',
OPT_IPUI = 'i',
OPT_HELP = 'h',
};
static const struct option options[] = {
{ .name = "cluster", .has_arg = true, .flag = NULL, .val = OPT_CLUSTER },
{ .name = "ipui", .has_arg = true, .flag = NULL, .val = OPT_IPUI },
{ .name = "help", .has_arg = false, .flag = NULL, .val = OPT_HELP },
{ }
};
void dect_pp_common_options(int argc, char **argv)
{
int optidx = 0, c;
for (;;) {
c = getopt_long(argc, argv, "c:h", options, &optidx);
if (c == -1)
break;
switch (c) {
case OPT_CLUSTER:
cluster = optarg;
break;
case OPT_IPUI:
if (dect_parse_ipui(&ipui, optarg))
exit(1);
break;
case OPT_HELP:
printf("%s [ -c/--cluster NAME ] [ -h/--help ]\n",
argv[0]);
exit(0);
case '?':
exit(1);
}
}
}