示例#1
0
文件: OpenAL.cpp 项目: hallor/ufo
ESourceState::TYPE OpenAL::GetSourceState(ALuint source)
{
    if(!IsInitialized())
        return ESourceState::_COUNT;

    if(!IsSource(source))
        return ESourceState::_COUNT;

    GetLastError();

    ALint state = 0;

    alGetSourcei(source, AL_SOURCE_STATE, &state);

    if(GetLastError() != AL_NO_ERROR)
        return ESourceState::_COUNT;

    switch(state)
    {
    case AL_PLAYING: return ESourceState::Playing;
    case AL_PAUSED: return ESourceState::Paused;
    case AL_STOPPED: return ESourceState::Stopped;
    default:    return ESourceState::_COUNT;
    }
}
示例#2
0
文件: if-fhsrc.c 项目: LukeMeszar/CAS
   GMC_DCL(tp_FilHdr, OrigFilHdr)
{
   tp_LocElm LocElm, LastLocElm;
   tps_FileName DestFileName;

   LocElm = NIL;

   if (!IsSource(DestFilHdr)) {
      SystemError("Destination of copy must be a source file or directory.\n");
      goto done; }/*if*/;

   FilHdr_HostFN(DestFileName, DestFilHdr, FALSE);
   if (!IsDirectory_FileName(DestFileName)) {
      if (IsList(OrigFilHdr)) {
	 SystemError("List objects can only be copied to directories.\n");
	 goto done; }/*if*/;
      LocElm = Make_CopyLocElm(OrigFilHdr, DestFilHdr, FilHdr);
      goto done; }/*if*/;

   LastLocElm = NIL;
   Get_CopyList(&LocElm, &LastLocElm, OrigFilHdr, DestFilHdr, FilHdr);
   Clr_UnionFlags(OrigFilHdr);

done:;
   Set_LocElm(FilHdr, LocElm);
   }/*Exec_CopyCmd*/
示例#3
0
文件: sftp4.c 项目: krichter722/coda
void sftp_TraceStatus(struct SFTP_Entry *sEntry, int filenum, int linenum)
    {
#ifdef RPC2DEBUG
    struct TraceEntry *te;

    te = (struct TraceEntry *)CBUF_NextSlot(TraceBuf);
    te->tcode = STATUS;
    if (IsSource(sEntry))
	{
	te->ph.GotEmAll = htonl(sEntry->SendLastContig);
	te->ph.BitMask0 = (unsigned) htonl(sEntry->SendTheseBits[0]);
	te->ph.BitMask1 = (unsigned) htonl(sEntry->SendTheseBits[1]);
	}
    else
	{
	te->ph.GotEmAll = htonl(sEntry->RecvLastContig);
	te->ph.BitMask0 = (unsigned) htonl(sEntry->RecvTheseBits[0]);
	te->ph.BitMask1 = (unsigned) htonl(sEntry->RecvTheseBits[1]);
	}

    te->ph.Opcode = htonl(-1);
    te->ph.LocalHandle = htonl(sEntry->LocalHandle);
    te->ph.RemoteHandle = htonl(sEntry->PInfo.RemoteHandle);
    te->ph.SeqNumber = htonl(filenum);
    te->ph.Flags = 0;
    te->ph.SEFlags = 0;
    te->ph.BodyLength = htonl(linenum);
#endif
    }
示例#4
0
   GMC_DCL(tp_FilHdr, FilHdr)
{
   FORBIDDEN(IsTargetsPtr(FilHdr));
   while (!IsSource(FilHdr)) {
      if (IsVTgtText(FilHdr) || FilHdr_FilTyp(FilHdr) == VirTargetsFilTyp) {
	 return FilHdr_Father(FilHdr_Father(FilHdr)); }/*if*/;
      if (IsVTgt(FilHdr)) {
	 return FilHdr_Father(FilHdr_Father(FilHdr_Father(FilHdr))); }/*if*/;
      FilHdr = FilHdr_Father(FilHdr); }/*while*/;
   return FilHdr;
   }/*Get_BaseVTgtFilHdr*/
示例#5
0
文件: if-fhsrc.c 项目: LukeMeszar/CAS
   GMC_DCL(tp_FilHdr, FilHdr)
{
   tp_FilHdr ElmFilHdr;

   if (FilHdr == ERROR) {
      return ERROR; }/*if*/;
   if (!IsSymLink(FilHdr) || FilHdr_Status(FilHdr) == STAT_Circular) {
      return FilHdr; }/*if*/;
   ElmFilHdr = FilHdr_ElmFilHdr(FilHdr);
   FORBIDDEN(IsSymLink(ElmFilHdr) || !IsSource(ElmFilHdr));
   return ElmFilHdr;
   }/*Deref_SymLink*/
示例#6
0
文件: if-fhsrc.c 项目: LukeMeszar/CAS
   GMC_DCL(tp_FileName, FileName)
{
   tp_FilHdr FilHdr, SymLinkFH;

   FilHdr = OdinExpr_FilHdr(FileName);
   if (FilHdr == ERROR) {
      return; }/*if*/;
   if (IsSource(FilHdr)) {
      SymLinkFH = Deref_SymLink(Copy_FilHdr(FilHdr));
      Set_Status(SymLinkFH, STAT_Unknown);
      Ret_FilHdr(SymLinkFH);
      Update_SrcFilHdr(FilHdr, FALSE); }/*if*/;
   Ret_FilHdr(FilHdr);
   }/*Local_Test*/
示例#7
0
文件: OpenAL.cpp 项目: hallor/ufo
bool OpenAL::PushBufferQueue(ALuint source, ALuint buffer)
{
    if(!IsInitialized())
        return false;

    if(!IsSource(source) || !IsBuffer(buffer))
        return false;

    GetLastError();
    
    alSourceQueueBuffers(source, 1, &buffer);

    return GetLastError() == AL_NO_ERROR;
};
示例#8
0
文件: OpenAL.cpp 项目: hallor/ufo
bool OpenAL::SourcePause(ALuint source)
{
    if(!IsInitialized())
        return false;

    if(!IsSource(source))
        return false;

    if(GetSourceState(source) == ESourceState::Paused)
        return true;

    GetLastError();
    alSourcePause(source);

    return GetLastError() == AL_NO_ERROR && GetSourceState(source) == ESourceState::Paused;
};
示例#9
0
文件: OpenAL.cpp 项目: hallor/ufo
int OpenAL::GetProcessedBuffersCount(ALuint source)
{
    if(!IsInitialized())
        return 0;

    if(IsSource(source) != AL_TRUE)
        return 0;

    GetLastError();

    ALint processed = 0;

    alGetSourcei(source, AL_BUFFERS_PROCESSED, &processed);

    return GetLastError() == AL_NO_ERROR ? processed : 0;
};
示例#10
0
文件: OpenAL.cpp 项目: hallor/ufo
bool OpenAL::SetSourceProperties(ALuint source, const sSourceProperties &props)
{
    if(!IsInitialized())
        return false;

    if(IsSource(source) != AL_TRUE)
        return false;

    GetLastError();

    alSourcef(source, AL_GAIN, props.m_Volume);
    alSourcef(source, AL_PITCH, props.m_Pitch);
    alSourcei(source, AL_LOOPING, props.m_Looping ? AL_TRUE : AL_FALSE);

    return GetLastError() == AL_NO_ERROR;
};
示例#11
0
bool XMMediaStream::Close()
{	
  if (IsSource()) {
    if (!LockReadWrite()) {
      return false;
    }
    if (hasStarted == true) {
      _XMStopMediaTransmit(2);
    } else {
      isTerminated = true;
    }
    UnlockReadWrite();
        
    // Wait until the video system terminated
    while(isTerminated == false) {
      PThread::Sleep(10);
    }
  }
    
  return OpalMediaStream::Close();
}
void
ScriptLoadRequest::MaybeCancelOffThreadScript()
{
  MOZ_ASSERT(NS_IsMainThread());

  if (!mOffThreadToken) {
    return;
  }

  JSContext* cx = danger::GetJSContext();
  // Follow the same conditions as ScriptLoader::AttemptAsyncScriptCompile
  if (IsModuleRequest()) {
    JS::CancelOffThreadModule(cx, mOffThreadToken);
  } else if (IsSource()) {
    JS::CancelOffThreadScript(cx, mOffThreadToken);
  } else {
    MOZ_ASSERT(IsBytecode());
    JS::CancelOffThreadScriptDecoder(cx, mOffThreadToken);
  }
  mOffThreadToken = nullptr;
}
示例#13
0
void XMMediaStream::OnPatchStart()
{
  if (IsSource()) {
        
    PSafeLockReadWrite safeLock(*this);
    if (!safeLock.IsLocked()) {
      return;
    }
      
    // Ensure the code below runs just once.
    // Also avoid possible race conditions
    if (hasStarted == true || isTerminated == true) {
      return;
    }
      
    RTP_DataFrame::PayloadTypes payloadType = mediaFormat.GetPayloadType();
        
    unsigned frameTime = mediaFormat.GetFrameTime();
    unsigned framesPerSecond = (unsigned)round((double)OpalMediaFormat::VideoClockRate / (double)frameTime);
    framesPerSecond = std::min((unsigned)XM_MAX_FPS, framesPerSecond);
    framesPerSecond = std::max(framesPerSecond, (unsigned)1);
        
    unsigned bitrate = mediaFormat.GetBandwidth();
    bitrate = std::min(bitrate, XMOpalManager::GetManager()->GetVideoBandwidthLimit(mediaFormat));
        
    unsigned flags = 0;
        
    XMCodecIdentifier codecIdentifier = _XMGetMediaFormatCodec(mediaFormat);
    XMVideoSize videoSize = _XMGetMediaFormatSize(mediaFormat);
        
    if (codecIdentifier == XMCodecIdentifier_UnknownCodec ||
       videoSize == XMVideoSize_NoVideo || videoSize == XMVideoSize_Custom) {
      // Shouldn't actually happen
      return;
    }
        
    if (codecIdentifier == XMCodecIdentifier_H263) {
      // If we're  sending H.263, we need to know which
      // format to send. The payload code is submitted in the
      // flags parameter
      flags = payloadType;
            
      if (payloadType == RTP_DataFrame::H263) {
        cout << "Sending RFC2190" << endl;
      } else {
        cout << "Sending RFC2429" << endl;
      }
    } else if (codecIdentifier == XMCodecIdentifier_H264) {
      unsigned packetizationMode = _XMGetH264PacketizationMode(mediaFormat);
      if (packetizationMode == XM_H264_PACKETIZATION_MODE_SINGLE_NAL) {
        // We send only at a limited bitrate to avoid too many
        // NAL units which are TOO big to fit
        if (bitrate > 380000) {
          bitrate = 380000;
        }
      }
      flags = (packetizationMode << 8) + (_XMGetH264Profile(mediaFormat) << 4) + _XMGetH264Level(mediaFormat);
    }
        
    videoTransmitterStream = this;
    hasStarted = true;
        
    dataFrame.SetPayloadSize(0);
    dataFrame.SetPayloadType(payloadType);
        
    unsigned keyFrameInterval = GetKeyFrameInterval(codecIdentifier);
    _XMStartMediaTransmit(2, codecIdentifier, videoSize, framesPerSecond, bitrate, keyFrameInterval, flags);
  }
}
示例#14
0
   GMC_DCL(tp_Key, Key)
{
   tp_FilHdr DirFilHdr, DirSymFilHdr, SymDirFilHdr;
   tp_FilTyp FilTyp;
   tp_FKind FKind;

   if (FilHdr == ERROR || Key == ERROR) {
      Ret_FilHdr(FilHdr);
      return ERROR; }/*if*/;

   if (strcmp(Key, ".") == 0) {
      return FilHdr; }/*if*/;

   if (strcmp(Key, "") == 0
       && !(FilHdr == RootFilHdr || FilHdr == NetRootFilHdr)) {
      return FilHdr; }/*if*/;

   if (IsSource(FilHdr)) {
      if (strcmp(Key, "..") == 0) {
	 if (FilHdr == RootFilHdr) {
	    return FilHdr; }/*if*/;
	 DirFilHdr = FilHdr_Father(Copy_FilHdr(FilHdr));
	 if (DirFilHdr == NetRootFilHdr) {
	    Ret_FilHdr(DirFilHdr);
	    return FilHdr; }/*if*/;
	 DirSymFilHdr = FilHdr_Father(Deref_SymLink(Copy_FilHdr(FilHdr)));
	 SymDirFilHdr = Deref_SymLink(Copy_FilHdr(DirFilHdr));
	 Ret_FilHdr(FilHdr);
	 if (DirSymFilHdr == SymDirFilHdr) {
	    Ret_FilHdr(DirSymFilHdr); Ret_FilHdr(SymDirFilHdr);
	    return DirFilHdr; }/*if*/;
	 Ret_FilHdr(DirFilHdr); Ret_FilHdr(SymDirFilHdr);
	 return FilHdr_AliasFilHdr(DirSymFilHdr); }/*if*/;

      if (FilHdr == CacheDirFilHdr) {
	 if (strlen(Key) == 1) {
	    return FilHdr; }/*if*/;
	 Ret_FilHdr(FilHdr);
	 return CacheFileName_FilHdr(Key); }/*if*/;

      return Get_KeyDrv(FilHdr, FK_SrcReg, Key); }/*if*/;

   if (IsVirDir(FilHdr)) {
      return Get_KeyDrv(FilHdr, FK_VirDirElm, Key); }/*if*/;

   if (IsTargets(FilHdr)) {
      return Get_KeyDrv(FilHdr, FK_ActTgtText, Key); }/*if*/;

   if (IsPntr(FilHdr)) {
      return Get_Drv(FilHdr, FK_PntrElm, Key_FilTyp(Key), RootFilPrm, Key);
      }/*if*/;

   if (IsDrvDirElm(FilHdr)) {
      return Get_KeyDrv(FilHdr, FK_DrvDirElm, Key); }/*if*/;

   if (!IsKeyList(FilHdr)) {
      FilHdr_Error("Cannot select from <%s>.\n", FilHdr);
      Ret_FilHdr(FilHdr);
      return ERROR; }/*if*/;

   FilTyp = FilHdr_FilTyp(FilHdr);
   /*select*/{
      if (FilTyp == ActTargetsFilTyp) {
	 FKind = FK_ActTgt;
      }else if (FilTyp == VirTargetsFilTyp) {
	 FKind = FK_VirTgt;
      }else{
         FKind = FK_DrvDirElm; };}/*select*/;
   return Get_KeyDrv(FilHdr, FKind, Key);
   }/*Do_Key*/