| 301 | } |
| 302 | |
| 303 | void SamplerGrid::DrawModule() |
| 304 | { |
| 305 | |
| 306 | if (Minimized() || IsVisible() == false) |
| 307 | return; |
| 308 | |
| 309 | mPassthroughCheckbox->Draw(); |
| 310 | mVolumeSlider->Draw(); |
| 311 | mEditCheckbox->Draw(); |
| 312 | mClearCheckbox->Draw(); |
| 313 | mGrid->Draw(); |
| 314 | mGridControlTarget->Draw(); |
| 315 | |
| 316 | ofPushStyle(); |
| 317 | ofSetColor(255, 255, 255, 100); |
| 318 | ofFill(); |
| 319 | for (int x = 0; x < mCols; ++x) |
| 320 | { |
| 321 | for (int y = 0; y < mRows; ++y) |
| 322 | { |
| 323 | int idx = GridToIdx(x, y); |
| 324 | if (mGridSamples[idx].mHasSample) |
| 325 | { |
| 326 | ofVec2f cellPos = mGrid->GetCellPosition(x, y); |
| 327 | ofVec2f gridSize = mGrid->IClickable::GetDimensions(); |
| 328 | ofVec2f gridPos = mGrid->IClickable::GetPosition(); |
| 329 | ofRect(gridPos.x + cellPos.x, gridPos.y + cellPos.y, gridSize.x / mCols, gridSize.y / mCols); |
| 330 | } |
| 331 | } |
| 332 | } |
| 333 | ofPopStyle(); |
| 334 | |
| 335 | if (mEditMode) |
| 336 | { |
| 337 | mDuplicateCheckbox->Draw(); |
| 338 | if (mEditSample && mEditSample->mSampleLength > 0) |
| 339 | { |
| 340 | ofPushMatrix(); |
| 341 | ofTranslate(mEditSampleX, mEditSampleY); |
| 342 | DrawAudioBuffer(mEditSampleWidth, mEditSampleHeight, mEditSample->mSampleData, 0, mEditSample->mSampleLength, mEditSample->mPlayhead); |
| 343 | ofPushStyle(); |
| 344 | ofFill(); |
| 345 | ofSetColor(0, 0, 0, 80); |
| 346 | float clipStartAmount = float(mEditSample->mSampleStart) / mEditSample->mSampleLength; |
| 347 | float clipEndAmount = float(mEditSample->mSampleEnd) / mEditSample->mSampleLength; |
| 348 | ofRect(0, 0, mEditSampleWidth * clipStartAmount, mEditSampleHeight); |
| 349 | ofRect(mEditSampleWidth * clipEndAmount, 0, mEditSampleWidth * (1 - clipEndAmount), mEditSampleHeight); |
| 350 | ofPopStyle(); |
| 351 | ofPopMatrix(); |
| 352 | mEditStartSlider->Draw(); |
| 353 | mEditEndSlider->Draw(); |
| 354 | } |
| 355 | } |
| 356 | } |
| 357 | |
| 358 | void SamplerGrid::GetModuleDimensions(float& width, float& height) |
| 359 | { |
nothing calls this directly
no test coverage detected