コード例 #1
0
	/**
	 * Return a Metadata object.
	 */
	void PhoneGapFile::actionGetMetadata(JSONMessage& message)
	{
		String callbackID = message.getParam("PhoneGapCallBackId");

		String fullPath = message.getArgsField("fullPath");

		String metadata = emitMetadata(
			FileGetDate(fullPath));

		// Note that _castDate is used here.
		callSuccess(
			callbackID,
			metadata,
			"window.localFileSystem._castDate");
	}
コード例 #2
0
	/**
	 * Return a File object.
	 */
	void PhoneGapFile::actionGetFileMetadata(JSONMessage& message)
	{
		String callbackID = message.getParam("PhoneGapCallBackId");

		String fullPath = message.getArgsField("fullPath");

		char sizeBuf[64];
		sprintf(sizeBuf, "%i", FileGetSize(fullPath));

		String file = emitFile(
			FileGetName(fullPath),
			fullPath,
			FileGetMimeType(fullPath),
			FileGetDate(fullPath),
			sizeBuf);

		// Note that _castDate also casts a File object.
		callSuccess(
			callbackID,
			file,
			"window.localFileSystem._castDate");
	}
コード例 #3
0
ファイル: CopyPrg.cpp プロジェクト: majioa/skrcomm
//---------------------------------------------------------------------------
bool __fastcall TCopyProgress::VerifyStatements(AnsiString file, int num)
{
  bool exist = FileExists(file);
  switch(FCopyMode)
    {
    case fcmConfirmWrite:
      if(exist && FConfirmMode != cmYesToAll)
        {
        if(FConfirmMode == cmAsk)
          {
          TMsgDlgButtons btn;
          btn << mbYes << mbNo << mbCancel << mbNoToAll << mbYesToAll;
          int m = MessageDlg("File " + ExtractFileName(file) + " already exist. Overwrite?",mtConfirmation,btn,-1);
          if(m == mrNo)  //??
            return false;//??
          }
        else  
          return false;
        }
      break;
    case fcmSkipExists:
      return !exist;
    case fcmRefreshOld:
      if(exist)
        {
        int i = FileOpen(file,fmOpenRead|fmShareCompat);
        if (i == -1)
          break;
        int time = FileGetDate(i);
        FileClose(i);
        if(FileDateToDateTime(time) > FileDateToDateTime(FFileList->File[num]->Time))
          return false;
        }
    }
  return true;
}
コード例 #4
0
ファイル: PhoneGapCapture.cpp プロジェクト: Felard/MoSync
	/**
	 * Event handler for capture events
	 * @param event the event struct.
	 */
	void PhoneGapCapture::customEvent(const MAEvent &event)
	{
		char pathBuffer[1024];
		char messageBuffer[1024];

		if (event.type == EVENT_TYPE_CAPTURE)
		{
			MACaptureEventData eventData = event.captureData;

			switch (eventData.type)
			{
				case MA_CAPTURE_EVENT_TYPE_VIDEO:
					// Videos are already stored, we need the filepath
					maCaptureGetVideoPath(
						eventData.handle,
						pathBuffer,
						sizeof(pathBuffer));
					sprintf(
						messageBuffer,
						"[{\"fullPath\":\"%s\",\"name\":\"%s\"}]",
						pathBuffer,
						FileNameFromPath(pathBuffer));
					mMessageHandler->callSuccess(
						mCaptureCallBack,
						PHONEGAP_CALLBACK_STATUS_OK,
						messageBuffer,
						false);
					maCaptureDestroyData(eventData.handle);
					break;

				case MA_CAPTURE_EVENT_TYPE_IMAGE:
				{
					char deviceOS[64];
					String extension;

					maGetSystemProperty(
						"mosync.device.OS",
						deviceOS,
						sizeof(deviceOS));

					// File format is different on different platforms.
					// TODO: What about WP?
					if (strcmp(deviceOS, "iPhone OS") == 0)
					{
						extension = "png";
					}
					else if(strcmp(deviceOS, "Android") == 0)
					{
						extension = "jpg";
					}
					else
					{
						// TODO: What to use as default?
						extension = "image";
					}

					// Images need to be stored. We use maLocalTime to
					// get a unique number for the filename.
					String localPath = (mMessageHandler->getFileUtil())->getAppPath();
					sprintf(
						pathBuffer,
						"%simg%d.%s",
						localPath.c_str(),
						maLocalTime(),
						extension.c_str());
					int result = maCaptureWriteImage(
						eventData.handle,
						pathBuffer,
						sizeof(pathBuffer));

					// TODO: What should we do if FileGetSize fails?
					// Return an error?
					// Set size to zero for now.
					int size = FileGetSize(pathBuffer);
					if (size < 0)
					{
						size = 0;
					}
					char sizeBuf[64];
					sprintf(sizeBuf, "%i", size);

					sprintf(
						messageBuffer,
						"[{\"fullPath\":\"%s\",\"name\":\"%s\",\"lastModifiedDate\":\"%s\",\"size\":\"%s\",\"type\":\"%s\"}]",
						pathBuffer,
						FileNameFromPath(pathBuffer),
						FileGetDate(pathBuffer).c_str(),
						sizeBuf,
						FileGetMimeType(pathBuffer).c_str());

					if (result == MA_CAPTURE_RES_OK)
					{
						mMessageHandler->callSuccess(
							mCaptureCallBack,
							PHONEGAP_CALLBACK_STATUS_OK,
							messageBuffer,
							false);
					}
					else
					{
						mMessageHandler->callError(
							mCaptureCallBack,
							PHONEGAP_CALLBACK_STATUS_ERROR,
							"{\"code\":\"CAPTURE_INTERNAL_ERR\"}",
							false);
					}

					// Free capture data.
					maCaptureDestroyData(eventData.handle);

					break;
				}

				case MA_CAPTURE_EVENT_TYPE_CANCEL:
					mMessageHandler->callError(
						mCaptureCallBack,
						PHONEGAP_CALLBACK_STATUS_ERROR,
						"{\"code\":\"CAPTURE_NO_MEDIA_FILES\"}",
						false);
					break;
			} // switch
		}
	}