Add support for mute API set
[platform/core/multimedia/libmm-sound.git] / common / mm_sound_utils.c
1 /*
2  * libmm-sound
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Seungbae Shin <seungbae.shin@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21
22 #include <sys/types.h>
23 #include <fcntl.h>
24 #include <stdio.h>
25 #include <unistd.h>
26 #include <errno.h>
27 #include <glib.h>
28
29 #include <mm_types.h>
30 #include <mm_error.h>
31 #include <mm_debug.h>
32 #include "../include/mm_sound_private.h"
33 #include "../include/mm_sound_utils.h"
34
35 EXPORT_API
36 bool mm_sound_util_is_process_alive(pid_t pid)
37 {
38         gchar *tmp = NULL;
39         int ret = -1;
40
41         if (pid > 999999 || pid < 2)
42                 return false;
43
44         if ((tmp = g_strdup_printf("/proc/%d", pid))) {
45                 ret = access(tmp, F_OK);
46                 g_free(tmp);
47         }
48
49         if (ret == -1) {
50                 if (errno == ENOENT) {
51                         debug_warning("/proc/%d not exist", pid);
52                         return false;
53                 } else {
54                         debug_error("/proc/%d access errno[%d]", pid, errno);
55
56                         /* FIXME: error occured but file exists */
57                         return true;
58                 }
59         }
60
61         return true;
62 }