Public feed #532281

koc

public c v1 · immutable
Raw Edit
·published 2007-06-03 03:26 UTC
rendered paste body
#include <agar/core/core.h>#include <agar/gui/gui.h>#include <ffmpeg/avcodec.h>#include <ffmpeg/avformat.h>#define WINWIDTH 1024#define WINHEIGHT 800typedef struct _videostruct {  AVFormatContext *pFormatCtx;} VideoStruct;VideoStruct *vidst;typedef struct _guistruct {  AG_Window *win;  AG_Menu *mainmenu;  AG_MenuItem *file;  SDL_Surface *screen;} GUIStruct;GUIStruct *guist;void openRealFile(AG_Event *e) {  // apparently you have to use *event to use the macros right  char *filename = e->argv[1].s; // s for String  if(av_open_input_file(&vidst->pFormatCtx, filename, NULL, 0, NULL)!=0) {    printf("FAILURE\n");    exit(1);  }}void openFile(AG_Event *event) {  AG_FileDlg *filedlg;  AG_Window *filewin;  GUIStruct *gui=guist;  filewin = AG_WindowNew(0);    filedlg = AG_FileDlgNew(filewin, AG_FILEDLG_EXPAND);  AG_FileDlgSetDirectory(filedlg, "/home/stdrange"); // BAD! BAD CODER!  AG_SetEvent(filedlg, "file-chosen", openRealFile, NULL);    AG_WindowShow(filewin);  return;}void exitProgram(AG_Event *e) {  // exit  exit(0);}int main(int argc, char **argv) {  VideoStruct *is;  GUIStruct *gui;  if(AG_InitCore("hello", 0) == -1 ||     AG_InitVideo(WINWIDTH,WINHEIGHT,32,AG_VIDEO_RESIZABLE) == -1) {    return(1);  }  AG_InitInput(0);   gui = av_mallocz(sizeof(GUIStruct));  // open our main window  gui->win = AG_WindowNew(AG_WINDOW_NOMINIMIZE |			  AG_WINDOW_NOCLOSE);  gui->mainmenu = AG_MenuNew(gui->win, AG_MENU_HFILL);  gui->file = AG_MenuAddItem(gui->mainmenu, "File");  AG_MenuAction(gui->file, "Open...", -1, openFile, NULL);  AG_MenuAction(gui->file, "Exit", -1, exitProgram, NULL);  AG_WindowShow(gui->win);  gui->screen = SDL_CreateRGBSurface(SDL_HWSURFACE, 300, 200, 32, 0, 0, 0, 0);  AG_PixmapFromSurface(gui->win, 0, gui->screen);  av_register_all();  is = av_mallocz(sizeof(VideoStruct));  vidst = is;  guist = gui;  AG_WindowSetGeometry(gui->win, 0, 0, WINWIDTH - 40, WINHEIGHT - 40);  AG_WindowSetCaption(gui->win, "sublime test02");  AG_EventLoop();}