17342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project/*
27342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project** Copyright 2008 The Android Open Source Project
37342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project**
47342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License");
57342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project** you may not use this file except in compliance with the License.
67342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project** You may obtain a copy of the License at
77342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project**
87342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project**     http://www.apache.org/licenses/LICENSE-2.0
97342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project**
107342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project** Unless required by applicable law or agreed to in writing, software
117342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project** distributed under the License is distributed on an "AS IS" BASIS,
127342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project** See the License for the specific language governing permissions and
147342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project** limitations under the License.
157342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project*/
167342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project
177342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project/** Bluedroid testing  */
187342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project
197342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project#include <stdlib.h>
207342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project#include <stdio.h>
217342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project#include <errno.h>
227342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project#include <sys/uio.h>
237342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project#include <unistd.h>
247342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project
257342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project#include <bluedroid/bluetooth.h>
267342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project
277342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Projectstatic int do_enable() {
287342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    int ret;
297342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    ret = bt_enable();
307342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    printf("= %d\n", ret);
317342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    return ret;
327342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project}
337342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project
347342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Projectstatic int do_disable() {
357342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    int ret;
367342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    ret = bt_disable();
377342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    printf("= %d\n", ret);
387342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    return ret;
397342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project}
407342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project
417342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Projectstatic int do_is_enabled() {
427342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    int ret;
437342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    ret = bt_is_enabled();
447342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    printf("= %d\n", ret);
457342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    return ret;
467342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project}
477342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project
487342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Projectstruct {
497342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    char *name;
507342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    int (*ptr)();
517342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project} function_table[]  = {
527342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    {"enable", do_enable},
537342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    {"disable", do_disable},
547342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    {"is_enabled", do_is_enabled},
557342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    {NULL, NULL},
567342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project};
577342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project
587342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Projectstatic void usage() {
597342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    int i;
607342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project
617342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    printf("Usage:\n");
627342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    for (i = 0; function_table[i].name; i++) {
637342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project        printf("\tbttest %s\n", function_table[i].name);
647342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    }
657342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project}
667342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project
677342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Projectint main(int argc, char **argv) {
687342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    int i;
697342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project
707342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    if (argc != 2) {
717342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project        usage();
727342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project        return -1;
737342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    }
747342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    for (i = 0; function_table[i].name; i++) {
757342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project        if (!strcmp(argv[1], function_table[i].name)) {
767342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project            printf("%s\n", function_table[i].name);
777342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project            return (*function_table[i].ptr)();
787342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project        }
797342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    }
807342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    usage();
817342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project    return -1;
827342a3e6a751116a193ff27d69b87eda478a5016The Android Open Source Project}
83