pa_cpuload.h (2672B)
1 #ifndef PA_CPULOAD_H 2 #define PA_CPULOAD_H 3 /* 4 * $Id$ 5 * Portable Audio I/O Library CPU Load measurement functions 6 * Portable CPU load measurement facility. 7 * 8 * Based on the Open Source API proposed by Ross Bencina 9 * Copyright (c) 2002 Ross Bencina 10 * 11 * Permission is hereby granted, free of charge, to any person obtaining 12 * a copy of this software and associated documentation files 13 * (the "Software"), to deal in the Software without restriction, 14 * including without limitation the rights to use, copy, modify, merge, 15 * publish, distribute, sublicense, and/or sell copies of the Software, 16 * and to permit persons to whom the Software is furnished to do so, 17 * subject to the following conditions: 18 * 19 * The above copyright notice and this permission notice shall be 20 * included in all copies or substantial portions of the Software. 21 * 22 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 23 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 24 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 25 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR 26 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 27 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 28 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 */ 30 31 /* 32 * The text above constitutes the entire PortAudio license; however, 33 * the PortAudio community also makes the following non-binding requests: 34 * 35 * Any person wishing to distribute modifications to the Software is 36 * requested to send the modifications to the original developer so that 37 * they can be incorporated into the canonical version. It is also 38 * requested that these non-binding requests be included along with the 39 * license above. 40 */ 41 42 /** @file 43 @ingroup common_src 44 45 @brief Functions to assist in measuring the CPU utilization of a callback 46 stream. Used to implement the Pa_GetStreamCpuLoad() function. 47 */ 48 49 50 #ifdef __cplusplus 51 extern "C" 52 { 53 #endif /* __cplusplus */ 54 55 56 typedef struct { 57 double samplingPeriod; 58 double measurementStartTime; 59 double averageLoad; 60 } PaUtilCpuLoadMeasurer; /**< @todo need better name than measurer */ 61 62 void PaUtil_InitializeCpuLoadMeasurer( PaUtilCpuLoadMeasurer* measurer, double sampleRate ); 63 void PaUtil_BeginCpuLoadMeasurement( PaUtilCpuLoadMeasurer* measurer ); 64 void PaUtil_EndCpuLoadMeasurement( PaUtilCpuLoadMeasurer* measurer, unsigned long framesProcessed ); 65 void PaUtil_ResetCpuLoadMeasurer( PaUtilCpuLoadMeasurer* measurer ); 66 double PaUtil_GetCpuLoad( PaUtilCpuLoadMeasurer* measurer ); 67 68 69 #ifdef __cplusplus 70 } 71 #endif /* __cplusplus */ 72 #endif /* PA_CPULOAD_H */