projects
/
my-code
/
ivac.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
-
[my-code/ivac.git]
/
dfb_api.c
diff --git
a/dfb_api.c
b/dfb_api.c
index
3488f8b
..
6f28b59
100644
(file)
--- a/
dfb_api.c
+++ b/
dfb_api.c
@@
-10,6
+10,8
@@
/* dfb includes */
#include <directfb.h>
/* dfb includes */
#include <directfb.h>
+#include "dfb_api.h"
+
#define MY_FONT_HEIGHT 18
/* global stuff */
#define MY_FONT_HEIGHT 18
/* global stuff */
@@
-33,7
+35,11
@@
char text_top[]="Internet Video / Audio Conferencing";
char dfb_image[]="./images/ivac_logo.png";
char dfb_font[]="./fonts/decker.ttf";
char dfb_image[]="./images/ivac_logo.png";
char dfb_font[]="./fonts/decker.ttf";
-/* small api - directfb usage kinda sux: foo->bar(foo,...) wtf?!?!?! */
+/* variable definitions */
+// struct user_info {
+
+
+/* functions */
int dfb_init(int *argc,char **argv) {
DirectFBInit(argc,&argv);
int dfb_init(int *argc,char **argv) {
DirectFBInit(argc,&argv);
@@
-82,16
+88,21
@@
int create_logo_surface(void) {
image_provider->Release(image_provider);
return 1;
}
image_provider->Release(image_provider);
return 1;
}
-
+
int create_video_surface(void) {
int create_video_surface(void) {
+ float q;
DFBSurfaceDescription desc;
DFBVideoProviderCapabilities caps;
dfb->CreateVideoProvider(dfb,dfb_video_dev,&video_provider);
video_provider->GetSurfaceDescription(video_provider,&desc);
DFBSurfaceDescription desc;
DFBVideoProviderCapabilities caps;
dfb->CreateVideoProvider(dfb,dfb_video_dev,&video_provider);
video_provider->GetSurfaceDescription(video_provider,&desc);
+ q=(((float)screen_height/desc.height>=(float)screen_width/desc.width)?
+ (float)screen_height/desc.height:(float)screen_width/desc.width);
+ desc.width=(int)(screen_width/q);
+ desc.height=(int)(screen_height/q);
video_provider->GetCapabilities(video_provider,&caps);
printf("video capabilities: %x\n",caps);
dfb->CreateSurface(dfb,&desc,&video);
video_provider->GetCapabilities(video_provider,&caps);
printf("video capabilities: %x\n",caps);
dfb->CreateSurface(dfb,&desc,&video);
- video_provider->PlayTo(video_provider,video,NULL,
NULL
,NULL);
+ video_provider->PlayTo(video_provider,video,NULL,
video_callback
,NULL);
video_provider->Release(video_provider);
return 1;
}
video_provider->Release(video_provider);
return 1;
}
@@
-127,7
+138,9
@@
int blit_logo(void) {
int blit_video(void) {
int x,y;
get_surface_size(video,&x,&y);
int blit_video(void) {
int x,y;
get_surface_size(video,&x,&y);
- blit_surface(video,((screen_width-x)/2),((screen_height-y)/2));
+ printf("size of logo width/height: %d/%d\n",x,y);
+ // blit_surface(video,((screen_width-x)/2),((screen_height-y)/2));
+ blit_surface(video,0,0);
return 1;
}
return 1;
}
@@
-136,6
+149,12
@@
int flip_it(void) {
return 1;
}
return 1;
}
+DVFrameCallback video_callback(void) {
+ puts("callback flip");
+ flip_it;
+ return DFENUM_OK;
+}
+
/* test api app */
int main (int argc, char **argv) {
/* test api app */
int main (int argc, char **argv) {
@@
-153,8
+172,11
@@
int main (int argc, char **argv) {
clear_screen(primary);
clear_screen(primary);
+ puts("main: blit video");
+ // blit_video();
blit_logo();
blit_logo();
+ // puts("main: flip");
flip_it();
sleep(10);
flip_it();
sleep(10);