From 69f57959d50cf08d063484551f15f6990582953d Mon Sep 17 00:00:00 2001 From: Timo Dritschler Date: Tue, 27 May 2014 15:30:08 +0200 Subject: Changed build system to CMake --- test/test-client.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 test/test-client.c (limited to 'test/test-client.c') diff --git a/test/test-client.c b/test/test-client.c new file mode 100644 index 0000000..469aa5e --- /dev/null +++ b/test/test-client.c @@ -0,0 +1,97 @@ +#include +#include +#include +#include "kiro-client.h" +#include "kiro-trb.h" +#include +#include + + +static _Bool init_app(const char * name, SDL_Surface * icon, uint32_t flags) +{ + atexit(SDL_Quit); + if(SDL_Init(flags) < 0) + return 0; + + SDL_WM_SetCaption(name, name); + SDL_WM_SetIcon(icon, NULL); + + return 1; +} + +static void render(SDL_Surface * sf) +{ + SDL_Surface * screen = SDL_GetVideoSurface(); + if(SDL_BlitSurface(sf, NULL, screen, NULL) == 0) + SDL_UpdateRect(screen, 0, 0, 0, 0); +} + +static int filter(const SDL_Event * event) +{ return event->type == SDL_QUIT; } + + +int main ( int argc, char *argv[] ) +{ + if (argc < 3) + { + printf("Not enough aruments. Usage: ./client
\n"); + return -1; + } + KiroClient *client = g_object_new(KIRO_TYPE_CLIENT, NULL); + if(-1 == kiro_client_connect(client, argv[1], argv[2])) + { + g_object_unref(client); + return -1; + } + + kiro_client_sync(client); + KiroTrb *trb = g_object_new(KIRO_TYPE_TRB, NULL); + kiro_trb_adopt(trb, kiro_client_get_memory(client)); + + _Bool ok = + init_app("UCA Images", NULL, SDL_INIT_VIDEO) && + SDL_SetVideoMode(512, 512, 8, SDL_HWSURFACE); + + assert(ok); + + uint32_t mask = 0xffffffff; + SDL_Surface * data_sf = SDL_CreateRGBSurfaceFrom( + kiro_trb_get_element(trb, 0), 512, 512, 8, 512, + mask, mask, mask, 0); + + SDL_Color colors[256]; + for(int i=0;i<256;i++){ + colors[i].r=i; + colors[i].g=i; + colors[i].b=i; + } + SDL_SetPalette(data_sf, SDL_LOGPAL|SDL_PHYSPAL, colors, 0, 256); + + SDL_SetEventFilter(filter); + + int cont = 1; + + //struct KiroTrbInfo *header = (struct KiroTrbInfo *)kiro_trb_get_raw_buffer(trb); + + while(cont) + { + for(SDL_Event event; SDL_PollEvent(&event);) + if(event.type == SDL_QUIT) cont=0; + + kiro_client_sync(client); + SDL_Delay(10); + render(data_sf); + } + + + g_object_unref(client); + return 0; +} + + + + + + + + -- cgit v1.2.3