Example #1
0
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());
    }
}
Example #2
0
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);
    }
}
Example #3
0
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());
    }
}
Example #4
0
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));
}
Example #5
0
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];
                }
            }
        }
    }
}
Example #6
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)));
}
Example #7
0
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());
    }
}
Example #8
0
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 << "\"");
}
Example #9
0
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);
}
Example #10
0
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;
}
Example #11
0
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)));
    }
}
Example #12
0
void djvVectorUtilTest::isSizeValid()
{
    DJV_DEBUG("djvVectorUtilTest::isSizeValid");
    
    DJV_ASSERT(
        djvVectorUtil::isSizeValid(djvVector2i(1, 2)) &&
        !djvVectorUtil::isSizeValid(djvVector2i(-1, -2)));
}
Example #13
0
const QStringList & djvJpeg::optionsLabels()
{
    static const QStringList data = QStringList() <<
        qApp->translate("djvJpeg", "Quality");

    DJV_ASSERT(data.count() == OPTIONS_COUNT);

    return data;
}
Example #14
0
const QStringList & djvLutPlugin::optionsLabels()
{
    static const QStringList data = QStringList() <<
        "Type";

    DJV_ASSERT(data.count() == OPTIONS_COUNT);

    return data;
}
Example #15
0
const List<String> & Save::label_options()
{
    static const List<String> data = List<String>() <<
        "Compression";

    DJV_ASSERT(data.size() == _OPTIONS_SIZE);

    return data;
}
Example #16
0
const List<String> & Load::label_options()
{
    static const List<String> data = List<String>() <<
        "Frame";

    DJV_ASSERT(data.size() == _OPTIONS_SIZE);

    return data;
}
Example #17
0
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;
}
Example #18
0
const List<String> & label_compression()
{
    static const List<String> data = List<String>() <<
        "None" <<
        "RLE";

    DJV_ASSERT(data.size() == _COMPRESSION_SIZE);

    return data;
}
Example #19
0
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;
}
Example #20
0
const QStringList & djvLutPlugin::formatLabels()
{
    static const QStringList data = QStringList() <<
        "Inferno" <<
        "Kodak";

    DJV_ASSERT(data.count() == FORMAT_COUNT);

    return data;
}
Example #21
0
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;
}
Example #22
0
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];
}
Example #23
0
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;
}
Example #24
0
const QStringList & djvFileInfo::typeImages()
{
    static const QStringList data = QStringList() <<
                                    ":djvFile.svg" <<
                                    ":djvSequence.svg" <<
                                    ":djvDir.svg";

    DJV_ASSERT(data.count() == djvFileInfo::TYPE_COUNT);

    return data;
}
Example #25
0
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;
}
Example #26
0
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;
}
Example #27
0
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;
}
Example #28
0
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;
}
Example #29
0
const List<String> & Seq::label_compress()
{
    static const List<String> data = List<String>() <<
        "Off" <<
        "Sparse" <<
        "Range";

    DJV_ASSERT(data.size() == _COMPRESS_SIZE);

    return data;
}
Example #30
0
const QStringList & djvFileBrowserModel::thumbnailsSizeLabels()
{
    static const QStringList data = QStringList() <<
        tr("Small") <<
        tr("Medium") <<
        tr("Large");

    DJV_ASSERT(data.count() == THUMBNAILS_COUNT);

    return data;
}