ERR("invalid command to player.");
return;
}
- write(ev->fd_write, &cmd, sizeof(cmd));
+ if (write(ev->fd_write, &cmd, sizeof(cmd)) < 0) perror("write");
}
static void
_player_send_int(Emotion_Generic_Video *ev, int number)
{
- write(ev->fd_write, &number, sizeof(number));
+ if (write(ev->fd_write, &number, sizeof(number)) < 0) perror("write");
}
static void
_player_send_float(Emotion_Generic_Video *ev, float number)
{
- write(ev->fd_write, &number, sizeof(number));
+ if (write(ev->fd_write, &number, sizeof(number)) < 0) perror("write");
}
static void
len = eina_stringshare_strlen(str) + 1;
else
len = strlen(str) + 1;
- write(ev->fd_write, &len, sizeof(len));
- write(ev->fd_write, str, len);
+ if (write(ev->fd_write, &len, sizeof(len)) < 0) perror("write");
+ if (write(ev->fd_write, str, len) < 0) perror("write");
}
static Eina_Bool
vs->frame.last = 2;
vs->frame.next = 2;
vs->frame_drop = 0;
-#ifdef _WIN32
- /* FIXME: maximum count for the semaphore: 10. Is it sufficient ? */
- vs->lock = CreateSemaphore(NULL, 1, 10, NULL);
- if (!vs->lock)
+ if (!eina_semaphore_new(&vs->lock, 1))
{
ERR("can not create semaphore");
return EINA_FALSE;
}
-#else
- sem_init(&vs->lock, 1, 1);
-#endif
ev->frame.frames[0] = (unsigned char *)vs + sizeof(*vs);
ev->frame.frames[1] = (unsigned char *)vs + sizeof(*vs) + vs->height * vs->width * vs->pitch;
ev->frame.frames[2] = (unsigned char *)vs + sizeof(*vs) + 2 * vs->height * vs->width * vs->pitch;
ev->pos = position;
_emotion_video_pos_update(ev->obj, ev->pos, ev->len);
-
+/* hmmm. no _emotion_progress_set() is for "buffering" progress.
if (ev->len == 0)
return;
snprintf(buf, sizeof(buf), "%0.1f%%", progress * 100);
_emotion_progress_set(ev->obj, buf, progress);
+ */
}
static void
_player_file_closed(Emotion_Generic_Video *ev)
{
INF("Closed previous file.");
-#ifdef _WIN32
- CloseHandle(ev->shared->lock);
-#else
- sem_destroy(&ev->shared->lock);
-#endif
-
+ eina_semaphore_free(&ev->shared->lock);
ev->closing = EINA_FALSE;
if (ev->opening)
return ev->len;
}
+static double
+em_buffer_size_get(void *data __UNUSED__)
+{
+ return 1.0;
+}
+
static int
em_fps_num_get(void *data)
{
em_bgra_data_get(void *data, unsigned char **bgra_data)
{
Emotion_Generic_Video *ev = data;
-#ifdef _WIN32
- DWORD res;
-#endif
if (!ev || !ev->file_ready)
return 0;
// lock frame here
-#ifdef _WIN32
- res = WaitForSingleObject(ev->shared->lock, 0L);
- if (res != WAIT_OBJECT_0)
+ if (!eina_semaphore_lock(&ev->shared->lock))
return 0;
-#else
- sem_wait(&ev->shared->lock);
-#endif
// send current frame to emotion
if (ev->shared->frame.emotion != ev->shared->frame.last)
ev->shared->frame_drop = 0;
// unlock frame here
-#ifdef _WIN32
- ReleaseSemaphore(ev->shared->lock, 1, NULL);
-#else
- sem_post(&ev->shared->lock);
-#endif
+ eina_semaphore_release(&ev->shared->lock, 1);
ev->drop = 0;
return 1;
em_size_get, /* size_get */
em_pos_set, /* pos_set */
em_len_get, /* len_get */
+ em_buffer_size_get, /* buffer_size_get */
em_fps_num_get, /* fps_num_get */
em_fps_den_get, /* fps_den_get */
em_fps_get, /* fps_get */