gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

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 */