int CGpio::GPIOReadFd(int fd) { int bytecount = -1; char value_str[GPIO_MAX_VALUE_SIZE]; if (fd == -1) return -1; if (lseek(fd, 0, SEEK_SET) == -1) return -1; bytecount = read(fd, value_str, GPIO_MAX_VALUE_SIZE); return(GetReadResult(bytecount, &value_str[0])); }
unsigned MFMediaIOEx::Read(void* pb,unsigned size) { if (!CreateEvents()) return 0; _dwReadOKSize = 0; _blockState = true; HRESULT hr = _pStream->BeginRead((BYTE*)pb,size,this,nullptr); if (FAILED(hr)) { _blockState = false; return 0; } auto result = GetReadResult(); _blockState = false; if (result != ReadOK || _dwReadOKSize == 0) return 0; return _dwReadOKSize; }
int CGpio::GPIORead(int gpio_pin, const char *param) { char path[GPIO_MAX_PATH]; char value_str[GPIO_MAX_VALUE_SIZE]; int fd; int bytecount = -1; snprintf(path, GPIO_MAX_PATH, "%s%d/%s", GPIO_PATH, gpio_pin, param); fd = open(path, O_RDONLY); if (fd == -1) return -1; bytecount = read(fd, value_str, GPIO_MAX_VALUE_SIZE); close(fd); if (-1 == bytecount) { close(fd); return -1; } return(GetReadResult(bytecount, &value_str[0])); }