+}
+
+SignalFilter::~SignalFilter (void)
+{
+ delete m_vecFilter;
+}
+
+
+SignalFilter::FilterID
+SignalFilter::convertFilterNameToID (const char *filterName)
+{
+ FilterID filterID = FILTER_INVALID;
+
+ if (strcasecmp (filterName, FILTER_BANDLIMIT_STR) == 0)
+ filterID = FILTER_BANDLIMIT;
+ else if (strcasecmp (filterName, FILTER_HAMMING_STR) == 0)
+ filterID = FILTER_G_HAMMING;
+ else if (strcasecmp (filterName, FILTER_SINC_STR) == 0)
+ filterID = FILTER_SINC;
+ else if (strcasecmp (filterName, FILTER_COS_STR) == 0)
+ filterID = FILTER_COSINE;
+ else if (strcasecmp (filterName, FILTER_TRIANGLE_STR) == 0)
+ filterID = FILTER_TRIANGLE;
+ else if (strcasecmp (filterName, FILTER_ABS_BANDLIMIT_STR) == 0)
+ filterID = FILTER_ABS_BANDLIMIT;
+ else if (strcasecmp (filterName, FILTER_ABS_HAMMING_STR) == 0)
+ filterID = FILTER_ABS_G_HAMMING;
+ else if (strcasecmp (filterName, FILTER_ABS_SINC_STR) == 0)
+ filterID = FILTER_ABS_SINC;
+ else if (strcasecmp (filterName, FILTER_ABS_COS_STR) == 0)
+ filterID = FILTER_ABS_COSINE;
+ else if (strcasecmp (filterName, FILTER_SHEPP_STR) == 0)
+ filterID = FILTER_SHEPP;
+
+ return (filterID);
+}
+
+const char *
+SignalFilter::convertFilterIDToName (const FilterID filterID)
+{
+ const char *name = "";
+
+ if (filterID == FILTER_SHEPP)
+ name = FILTER_SHEPP_STR;
+ else if (filterID == FILTER_ABS_COSINE)
+ name = FILTER_ABS_COS_STR;
+ else if (filterID == FILTER_ABS_SINC)
+ name = FILTER_ABS_SINC_STR;
+ else if (filterID == FILTER_ABS_G_HAMMING)
+ name = FILTER_ABS_HAMMING_STR;
+ else if (filterID == FILTER_ABS_BANDLIMIT)
+ name = FILTER_ABS_BANDLIMIT_STR;
+ else if (filterID == FILTER_COSINE)
+ name = FILTER_COS_STR;
+ else if (filterID == FILTER_SINC)
+ name = FILTER_SINC_STR;
+ else if (filterID == FILTER_G_HAMMING)
+ name = FILTER_HAMMING_STR;
+ else if (filterID == FILTER_BANDLIMIT)
+ name = FILTER_BANDLIMIT_STR;
+ else if (filterID == FILTER_TRIANGLE)
+ name = FILTER_TRIANGLE_STR;
+
+ return (name);
+}
+
+const SignalFilter::DomainID
+SignalFilter::convertDomainNameToID (const char* const domainName)
+{
+ DomainID dID = DOMAIN_INVALID;
+
+ if (strcasecmp (domainName, DOMAIN_SPATIAL_STR) == 0)
+ dID = DOMAIN_SPATIAL;
+ else if (strcasecmp (domainName, DOMAIN_FREQ_STR) == 0)
+ dID = DOMAIN_FREQ;
+
+ return (dID);
+}
+
+const char *
+SignalFilter::convertDomainIDToName (const DomainID domain)
+{
+ const char *name = "";
+
+ if (domain == DOMAIN_SPATIAL)
+ return (DOMAIN_SPATIAL_STR);
+ else if (domain == DOMAIN_FREQ)
+ return (DOMAIN_FREQ_STR);
+
+ return (name);
+}
+
+
+double
+SignalFilter::response (double x)
+{
+ double response = 0;
+
+ if (m_idDomain == DOMAIN_SPATIAL)
+ response = spatialResponse (m_idFilter, m_bw, x, m_filterParam, m_numIntegral);
+ else if (m_idDomain == DOMAIN_FREQ)
+ response = frequencyResponse (m_idFilter, m_bw, x, m_filterParam);
+
+ return (response);