2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2014 - Scilab Enterprises - Anais AUBERT
5 * This file must be used under the terms of the CeCILL.
6 * This source file is licensed as described in the file COPYING, which
7 * you should have received as part of this distribution. The terms
8 * are also available at
9 * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
12 /*--------------------------------------------------------------------------*/
15 #ifndef __SIGNALPROCESSING_HXX__
16 #define __SIGNALPROCESSING_HXX__
19 #include "dynlib_signal_processing.h"
21 #include "callable.hxx"
25 #include "Thread_Wrapper.h"
30 extern void C2F(tscccf)(double *x, double *y, int *length, double *cxy, double *xymean, int *lag, int *error);
31 extern void C2F(cmpse2)(int *iSect, int *iTotalSize, int *iMode, void *pXFunction, void *pYFunction, double *xa, double *xr, double *xi, double *zr, double *zi, int *error);
33 extern void C2F(cmpse3)(int *mfft, int *mnx, int *iMode, double *x, double *yi, double *xu, double *xui, double * w, double *wi, int *iErr, int *ichaud, int *nbx);
36 typedef void(*dgetx_f_t)(double*, int*, int*);
37 typedef void(*dgety_f_t)(double*, int*, int*);
39 extern void C2F(cmpse2)(int *iSect, int *iTotalSize, int *iMode, dgetx_f_t, dgety_f_t, double *xa, double *xr, double *xi, double *zr, double *zi, int *error);
41 SIGNAL_PROCESSING_IMPEXP void dgety_f(double* x, int* siz, int* iss);
42 SIGNAL_PROCESSING_IMPEXP void dgetx_f(double* x, int* siz, int* iss);
44 class SIGNAL_PROCESSING_IMPEXP Signalprocessingfunctions
48 Signalprocessingfunctions(const std::wstring& callerName);
49 ~Signalprocessingfunctions();
51 void setDgetx(types::Callable*);
52 void setDgety(types::Callable*);
54 void setDgetx(types::String*);
55 void setDgety(types::String*);
57 void execDgetx(double*, int* , int*);
58 void execDgety(double*, int* , int*);
60 void callDgetx(double* x, int* siz, int* iss);
61 void callDgety(double* y, int* siz, int* iss);
63 void execFunctionDgetx(double*, int*, int* );
64 void execFunctionDgety(double*, int* , int* );
68 std::vector<types::InternalType*> m_FArgs;
69 std::map<std::wstring, void*> m_staticFunctionMap;
70 std::wstring m_wstrCaller;
72 types::Callable* m_pCallDgetx;
73 types::Callable* m_pCallDgety;
75 types::String* m_pStringDgetxDyn;
76 types::String* m_pStringDgetyDyn;
78 types::String* m_pStringDgetxStatic;
79 types::String* m_pStringDgetyStatic;
81 std::vector<types::InternalType*> m_dgetxArgs;
82 std::vector<types::InternalType*> m_dgetyArgs;
90 class SIGNAL_PROCESSING_IMPEXP Signalprocessing
92 // differential equation functions
94 static Signalprocessingfunctions* m_Signalprocessingfunctions;
97 static void addSignalprocessingfunctions(Signalprocessingfunctions* _spFunction);
98 static void removeSignalprocessingfunctions();
99 static Signalprocessingfunctions* getSignalprocessingfunctions();
101 #endif /* !__SIGNALPROCESSING_HXX__ */