void djvSpeedTest::members() { DJV_DEBUG("djvSpeedTest::members"); { djvSpeed::setSpeed(djvSpeed::FPS_24); const djvSpeed speed = djvSpeed::speed(); djvSpeed::setSpeed(djvSpeed::FPS_23_976); djvSpeed::setSpeed(djvSpeed::speedDefault()); DJV_ASSERT(djvSpeed::speed() == speed); } { djvSpeed speed; speed.set(djvSpeed::FPS_23_976); DJV_ASSERT(24000 == speed.scale()); DJV_ASSERT(1001 == speed.duration()); } { DJV_ASSERT(djvSpeed().isValid()); DJV_ASSERT(! djvSpeed(0, 0).isValid()); } }
void djvSpeedTest::convert() { DJV_DEBUG("djvSpeedTest::convert"); const struct Data { djvSpeed speed; double value; } data [] = { { djvSpeed(djvSpeed::FPS_23_976), 23.976 }, { djvSpeed(djvSpeed::FPS_24), 24.0 }, { djvSpeed(djvSpeed::FPS_29_97), 29.97 }, { djvSpeed(240, 1), 240.0 } }; const int dataCount = sizeof(data) / sizeof(data[0]); for (int i = 0; i < dataCount; ++i) { DJV_DEBUG_PRINT("speed = " << data[i].speed); const double value = djvSpeed::speedToFloat(data[i].speed); DJV_DEBUG_PRINT("value = " << value); DJV_ASSERT(djvMath::fuzzyCompare(value, data[i].value, 0.0001)); const djvSpeed speed = djvSpeed::floatToSpeed(value); DJV_ASSERT(data[i].speed == speed); } }
void djvSpeedTest::operators() { DJV_DEBUG("djvSpeedTest::operators"); { const djvSpeed a(djvSpeed::FPS_23_976), b(djvSpeed::FPS_23_976); DJV_ASSERT(a == b); DJV_ASSERT(a != djvSpeed()); } { djvSpeed speed; QStringList tmp; tmp << speed; tmp >> speed; DJV_ASSERT(speed == djvSpeed()); } { DJV_DEBUG_PRINT(djvSpeed()); } }
void djvVectorUtilTest::range() { DJV_DEBUG("djvVectorUtilTest::range"); DJV_ASSERT( djvVectorUtil::min(djvVector2i(1, 2), djvVector2i(3, 4)) == djvVector2i(1, 2)); DJV_ASSERT( djvVectorUtil::max(djvVector2i(1, 2), djvVector2i(3, 4)) == djvVector2i(3, 4)); DJV_ASSERT( djvVectorUtil::clamp(djvVector2i(-10, 10), djvVector2i(1, 2), djvVector2i(3, 4)) == djvVector2i(1, 4)); }
void Pixel_Data::planar_interleave( const Pixel_Data & in, Pixel_Data * out, Pixel_Data_Info::PROXY proxy) { DJV_ASSERT(out); DJV_ASSERT(in.pixel() == out->pixel()); DJV_ASSERT(in.pixel() != Pixel::RGB_U10); //DJV_DEBUG("Pixel_Data::planar_interleave"); //DJV_DEBUG_PRINT("in = " << in); //DJV_DEBUG_PRINT("out = " << *out); //DJV_DEBUG_PRINT("proxy = " << proxy); const int w = out->w(), h = out->h(); const int proxy_scale = Pixel_Data::proxy_scale(proxy); const int channels = out->channels(); const size_t bytes_pixel = out->bytes_pixel(); const int channel_bytes = Pixel::channel_bytes(out->pixel()); for (int c = 0; c < channels; ++c) { for (int y = 0; y < h; ++y) { const uint8_t * in_p = in.data() + (c * in.h() + y * proxy_scale) * in.w() * channel_bytes; uint8_t * out_p = out->data(0, y) + c * channel_bytes; for ( int x = 0; x < w; ++x, in_p += channel_bytes * proxy_scale, out_p += bytes_pixel) { switch (channel_bytes) { case 4: out_p[3] = in_p[3]; case 3: out_p[2] = in_p[2]; case 2: out_p[1] = in_p[1]; case 1: out_p[0] = in_p[0]; } } } } }
void djvVectorUtilTest::convert() { DJV_DEBUG("djvVectorUtilTest::convert"); djvVector2i v2i = djvVectorUtil::convert<double, int, 2>(djvVector2f(1.0, 2.0)); DJV_ASSERT(v2i == djvVector2i(1, 2)); v2i = djvVectorUtil::ceil<double, int, 2>(djvVector2f(0.5, 0.5)); DJV_ASSERT(v2i == djvVector2i(1, 1)); v2i = djvVectorUtil::floor<double, int, 2>(djvVector2f(0.5, 0.5)); DJV_ASSERT(v2i == djvVector2i(0, 0)); DJV_ASSERT((QStringList() << "1" << "2") == djvStringUtil::label(djvVector2i(1, 2))); }
void djvColorUtilTest::qt() { DJV_DEBUG("djvColorUtilTest::qt"); { djvColor color(djvPixel::RGBA_U8); color.setU8(255, 0); color.setU8(127, 1); color.setU8( 0, 2); color.setU8(255, 3); const QColor qColor = djvColorUtil::toQt(color); DJV_ASSERT(qColor.red() == color.u8(0)); DJV_ASSERT(qColor.green() == color.u8(1)); DJV_ASSERT(qColor.blue() == color.u8(2)); DJV_ASSERT(qColor.alpha() == color.u8(3)); } { QColor qColor(255, 127, 0, 255); const djvColor color = djvColorUtil::fromQt(qColor); DJV_ASSERT(color.u8(0) == qColor.red()); DJV_ASSERT(color.u8(1) == qColor.green()); DJV_ASSERT(color.u8(2) == qColor.blue()); DJV_ASSERT(color.u8(3) == qColor.alpha()); } }
void djvFileIoUtil::line(djvFileIo & in, char * out, int maxLen) throw (djvError) { DJV_ASSERT(maxLen > 0); //DJV_DEBUG("djvFileIoUtil::line"); //! \todo Should we handle comments here like djvFileIoUtil::word()? int i = 0; char c = 0; do { in.get(&c, 1); if ( c != '\n' && c != '\r') { out[i++] = c; //DJV_DEBUG_PRINT(QString(out, i)); } } while ( c != '\n' && c != '\r' && in.isValid() && i < (maxLen - 1)); out[i] = 0; //DJV_DEBUG_PRINT("out = \"" << out << "\""); }
void Abstract_Widget::del() { //if (_del) // return; //_del = true; //DJV_DEBUG(String_Format("Abstract_Widget::del(%%)"). // arg(layout_item::debug_path(this))); Callback::del(); _layout.reset(); Fl_Widget * widget = dynamic_cast<Fl_Widget *>(this); DJV_ASSERT(widget); if (widget->parent()) { //DJV_DEBUG_PRINT("fltk remove"); widget->parent()->remove(widget); widget->parent(0); } Fl::delete_widget(widget); DJV_APP->widget_del(this); }
const QStringList & djvPixel::pixelLabels() { static const QStringList data = QStringList() << qApp->translate("djvPixel", "L U8") << qApp->translate("djvPixel", "L U16") << qApp->translate("djvPixel", "L F16") << qApp->translate("djvPixel", "L F32") << qApp->translate("djvPixel", "LA U8") << qApp->translate("djvPixel", "LA U16") << qApp->translate("djvPixel", "LA F16") << qApp->translate("djvPixel", "LA F32") << qApp->translate("djvPixel", "RGB U8") << qApp->translate("djvPixel", "RGB U10") << qApp->translate("djvPixel", "RGB U16") << qApp->translate("djvPixel", "RGB F16") << qApp->translate("djvPixel", "RGB F32") << qApp->translate("djvPixel", "RGBA U8") << qApp->translate("djvPixel", "RGBA U16") << qApp->translate("djvPixel", "RGBA F16") << qApp->translate("djvPixel", "RGBA F32"); DJV_ASSERT(data.count() == PIXEL_COUNT); return data; }
void djvColorUtilTest::lerp() { DJV_DEBUG("djvColorUtilTest::lerp"); { djvColor color(djvPixel::L_F32); djvColorUtil::lerp(0.5, djvColor(0.0f), djvColor(1.0f), color); DJV_ASSERT(djvMath::fuzzyCompare(0.5f, color.f32(0))); } { const djvColor color = djvColorUtil::lerp(0.5, djvColor(0.0f), djvColor(1.0f)); DJV_ASSERT(djvMath::fuzzyCompare(0.5f, color.f32(0))); } }
void djvVectorUtilTest::isSizeValid() { DJV_DEBUG("djvVectorUtilTest::isSizeValid"); DJV_ASSERT( djvVectorUtil::isSizeValid(djvVector2i(1, 2)) && !djvVectorUtil::isSizeValid(djvVector2i(-1, -2))); }
const QStringList & djvJpeg::optionsLabels() { static const QStringList data = QStringList() << qApp->translate("djvJpeg", "Quality"); DJV_ASSERT(data.count() == OPTIONS_COUNT); return data; }
const QStringList & djvLutPlugin::optionsLabels() { static const QStringList data = QStringList() << "Type"; DJV_ASSERT(data.count() == OPTIONS_COUNT); return data; }
const List<String> & Save::label_options() { static const List<String> data = List<String>() << "Compression"; DJV_ASSERT(data.size() == _OPTIONS_SIZE); return data; }
const List<String> & Load::label_options() { static const List<String> data = List<String>() << "Frame"; DJV_ASSERT(data.size() == _OPTIONS_SIZE); return data; }
const QStringList & djvPixel::dataLabels() { static const QStringList data = QStringList() << qApp->translate("djvPixel", "Integer") << qApp->translate("djvPixel", "Float"); DJV_ASSERT(data.count() == DATA_COUNT); return data; }
const List<String> & label_compression() { static const List<String> data = List<String>() << "None" << "RLE"; DJV_ASSERT(data.size() == _COMPRESSION_SIZE); return data; }
const List<String> & File_Browser::label_navigate() { static const List<String> data = List<String>() << "Single-Click" << "Double-Click"; DJV_ASSERT(data.size() == _NAVIGATE_SIZE); return data; }
const QStringList & djvLutPlugin::formatLabels() { static const QStringList data = QStringList() << "Inferno" << "Kodak"; DJV_ASSERT(data.count() == FORMAT_COUNT); return data; }
const List<String> & File_Browser::label_image() { static const List<String> data = List<String>() << "Off" << "Low Quality" << "High Quality"; DJV_ASSERT(data.size() == _IMAGE_SIZE); return data; }
int djvFileBrowserModel::thumbnailsSizeValue(THUMBNAILS_SIZE size) { static const QVector<int> data = QVector<int>() << 100 << 200 << 300; DJV_ASSERT(data.count() == THUMBNAILS_SIZE_COUNT); return data[size]; }
const QStringList & djvFileInfo::permissionsLabels() { static const QStringList data = QStringList() << qApp->translate("djvFileInfo", "r") << qApp->translate("djvFileInfo", "w") << qApp->translate("djvFileInfo", "x"); DJV_ASSERT(data.count() == djvFileInfo::PERMISSIONS_COUNT); return data; }
const QStringList & djvFileInfo::typeImages() { static const QStringList data = QStringList() << ":djvFile.svg" << ":djvSequence.svg" << ":djvDir.svg"; DJV_ASSERT(data.count() == djvFileInfo::TYPE_COUNT); return data; }
const QStringList & djvFileInfo::typeLabels() { static const QStringList data = QStringList() << qApp->translate("djvFileInfo", "File") << qApp->translate("djvFileInfo", "Seq") << qApp->translate("djvFileInfo", "Dir"); DJV_ASSERT(data.count() == djvFileInfo::TYPE_COUNT); return data; }
const List<String> & File_Util::label_type() { static const List<String> data = List<String>() << "File" << "Seq" << "Dir"; DJV_ASSERT(data.size() == File::_TYPE_SIZE); return data; }
const List<String> & File_Util::label_perm() { static const List<String> data = List<String>() << "r" << "w" << "x"; DJV_ASSERT(static_cast<int>(data.size()) == File::_PERM_SIZE); return data; }
const QStringList & djvFileBrowserModel::thumbnailsLabels() { static const QStringList data = QStringList() << tr("Off") << tr("Low Quality") << tr("High Quality"); DJV_ASSERT(data.count() == THUMBNAILS_COUNT); return data; }
const List<String> & Seq::label_compress() { static const List<String> data = List<String>() << "Off" << "Sparse" << "Range"; DJV_ASSERT(data.size() == _COMPRESS_SIZE); return data; }
const QStringList & djvFileBrowserModel::thumbnailsSizeLabels() { static const QStringList data = QStringList() << tr("Small") << tr("Medium") << tr("Large"); DJV_ASSERT(data.count() == THUMBNAILS_COUNT); return data; }