mirror of
				https://github.com/eclipse/upm.git
				synced 2025-10-31 07:04:14 +03:00 
			
		
		
		
	Loudness: Adding C components
Signed-off-by: Abhishek Malik <abhishek.malik@intel.com>
This commit is contained in:
		
							
								
								
									
										7
									
								
								src/groveloudness/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/groveloudness/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| upm_mixed_module_init (NAME loudness | ||||
|     DESCRIPTION "upm loudness sensor module" | ||||
|     C_HDR loudness.h | ||||
|     C_SRC loudness.c | ||||
|     CPP_SRC groveloudness.cxx | ||||
|     CPP_WRAPS_C | ||||
|     REQUIRES libmraa) | ||||
							
								
								
									
										54
									
								
								src/groveloudness/loudness.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								src/groveloudness/loudness.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| /* | ||||
|  * Author: Jon Trulson <jtrulson@ics.com> | ||||
|  *         Abhishek Malik <abhishek.malik@intel.com> | ||||
|  * Copyright (c) 2016 Intel Corporation. | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining | ||||
|  * a copy of this software and associated documentation files (the | ||||
|  * "Software"), to deal in the Software without restriction, including | ||||
|  * without limitation the rights to use, copy, modify, merge, publish, | ||||
|  * distribute, sublicense, and/or sell copies of the Software, and to | ||||
|  * permit persons to whom the Software is furnished to do so, subject to | ||||
|  * the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be | ||||
|  * included in all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||||
|  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||
|  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||||
|  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | ||||
|  * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | ||||
|  * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | ||||
|  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  */ | ||||
| #include "loudness.h" | ||||
|  | ||||
| loudness_context loudness_init(int pin) { | ||||
|     loudness_context dev = | ||||
|       (loudness_context) malloc(sizeof(struct _loudness_context)); | ||||
|  | ||||
|     if (!dev) | ||||
|       return NULL; | ||||
|  | ||||
|     dev->aio = mraa_aio_init(pin); | ||||
|  | ||||
|     if (!dev->aio) | ||||
|       { | ||||
|         free(dev); | ||||
|         return NULL; | ||||
|       } | ||||
|  | ||||
|     return dev; | ||||
| } | ||||
|  | ||||
| void loudness_close(loudness_context dev) { | ||||
|     mraa_aio_close(dev->aio); | ||||
|     free(dev); | ||||
| } | ||||
|  | ||||
| upm_result_t loudness_get_value(loudness_context dev, int* val) { | ||||
|     *val = mraa_aio_read(dev->aio); | ||||
|  | ||||
|     return UPM_SUCCESS; | ||||
| } | ||||
							
								
								
									
										67
									
								
								src/groveloudness/loudness.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								src/groveloudness/loudness.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| /* | ||||
|  * Author: Jon Trulson <jtrulson@ics.com> | ||||
|  *         Abhishek Malik <abhishek.malik@intel.com> | ||||
|  * Copyright (c) 2016 Intel Corporation. | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining | ||||
|  * a copy of this software and associated documentation files (the | ||||
|  * "Software"), to deal in the Software without restriction, including | ||||
|  * without limitation the rights to use, copy, modify, merge, publish, | ||||
|  * distribute, sublicense, and/or sell copies of the Software, and to | ||||
|  * permit persons to whom the Software is furnished to do so, subject to | ||||
|  * the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be | ||||
|  * included in all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||||
|  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||
|  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||||
|  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | ||||
|  * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | ||||
|  * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | ||||
|  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  */ | ||||
|  | ||||
| #ifndef LOUDNESS_LOUDNESS_H_ | ||||
| #define LOUDNESS_LOUDNESS_H_ | ||||
|  | ||||
| #include <stdlib.h> | ||||
| #include <unistd.h> | ||||
| #include <string.h> | ||||
|  | ||||
| #include "upm.h" | ||||
| #include "mraa/aio.h" | ||||
|  | ||||
| /** | ||||
|  * device context | ||||
|  */ | ||||
| typedef struct _loudness_context { | ||||
|     mraa_aio_context            aio; | ||||
| } *loudness_context; | ||||
|  | ||||
| /** | ||||
|  * Loudness Initialization function | ||||
|  * | ||||
|  * @param pin AIO pin to use | ||||
|  * @return void* pointer to the sensor struct | ||||
|  */ | ||||
| loudness_context loudness_init(int pin); | ||||
|  | ||||
| /** | ||||
|  * Loudness destructor | ||||
|  * | ||||
|  * @param void* pointer to the sensor struct | ||||
|  */ | ||||
| void loudness_close(loudness_context dev); | ||||
|  | ||||
| /** | ||||
|  * Function gets the loudness raw value (currently) | ||||
|  * | ||||
|  * @param void* pointer to the sensor struct | ||||
|  * @param int* pointer to store the loudness value. | ||||
|  * @return upm_result_t UPM success/error code | ||||
|  */ | ||||
| upm_result_t loudness_get_value(loudness_context dev, int* val); | ||||
|  | ||||
| #endif /* LOUDNESS_LOUDNESS_H_ */ | ||||
							
								
								
									
										79
									
								
								src/groveloudness/loudness_fti.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								src/groveloudness/loudness_fti.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,79 @@ | ||||
| /* | ||||
|  * Author: Jon Trulson <jtrulson@ics.com> | ||||
|  *         Abhishek Malik <abhishek.malik@intel.com> | ||||
|  * Copyright (c) 2016 Intel Corporation. | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining | ||||
|  * a copy of this software and associated documentation files (the | ||||
|  * "Software"), to deal in the Software without restriction, including | ||||
|  * without limitation the rights to use, copy, modify, merge, publish, | ||||
|  * distribute, sublicense, and/or sell copies of the Software, and to | ||||
|  * permit persons to whom the Software is furnished to do so, subject to | ||||
|  * the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be | ||||
|  * included in all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||||
|  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||
|  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||||
|  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | ||||
|  * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | ||||
|  * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | ||||
|  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  */ | ||||
| #include "loudness.h" | ||||
| #include "upm_fti.h" | ||||
|  | ||||
| /** | ||||
|  * This file implements the Function Table Interface (FTI) for this sensor | ||||
|  */ | ||||
|  | ||||
| const char upm_loudness_name[] = "loudness"; | ||||
| const char upm_loudness_description[] = " Loudness Sensor"; | ||||
| const upm_protocol_t upm_loudness_protocol[] = {UPM_ANALOG}; | ||||
| const upm_sensor_t upm_loudness_category[] = {UPM_AUDIO}; | ||||
|  | ||||
| // forward declarations | ||||
| const void* upm_loudness_get_ft(upm_sensor_t sensor_type); | ||||
| const upm_sensor_descriptor_t upm_loudness_get_descriptor(); | ||||
| void* upm_loudness_init_name(); | ||||
| void upm_loudness_close(void* dev); | ||||
|  | ||||
|  | ||||
| const upm_sensor_descriptor_t upm_loudness_get_descriptor(){ | ||||
|     upm_sensor_descriptor_t usd; | ||||
|     usd.name = upm_loudness_name; | ||||
|     usd.description = upm_loudness_description; | ||||
|     usd.protocol_size = 1; | ||||
|     usd.protocol = upm_loudness_protocol; | ||||
|     usd.category_size = 1; | ||||
|     usd.category = upm_loudness_category; | ||||
|     return usd; | ||||
| } | ||||
|  | ||||
| static const upm_sensor_ft ft = | ||||
| { | ||||
|     .upm_sensor_init_name = &upm_loudness_init_name, | ||||
|     .upm_sensor_close = &upm_loudness_close, | ||||
|     .upm_sensor_get_descriptor = &upm_loudness_get_descriptor | ||||
| }; | ||||
|  | ||||
| const void* upm_loudness_get_ft(upm_sensor_t sensor_type){ | ||||
|     if(sensor_type == UPM_SENSOR){ | ||||
|         return &ft; | ||||
|     } | ||||
|     return NULL; | ||||
| } | ||||
|  | ||||
| void* upm_loudness_init_name(){ | ||||
|     return NULL; | ||||
| } | ||||
|  | ||||
| void upm_loudness_close(void* dev){ | ||||
|     loudness_close((loudness_context)dev); | ||||
| } | ||||
|  | ||||
| upm_result_t upm_loudness_get_value(void* dev, int* val){ | ||||
|     return loudness_get_value((loudness_context)dev, val); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Abhishek Malik
					Abhishek Malik