|
|
|
@ -33,6 +33,7 @@ |
|
|
|
#include <sys/types.h> |
|
|
|
#include <fcntl.h> |
|
|
|
#include <errno.h> |
|
|
|
#include <limits.h> |
|
|
|
|
|
|
|
#include <vlc_common.h> |
|
|
|
#include <vlc_plugin.h> |
|
|
|
@ -1660,47 +1661,35 @@ static int HandleSDBuffer( demux_t *p_demux, uint8_t *p_buffer, |
|
|
|
|
|
|
|
static int ReadULSysfs( const char *psz_fmt, unsigned int i_link ) |
|
|
|
{ |
|
|
|
char psz_file[MAXLEN], psz_data[MAXLEN]; |
|
|
|
char *psz_tmp; |
|
|
|
int i_fd; |
|
|
|
ssize_t i_ret; |
|
|
|
char psz_file[MAXLEN]; |
|
|
|
unsigned int i_data; |
|
|
|
|
|
|
|
snprintf( psz_file, sizeof(psz_file) - 1, psz_fmt, i_link ); |
|
|
|
snprintf( psz_file, sizeof(psz_file), psz_fmt, i_link ); |
|
|
|
|
|
|
|
if ( (i_fd = vlc_open( psz_file, O_RDONLY )) < 0 ) |
|
|
|
return i_fd; |
|
|
|
|
|
|
|
i_ret = read( i_fd, psz_data, sizeof(psz_data) ); |
|
|
|
close( i_fd ); |
|
|
|
|
|
|
|
if ( i_ret < 0 ) |
|
|
|
return i_ret; |
|
|
|
|
|
|
|
i_data = strtoul( psz_data, &psz_tmp, 0 ); |
|
|
|
if ( *psz_tmp != '\n' ) |
|
|
|
FILE *stream = vlc_fopen( psz_file, "rt" ); |
|
|
|
if( stream == NULL ) |
|
|
|
return -1; |
|
|
|
|
|
|
|
return i_data; |
|
|
|
int ret = fscanf( stream, "%u", &i_data ); |
|
|
|
fclose( stream ); |
|
|
|
|
|
|
|
return (ret == 1 && i_data <= INT_MAX) ? (int)i_data : -1; |
|
|
|
} |
|
|
|
|
|
|
|
static ssize_t WriteULSysfs( const char *psz_fmt, unsigned int i_link, |
|
|
|
unsigned int i_buf ) |
|
|
|
static int WriteULSysfs( const char *psz_fmt, unsigned int i_link, |
|
|
|
unsigned int i_buf ) |
|
|
|
{ |
|
|
|
char psz_file[MAXLEN], psz_data[MAXLEN]; |
|
|
|
int i_fd; |
|
|
|
ssize_t i_ret; |
|
|
|
|
|
|
|
snprintf( psz_file, sizeof(psz_file) -1, psz_fmt, i_link ); |
|
|
|
char psz_file[MAXLEN]; |
|
|
|
|
|
|
|
snprintf( psz_data, sizeof(psz_data) -1, "%u\n", i_buf ); |
|
|
|
snprintf( psz_file, sizeof(psz_file), psz_fmt, i_link ); |
|
|
|
|
|
|
|
if ( (i_fd = vlc_open( psz_file, O_WRONLY )) < 0 ) |
|
|
|
return i_fd; |
|
|
|
FILE *stream = vlc_fopen( psz_file, "wt" ); |
|
|
|
if( stream == NULL ) |
|
|
|
return -1; |
|
|
|
|
|
|
|
i_ret = write( i_fd, psz_data, strlen(psz_data) + 1 ); |
|
|
|
close( i_fd ); |
|
|
|
return i_ret; |
|
|
|
int ret = fprintf( stream, "%u\n", i_buf ); |
|
|
|
fclose( stream ); |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
static int InitCapture( demux_t *p_demux ) |
|
|
|
|