f86c30cc395c3a7d551e27835a03efb342ee5b60
[profile/ivi/pulseaudio-panda.git] / polyp / util.h
1 #ifndef fooutilhfoo
2 #define fooutilhfoo
3
4 /* $Id$ */
5
6 /***
7   This file is part of polypaudio.
8  
9   polypaudio is free software; you can redistribute it and/or modify
10   it under the terms of the GNU Lesser General Public License as
11   published by the Free Software Foundation; either version 2.1 of the
12   License, or (at your option) any later version.
13  
14   polypaudio is distributed in the hope that it will be useful, but
15   WITHOUT ANY WARRANTY; without even the implied warranty of
16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17   Lesser General Public License for more details.
18  
19   You should have received a copy of the GNU Lesser General Public
20   License along with polypaudio; if not, write to the Free Software
21   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
22   USA.
23 ***/
24
25 #include <sys/types.h>
26 #include <inttypes.h>
27 #include <stdarg.h>
28 #include <stdio.h>
29
30 #include "gcc-printf.h"
31 #include "sample.h"
32
33 void pa_make_nonblock_fd(int fd);
34
35 int pa_make_secure_dir(const char* dir);
36 int pa_make_secure_parent_dir(const char *fn);
37
38 ssize_t pa_loop_read(int fd, void*data, size_t size);
39 ssize_t pa_loop_write(int fd, const void*data, size_t size);
40
41 void pa_check_signal_is_blocked(int sig);
42
43 char *pa_sprintf_malloc(const char *format, ...) PA_GCC_PRINTF_ATTR(1,2);
44 char *pa_vsprintf_malloc(const char *format, va_list ap);
45
46 char *pa_strlcpy(char *b, const char *s, size_t l);
47
48 char *pa_get_user_name(char *s, size_t l);
49 char *pa_get_host_name(char *s, size_t l);
50 char *pa_get_fqdn(char *s, size_t l);
51 char *pa_get_binary_name(char *s, size_t l);
52 char *pa_get_home_dir(char *s, size_t l);
53
54 char *pa_path_get_filename(const char *p);
55
56 pa_usec_t pa_timeval_diff(const struct timeval *a, const struct timeval *b);
57 int pa_timeval_cmp(const struct timeval *a, const struct timeval *b);
58 pa_usec_t pa_timeval_age(const struct timeval *tv);
59 void pa_timeval_add(struct timeval *tv, pa_usec_t v);
60
61 void pa_raise_priority(void);
62 void pa_reset_priority(void);
63
64 int pa_fd_set_cloexec(int fd, int b);
65
66 int pa_parse_boolean(const char *s);
67
68 char *pa_split(const char *c, const char*delimiters, const char **state);
69 char *pa_split_spaces(const char *c, const char **state);
70
71 char *pa_strip_nl(char *s);
72
73 const char *pa_strsignal(int sig);
74
75 int pa_uid_in_group(const char *name, gid_t *gid);
76
77 int pa_lock_fd(int fd, int b);
78
79 int pa_lock_lockfile(const char *fn);
80 int pa_unlock_lockfile(int fd);
81
82 FILE *pa_open_config_file(const char *env, const char *global, const char *local, char **result);
83
84 char *pa_hexstr(const uint8_t* d, size_t dlength, char *s, size_t slength);
85 size_t pa_parsehex(const char *p, uint8_t *d, size_t dlength);
86
87 int pa_startswith(const char *s, const char *pfx);
88
89 char *pa_runtime_path(const char *fn, char *s, size_t l);
90
91 #endif