diff options
Diffstat (limited to 'bindings/radio/radio-api.h')
-rw-r--r-- | bindings/radio/radio-api.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/bindings/radio/radio-api.h b/bindings/radio/radio-api.h new file mode 100644 index 00000000..9b91ec69 --- /dev/null +++ b/bindings/radio/radio-api.h @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2015, 2016 "IoT.bzh" + * Author "Manuel Bachmann" + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef RADIO_API_H +#define RADIO_API_H + +/* -------------- PLUGIN DEFINITIONS ----------------- */ + +#define MAX_RADIO 10 +typedef enum { FM, AM } Mode; + +/* structure holding one radio device with current usage status */ +typedef struct { + int idx; + char *name; + int used; +} radioDevT; + +/* global plugin handle, should store everything we may need */ +typedef struct { + radioDevT *radios[MAX_RADIO]; // pointer to existing radio + unsigned int devCount; +} pluginHandleT; + +/* private client context [will be destroyed when client leaves] */ +typedef struct { + radioDevT *radio; /* pointer to client radio */ + int idx; /* radio index within global array */ + Mode mode; /* radio mode: AM/FM */ + float freq; /* radio frequency (Mhz) */ + unsigned char mute; /* radio muted: 0(false)/1(true) */ + unsigned char is_playing; /* radio is playing: 0(false)/1(true) */ +} radioCtxHandleT; + +#endif /* RADIO_API_H */ |