コード例 #1
0
void Globalization::dateToString(int scId, int ecId, const QVariantMap &options) {
    time_t time = options.find("time_t")->toLongLong() / 1000;

    Globalization::Format formatLength = static_cast<Globalization::Format>(options.find("formatLength")->toInt());
    Globalization::Selector selector = static_cast<Globalization::Selector>(options.find("selector")->toInt());

    QLocale::FormatType format = translateFormat(formatLength);
    if (time < 0) {
        this->callback(ecId, QString("new GlobalizationError(%1, 'unsupported operation');").arg(Globalization::FORMATTING_ERROR));
        return;
    }

    QLocale locale;
    QString res;
    QDateTime dateTime = QDateTime::fromTime_t((uint)time);
    switch (selector) {
    case SELECTOR_ALL:
        res = locale.toString(dateTime,format);
        break;
    case SELECTOR_TIME:
        res = locale.toString(dateTime.time(), format);
        break;
    case SELECTOR_DATE:
        res = locale.toString(dateTime.date(), format);
        break;
    }
    QVariantMap obj;
    obj.insert("value", res);
    this->cb(scId, obj);
}
コード例 #2
0
void Globalization::stringToDate(int scId, int ecId, const QVariantMap &options) {
    QString dateString = options.find("dateString")->toString();
    Globalization::Format formatLength = static_cast<Globalization::Format>(options.find("formatLength")->toInt());
    Globalization::Selector selector = static_cast<Globalization::Selector>(options.find("selector")->toInt());

    QLocale::FormatType format = translateFormat(formatLength);
    QLocale locale;
    bool valid(true);
    int year(0), month(0), day(0), hour(0), minute(0), second(0), millisecond(0);
    switch (selector) {
    case SELECTOR_ALL:
        {
            QDateTime dateTime = locale.toDateTime(dateString, format);
            valid = dateTime.isValid();
            QTime time = dateTime.time();
            hour = time.hour(); minute = time.minute(); second = time.second(); millisecond = time.msec();
            QDate date = dateTime.date();
            year = date.year(); month = date.month(); day = date.day();
        }
        break;
    case SELECTOR_TIME:
        {
            QTime time = locale.toTime(dateString, format);
            valid = time.isValid();
            hour = time.hour(); minute = time.minute(); second = time.second(); millisecond = time.msec();
        }
        break;
    case SELECTOR_DATE:
        {
            QDate date = locale.toDate(dateString, format);
            valid = date.isValid();
            year = date.year(); month = date.month(); day = date.day();
        }
        break;
    }
    if ((format == QLocale::NarrowFormat || format == QLocale::ShortFormat) && year < 2000 && year > 1900) {
        year += 100;
    }
    if (!valid) {
        this->callback(ecId, QString("new GlobalizationError(%1, 'parsing error')").arg(Globalization::PARSING_ERROR));
    } else {
        QVariantMap obj;
        obj.insert("year", year);
        obj.insert("month", month - 1);
        obj.insert("day", day);
        obj.insert("hour", hour);
        obj.insert("minute", minute);
        obj.insert("second", second);
        obj.insert("millisecond", millisecond);
        this->cb(scId, obj);
    }
}
コード例 #3
0
/*==============================================================================
* Function : configureThumbnailData
* Parameters: None
* Return Value : OMX_ERRORTYPE
* Description: Configure the encode parameters for thumbnail
==============================================================================*/
OMX_ERRORTYPE OMXJpegEncoder::configureThumbnailData()
{
  OMX_ERRORTYPE lret = OMX_ErrorNone;
  QICrop l_crop;
  uint32_t l_imageSize;

  //Start configuration only if the abort flag is not set
  m_inputTmbSize.setHeight((int)m_inTmbPort->format.image.nFrameHeight);
  m_inputTmbSize.setWidth((int)m_inTmbPort->format.image.nFrameWidth);
  m_inputTmbPadSize.setHeight((int)m_inTmbPort->format.image.nSliceHeight);
  m_inputTmbPadSize.setWidth((int)m_inTmbPort->format.image.nStride);

  QIDBG_HIGH("%s:%d] size %dx%d pad %dx%d subsampling %d",
    __func__, __LINE__,
    m_inputTmbSize.Width(), m_inputTmbSize.Height(),
    m_inputTmbPadSize.Width(), m_inputTmbPadSize.Height(),
    m_subsampling);

  m_thumbEncodeParams.setNumOfComponents(m_numOfComponents);

  //Set Crop Info if cropping is enabled
  if ((m_thumbnailInfo.crop_info.nWidth) != 0 &&
    (m_thumbnailInfo.crop_info.nHeight != 0) ) {
    l_crop.setCrop((int)m_thumbnailInfo.crop_info.nLeft,
      (int)m_thumbnailInfo.crop_info.nTop,
      (int)(m_thumbnailInfo.crop_info.nLeft + m_thumbnailInfo.crop_info.nWidth),
      (int)(m_thumbnailInfo.crop_info.nTop +
      m_thumbnailInfo.crop_info.nHeight));
      m_thumbEncodeParams.setCrop(l_crop);
  }

  //Translate from OMX format to QIformat
  lret = translateFormat(m_inTmbPort->format.image.eColorFormat, &m_thumbFormat,
    &m_thumbSubsampling);
  if (lret != OMX_ErrorNone) {
    return lret;
  }

   /*Set output size if scale is enabled set the output
  size to be size after scaling*/
  if ((m_thumbnailInfo.output_width != 0) &&
    (m_thumbnailInfo.output_height != 0)) {
     m_outputSize[1].setWidth((int)m_thumbnailInfo.output_width);
     m_outputSize[1].setHeight((int)m_thumbnailInfo.output_height);
     QIDBG_HIGH("%s:%d] Thumbnail Scaling enabled o/p width: %d o/p height:%d",
       __func__, __LINE__, m_outputSize[1].Width(), m_outputSize[1].Height());
  } else {
    m_outputSize[1].setWidth((int)m_inTmbPort->format.image.nFrameWidth);
    m_outputSize[1].setHeight((int)m_inTmbPort->format.image.nFrameHeight);
    QIDBG_HIGH("%s:%d] Thumbnail Scaling not enabled width: %d height:%d",
      __func__, __LINE__, m_outputSize[1].Width(), m_outputSize[1].Height());
  }

  m_thumbEncodeParams.setOutputSize(m_outputSize[1]);
  m_thumbEncodeParams.setInputSize(m_inputTmbSize);
  m_thumbEncodeParams.setRestartInterval(0);
  m_thumbEncodeParams.setRotation((uint32_t)m_thumbnailInfo.rotation);
  m_thumbEncodeParams.setQuality(DEFAULT_THUMB_Q_FACTOR);
  m_thumbEncodeParams.setDefaultTables(m_thumbEncodeParams.Quality());
  m_thumbEncodeParams.setHiSpeed(m_JpegSpeedMode.speedMode ==
    QOMX_JPEG_SPEED_MODE_HIGH);
  return lret;
}
コード例 #4
0
ファイル: text.cpp プロジェクト: bffmm1/gmailcommunity
taggedText::taggedText(FILE * fpi,bool a_InputHasTags,char * Iformat,int keepPunctuation,bool nice,
                             unsigned long int size,bool treatSlashAsAlternativesSeparator)
#endif
    :InputHasTags(a_InputHasTags)
    {
#ifdef COUNTOBJECTS
    ++COUNT;
#endif
    fields = 0;
    reducedtotal = 0;
    Root = 0;
    basefrmarrD = 0;
    basefrmarrL = 0;

#ifndef CONSTSTRCHR
    const 
#endif
        char * w;
    total = 0;
    const char * tag;
    field * wordfield;
    field * tagfield;
    field * format = 0;
    int slashFound = 0;
    if(nice)
        printf("counting words\n");
    lineno = 1;
    if(Iformat)
        {
        wordfield = 0;
        tagfield = 0;
        format = translateFormat(Iformat,wordfield,tagfield);
        if(!wordfield)
            {
            printf("Input format %s must specify '$w'.\n",Iformat);
            exit(0);
            }
        while(total < size && (w = getwordI(fpi,tag,format,wordfield,tagfield,lineno)) != 0)
            {
            if(*w)
                {
                ++total;
                if(treatSlashAsAlternativesSeparator)
                    {
                    total += findSlashes(w);
                    }
                }
            }
        }
    else
        {
        while(total < size && (w = getword(fpi,tag,InputHasTags,keepPunctuation,slashFound,lineno)) != 0)
            {
            if(*w)
                {
                ++total;
                if(slashFound && treatSlashAsAlternativesSeparator)
                    total += slashFound;
                }
            }
        }
    if(nice)
        {
        printf("... %lu words counted in %lu lines\n",total,lineno);
        }
#if STREAM
    fpi->clear();
    fpi->seekg(0, ios::beg);
#else
    rewind(fpi);
#endif
    if(nice)
        printf("allocating array of pointers to words\n");
    tunsorted =  new const Word * [total];
    if(nice)
        printf("allocating array of line offsets\n");
    Lines =  new unsigned long int [lineno];
    if(nice)
        printf("...allocated array\n");
    /** /
    FILE * ft = fopen("wordlist.txt","wb");
    / **/

    if(!InputHasTags)
        {
        total = 0;
        if(nice)
            printf("reading words\n");
        lineno = 1;
        if(format)
            {
            while(total < size && (w = getwordI(fpi,tag,format,wordfield,tagfield,lineno)) != 0)
                {
                if(treatSlashAsAlternativesSeparator && findSlashes(w))
                    createUnTaggedAlternatives(w);
                else
                    createUnTagged(w);
                }
            }
        else
            {
            while(total < size && (w = getword(fpi,tag,false,keepPunctuation,slashFound,lineno)) != 0)
                {
                if(slashFound && treatSlashAsAlternativesSeparator)
                    createUnTaggedAlternatives(w);
                else 
                    createUnTagged(w);
                }
            }
#if !TREE
        Root = Hash->convertToList(N);
        delete Hash;
//        qsort(Root,N,sizeof(Word *),cmpUntagged);
#endif
        if(nice)
            printf("...read words\n");
        }
    else
        {
        total = 0;
        if(nice)
            printf("reading words\n");
        lineno = 1;
        if(format)
            {
            while(total < size && (w = getwordI(fpi,tag,format,wordfield,tagfield,lineno)) != 0)
                {
                if(treatSlashAsAlternativesSeparator && findSlashes(w))
                    createTaggedAlternatives(w,tag);
                else if(*w)
                    createTagged(w,tag);
                }
            }
        else
            {
            while(total < size && (w = getword(fpi,tag,true,true,slashFound,lineno)) != 0)
                {
                if(*w)
                    {
                    if(!tag)
                        {
                        if(total > 1 && lineno > 1)
                            printf("Tag missing in word #%lu (\"%s\") (line #%lu).\n",total,w,lineno);
                        else
                            printf("Tag missing in word #%lu (\"%s\") (line #%lu). (Is the input text tagged?)\n",total,w,lineno);
                        exit(0);
                        }
                    if(slashFound && treatSlashAsAlternativesSeparator)
                        createTaggedAlternatives(w,tag);
                    else 
                        createTagged(w,tag);
                    }
                }
            reducedtotal = Word::reducedtotal;
            }
#if !TREE
        Root = Hash->convertToList(N);
        delete Hash;
//        qsort(Root,N,sizeof(Word *),cmpTagged);
#endif
        if(nice)
            printf("...read words\n");
        }
#if STREAM
    fpi->clear();
    fpi->seekg(0, ios::beg);
#else
    rewind(fpi);
#endif
    /** /
    for(unsigned int g = 0;g < total;++g)
        {
        if(tunsorted[g] && tunsorted[g]->m_word)
            fprintf(ft,"%s\n",tunsorted[g]->m_word);
        }
    fclose(ft);
    / **/
    sorted = false;
    }
コード例 #5
0
/*==============================================================================
* Function : configureEncodedata
* Parameters: None
* Return Value : OMX_ERRORTYPE
* Description: Configure the encode parmeters
==============================================================================*/
OMX_ERRORTYPE OMXJpegEncoder::configureEncodedata()
{
  OMX_ERRORTYPE lret = OMX_ErrorNone;
  uint32_t l_imageSize;
  QICrop l_crop;

  //Start configuration only if the abort flag is not set
  m_inputSize.setHeight((int)m_inPort->format.image.nFrameHeight);
  m_inputSize.setWidth((int)m_inPort->format.image.nFrameWidth);
  m_inputPadSize.setHeight((int)m_inPort->format.image.nSliceHeight);
  m_inputPadSize.setWidth((int)m_inPort->format.image.nStride);

  //Translate from OMX format to QIformat
  lret = translateFormat(m_inPort->format.image.eColorFormat, &m_format,
    &m_subsampling);
  if (lret != OMX_ErrorNone) {
    return lret;
  }
  QIDBG_HIGH("%s:%d] size %dx%d pad %dx%d subsampling %d format %d",
    __func__, __LINE__,
    m_inputSize.Width(), m_inputSize.Height(),
    m_inputPadSize.Width(), m_inputPadSize.Height(),
    m_subsampling, m_format);

  //Set num of planes
  m_mainEncodeParams.setNumOfComponents(m_numOfComponents);

  l_imageSize = QImage::getImageSize(m_inputSize, m_subsampling, m_format);
  QIDBG_HIGH("%s:%d] ImageSize %d %d", __func__, __LINE__, l_imageSize,
    m_inputSize.Length());

  //Create the exif composer
  if (NULL == m_composer) {
    m_composer = QExifComposer::New(*this);
    if (m_composer == NULL) {
      QIDBG_ERROR("%s:%d] failed to create exif composer", __func__, __LINE__);
      return OMX_ErrorInsufficientResources;
    }
  }

  //Set Crop Info
  if ((m_inputScaleInfo.nHeight) != 0 && (m_inputScaleInfo.nWidth != 0) ) {
    l_crop.setCrop((int)m_inputScaleInfo.nLeft, (int)m_inputScaleInfo.nTop,
      (int)(m_inputScaleInfo.nLeft + m_inputScaleInfo.nWidth),
      (int)(m_inputScaleInfo.nTop + m_inputScaleInfo.nHeight));
    m_mainEncodeParams.setCrop(l_crop);
  }

  /*Set output size _ if scale is enabled set the output
  size to be size after scaling*/
  if ((m_outputScaleInfo.nHeight != 0) && (m_outputScaleInfo.nWidth != 0)) {
    m_outputSize[0].setWidth((int)m_outputScaleInfo.nWidth);
    m_outputSize[0].setHeight((int)m_outputScaleInfo.nHeight);
    QIDBG_HIGH("%s:%d] Scaling enabled o/p width: %d o/p height:%d",
      __func__, __LINE__, m_outputSize[0].Width(), m_outputSize[0].Height());
  } else {
    m_outputSize[0] = m_inputSize;
    QIDBG_HIGH("%s:%d] Scaling not enabled width: %d height:%d",
      __func__, __LINE__, m_outputSize[0].Width(), m_outputSize[0].Height());
  }
  m_mainEncodeParams.setOutputSize(m_outputSize[0]);
  m_mainEncodeParams.setInputSize(m_inputSize);
  m_mainEncodeParams.setRestartInterval(0);
  m_mainEncodeParams.setRotation((uint32_t)m_rotation.nRotation);
  m_mainEncodeParams.setQuality((uint32_t)m_qualityfactor.nQFactor);

  if (m_quantTable.eQuantizationTable) {
    //ToDo: Uncomment and assign appropriately
    //m_encodeParams.setQuantTables(m_quantTable);
  } else {
    m_mainEncodeParams.setDefaultTables(m_mainEncodeParams.Quality());
  }
  if (m_huffmanTable.eHuffmanTable) {
    //ToDo: Uncomment and assign appropriately
    //m_encodeParams.setHuffTables(m_huffmanTable);
  }
  m_mainEncodeParams.setHiSpeed(m_JpegSpeedMode.speedMode ==
    QOMX_JPEG_SPEED_MODE_HIGH);

  QIDBG_MED("%s:%d] ", __func__, __LINE__);

  return lret;
}