Exemple #1
0
	bool Clip::open(const _TCHAR *path)
	{
		stream_ = 0;
		AbstractFilePtr filei = fileserver().getFileInterface(path);
		TURI uri(path);
		if(uri.extension()==_T("wav")) {
			Pointer<dx::WavFile> wav = new dx::WavFile;
			wav->synchronize(true);
			stream_ = wav;
			if(wav) {
				if(filei) {
					if(filei->size() < on_memory_streaming_threshold__) {
						on_memory_ = fileserver().getFile(path);
						return wav->open(on_memory_->buf(), on_memory_->size()) ? true : false;
					}
					else return wav->open(filei) ? true : false;
				}
				else {
					File f(path);
					if(f.is_open()) {
						if(f.length() < on_memory_streaming_threshold__) {
							on_memory_ = f.load();
							return wav->open(on_memory_->buf(), on_memory_->size()) ? true : false;
						}
						else return wav->open(path) ? true : false;
					}
				}
			}
		}
		else if(uri.extension()==_T("ogg")) {
			Pointer<OggVorbis> ogg = new OggVorbis;
			ogg->synchronize(true);
			stream_ = ogg;
			if(ogg) {
				if(filei) {
					if(filei->size() < on_memory_streaming_threshold__) {
						on_memory_ = fileserver().getFile(path);
						return ogg->open(on_memory_->buf(), on_memory_->size()) ? true : false;
					}
					else return ogg->open(filei) ? true : false;
				}
				else {
					File f(path);
					if(f.is_open()) {
						if(f.length() < on_memory_streaming_threshold__) {
							on_memory_ = f.load();
							return ogg->open(on_memory_->buf(), on_memory_->size()) ? true : false;
						}
						else return ogg->open(path) ? true : false;
					}
				}
			}
		}
		return false;
	}
Exemple #2
0
int main(int argc, char **argv) {

    pid_t pid = 0;
    int status = 0;

    
    signal(SIGINT,signal_handler);
    signal(SIGQUIT,signal_handler);
    signal(SIGSTOP,signal_handler);
    
    shmid = Shmget(SHM_KEY,SVSHM_FLAG);


    if(-1 == (pid = fork())) {
        perror("fork");
        return(-1);
    }

    /* child process */
    if(0 == pid) { 
        
        //start fileclient
        fileclient(shmid);
        exit(0);
    }

    /* parent process */
    //start fileserver
    fileserver(shmid);

    waitpid(pid,&status,0);

    rmshm(shmid);
    return 0;
}