// if intArrays have the same # of elements and those elements are equal bool IntArray::operator==(IntArray ia) { if (length() == ia.length()) { for (int i = 0; i < ia.length(); i++) { if (num[a+i-1] != ia[ia.low()+i]) return false; } return true; } else return false; }
BEGIN_UGEN_NAMESPACE #include "ugen_FFTMagnitudeSelection.h" #include "ugen_FFTEngine.h" #include "../core/ugen_Bits.h" FFTMagnitudeSelectionUGenInternal::FFTMagnitudeSelectionUGenInternal(UGen const& input, FFTEngine const& fft, const int overlap, IntArray const& _bins) throw() : ProxyOwnerUGenInternal(NumInputs, _bins.length()-1), fftEngine(fft), fftSize(fftEngine.size()), fftSizeHalved(fftSize / 2), overlap_(overlap < 1 ? 1 : overlap), hopSize(fftSize / overlap), overlapSize(fftSize - hopSize), maxNumBins(fftSizeHalved + 1), bins(_bins), inputBuffer(BufferSpec(fftSize, 1, true)), outputBuffer(BufferSpec(fftSize, 1, true)), bufferIndex(fftSize - hopSize), magnitudes(BufferSpec(bins.length(), 1, true)), outputSampleData(new float*[bins.length()]) { ugen_assert(overlap == overlap_); // should be > 0 ugen_assert(bins.length() > 0); inputs[Input] = input; }
TextArray IOKey::collectTypeNames (IntArray const& keys) throw() { const int numKeys = keys.length(); TextArray names (TextArray::withSize (numKeys)); for (int i = 0; i < numKeys; ++i) names.put (i, IOKey::getTypeName (keys.atUnchecked (i))); return names; }
TextArray Measure::collectSymbols (IntArray const& keys) throw() { const int numKeys = keys.length(); TextArray names (TextArray::withSize (numKeys)); for (int i = 0; i < numKeys; ++i) names.put (i, Measure::getSymbol (keys.atUnchecked (i))); return names; }
bool IntArray::operator+=(IntArray ia) { // cout << *this << endl; if (length() == ia.length()) { for (int i = 0; i <= length(); i++) { num[i] += ia[ia.low()+i]; } return true; } cout << "totally simulating a halt" << endl; return false; }
UGenArray UGenArray::wrapAt(IntArray const& indices) const throw() { if(internal->size() == 0) return UGenArray(); const int size = indices.length(); if(size == 0) { return UGenArray(); } else { UGenArray newArray(size); for(int i = 0; i < size; i++) { const int index = indices.at(i); newArray.put(i, wrapAt(index)); } return newArray; } }
/* Reads core metadata from the currently initialized reader. */ void readCoreMetadata() { if (!doCore) return; // skip core metadata printout // read basic metadata cout << endl; cout << "Reading core metadata" << endl; cout << "Filename = " << *id << endl; StringArray used = reader->getUsedFiles(); int usedLength = used.isNull() ? -1 : (int) used.length(); bool usedValid = usedLength > 0; if (usedValid) { for (int u=0; u<usedLength; u++) { if (used[u].isNull()) { usedValid = false; break; } } } if (!usedValid) { cout << "************ Warning: invalid used files list ************" << endl; } if (used.isNull()) { cout << "Used files = null" << endl; } else if (usedLength == 0) { cout << "Used files = []" << endl; } else if (usedLength > 1) { cout << "Used files:" << endl; for (int u=0; u<usedLength; u++) cout << "\t" << used[u] << endl; } else if (id && !id->equals(used[0])) { cout << "Used files = [" << used[0] << "]" << endl; } int seriesCount = reader->getSeriesCount(); cout << "Series count = " << seriesCount << endl; MetadataStore ms = reader->getMetadataStore(); MetadataRetrieve mr = MetadataTools::asRetrieve(ms); for (int j=0; j<seriesCount; j++) { reader->setSeries(j); // read basic metadata for series #i int imageCount = reader->getImageCount(); bool rgb = reader->isRGB(); int sizeX = reader->getSizeX(); int sizeY = reader->getSizeY(); int sizeZ = reader->getSizeZ(); int sizeC = reader->getSizeC(); int sizeT = reader->getSizeT(); int pixelType = reader->getPixelType(); int effSizeC = reader->getEffectiveSizeC(); int rgbChanCount = reader->getRGBChannelCount(); bool indexed = reader->isIndexed(); bool falseColor = reader->isFalseColor(); ByteArray2D table8 = reader->get8BitLookupTable(); ShortArray2D table16 = reader->get16BitLookupTable(); IntArray cLengths = reader->getChannelDimLengths(); StringArray cTypes = reader->getChannelDimTypes(); int thumbSizeX = reader->getThumbSizeX(); int thumbSizeY = reader->getThumbSizeY(); bool little = reader->isLittleEndian(); String dimOrder = reader->getDimensionOrder(); bool orderCertain = reader->isOrderCertain(); bool thumbnail = reader->isThumbnailSeries(); bool interleaved = reader->isInterleaved(); bool metadataComplete = reader->isMetadataComplete(); // output basic metadata for series #i cout << "Series #" << j; if (j < mr.getImageCount()) { cout << " -- " << mr.getImageName(j); } cout << ":" << endl; cout << "\tImage count = " << imageCount << endl; cout << "\tRGB = " << tf(rgb) << " (" << rgbChanCount << ")"; if (cMerge) cout << " (merged)"; else if (separate) cout << " (separated)"; cout << endl; if (rgb != (rgbChanCount != 1)) { cout << "\t************ Warning: RGB mismatch ************" << endl; } cout << "\tInterleaved = " << tf(interleaved) << endl; cout << "\tIndexed = " << tf(indexed) << " (" << (falseColor ? "false" : "true") << " color"; if (!table8.isNull()) { int numTables8 = table8.length(); cout << ", 8-bit LUT: " << numTables8 << " x "; cout << "?" << endl;//TEMP //ByteArray firstTable8 = table8[0]; // FIXME //if (firstTable8.isNull()) cout << "null"; //else cout << firstTable8.length(); } if (!table16.isNull()) { int numTables16 = table16.length(); cout << ", 16-bit LUT: " << numTables16 << " x "; cout << "?" << endl;//TEMP //ShortArray firstTable16 = table16[0]; // FIXME //if (firstTable16.isNull()) cout << "null"; //else cout << firstTable16.length(); } cout << ")" << endl; if (indexed && table8.isNull() && table16.isNull()) { cout << "\t************ Warning: no LUT ************" << endl; } if (!table8.isNull() && !table16.isNull()) { cout << "\t************ Warning: multiple LUTs ************" << endl; } cout << "\tWidth = " << sizeX << endl; cout << "\tHeight = " << sizeY << endl; cout << "\tSizeZ = " << sizeZ << endl; cout << "\tSizeT = " << sizeT << endl; cout << "\tSizeC = " << sizeC; if (sizeC != effSizeC) cout << " (effectively " << effSizeC << ")"; int cProduct = 1; int numDims = cLengths.length(); if (numDims == 1 && FormatTools::CHANNEL().equals(cTypes[0])) { cProduct = cLengths[0]; } else { cout << " ("; for (int i=0; i<numDims; i++) { if (i > 0) cout << " x "; int cLength = cLengths[i]; cout << cLength << " " << cTypes[i]; cProduct *= cLength; } cout << ")"; } cout << endl; if (numDims == 0 || cProduct != sizeC) { cout << "\t************ Warning: C dimension mismatch ************" << endl; } if (imageCount != sizeZ * effSizeC * sizeT) { cout << "\t************ Warning: ZCT mismatch ************" << endl; } cout << "\tThumbnail size = " << thumbSizeX << " x " << thumbSizeY << endl; cout << "\tEndianness = " << (little ? "intel (little)" : "motorola (big)") << endl; cout << "\tDimension order = " << dimOrder << (orderCertain ? " (certain)" : " (uncertain)") << endl; cout << "\tPixel type = " << FormatTools::getPixelTypeString(pixelType) << endl; cout << "\tMetadata complete = " << tf(metadataComplete) << endl; cout << "\tThumbnail series = " << tf(thumbnail) << endl; } }