feat: add given files
Signed-off-by: Julien CLEMENT <julien.clement@epita.fr>
This commit is contained in:
commit
7178dbb6a7
151 files changed
+13845
No files matched your search
@@ -0,0 +1,194 @@
|
||||
/*
|
||||
* Copyright (c) LSE
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY LSE AS IS AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL LSE BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#ifndef GRAPHIC_H_
|
||||
#define GRAPHIC_H_
|
||||
|
||||
#include <kstd.h>
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
/* this file should really be cleaned :) */
|
||||
|
||||
/*
|
||||
* some characteristics about the display.
|
||||
*/
|
||||
#define GRAPHIC_WIDTH 320
|
||||
#define GRAPHIC_HEIGHT 200
|
||||
#define FB_SIZE (GRAPHIC_WIDTH * GRAPHIC_HEIGHT)
|
||||
#define PALETTE_SIZE 256
|
||||
|
||||
/*
|
||||
* image structure. used load_image, clear_image and draw_image to
|
||||
* manipulate images.
|
||||
*/
|
||||
|
||||
struct image {
|
||||
unsigned int width;
|
||||
unsigned int height;
|
||||
unsigned char **data;
|
||||
};
|
||||
|
||||
/*
|
||||
* animation structure.
|
||||
*
|
||||
*/
|
||||
|
||||
struct anim {
|
||||
int nr_img;
|
||||
int current_img;
|
||||
unsigned long delay;
|
||||
unsigned long jiffies;
|
||||
struct image **imgs;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* a color is an index in the palette.
|
||||
*/
|
||||
typedef unsigned int color_t;
|
||||
|
||||
/*
|
||||
* some colors.
|
||||
*/
|
||||
enum colors {
|
||||
BLACK = 0,
|
||||
WHITE = 255,
|
||||
RED = 249,
|
||||
GREEN = 250,
|
||||
YELLOW = 251,
|
||||
BLUE = 252,
|
||||
PURPLE = 253,
|
||||
AQUA = 254,
|
||||
ORANGE = 23
|
||||
};
|
||||
|
||||
/*
|
||||
* this function switches to graphic mode.
|
||||
*/
|
||||
void switch_graphic(void);
|
||||
|
||||
/*
|
||||
* this function get back to text mode.
|
||||
*/
|
||||
void switch_text(void);
|
||||
|
||||
/*
|
||||
* this fumction changes the color palette of the VGA.
|
||||
*/
|
||||
void set_palette(unsigned int *new_palette, size_t size);
|
||||
|
||||
/*
|
||||
* call this function at the beginning of drawing a frame.
|
||||
*/
|
||||
void draw_begin(void);
|
||||
|
||||
/*
|
||||
* call this function when finished drawing. this is the function that
|
||||
* copy your buffered draw from off-screen buffer to framebuffer.
|
||||
*/
|
||||
void draw_end(void);
|
||||
|
||||
/*
|
||||
* clears the screen with given color.
|
||||
*/
|
||||
void draw_clear(color_t color);
|
||||
|
||||
/*
|
||||
* this function plot a pixel of given color at given position.
|
||||
*/
|
||||
void draw_pixel(unsigned int x, unsigned int y, color_t color);
|
||||
|
||||
/*
|
||||
* draw a line.
|
||||
*/
|
||||
void draw_line(unsigned int x1, unsigned int y1,
|
||||
unsigned int x2, unsigned int y2, color_t color);
|
||||
|
||||
/*
|
||||
* draw an empty rectangle.
|
||||
*/
|
||||
void draw_rect(unsigned int x1, unsigned int y1,
|
||||
unsigned int x2, unsigned int y2, color_t color);
|
||||
|
||||
/*
|
||||
* draw a solid rectangle.
|
||||
*/
|
||||
void draw_fillrect(unsigned int x1, unsigned int y1,
|
||||
unsigned int x2, unsigned int y2,
|
||||
color_t color, color_t interior);
|
||||
|
||||
/*
|
||||
* load a Windows BITMAP (BMP) from file.
|
||||
* the only supported files are 8 bits per pixels paletted.
|
||||
* the only supported palette is the default one (obtained with Paint).
|
||||
*/
|
||||
struct image *load_image(const char *path);
|
||||
|
||||
/*
|
||||
* destroy a loaded image.
|
||||
*/
|
||||
void clear_image(struct image *image);
|
||||
|
||||
/*
|
||||
* display a loaded image with transparency.
|
||||
*/
|
||||
void draw_image_alpha(struct image *image,
|
||||
unsigned int x, unsigned int y, unsigned int alpha);
|
||||
|
||||
/*
|
||||
* display a loaded image.
|
||||
*/
|
||||
void draw_image(struct image *image, unsigned int x, unsigned int y);
|
||||
|
||||
/*
|
||||
* draw some text.
|
||||
*/
|
||||
void draw_text(const char *s,
|
||||
unsigned int x, unsigned int y, color_t fg, color_t bg);
|
||||
|
||||
/*
|
||||
* load an animation.
|
||||
* paths is string containing the images name separated by a space.
|
||||
* load_anim supports the same image formats as load_image.
|
||||
* delay is the displaying time of each image (in ticks).
|
||||
*
|
||||
* invocation example: load_anim("pic1 pic2 pic3 pic4 pic5", PIC_ANIM_DELAY);
|
||||
*/
|
||||
struct anim *load_anim(char *paths, int delay);
|
||||
|
||||
/*
|
||||
* draw an animation at coordinates (x, y)
|
||||
*
|
||||
* jiffies is the reference ticks counter which should
|
||||
* be incremented at every timer tick.
|
||||
*/
|
||||
void draw_anim(struct anim * anim, int x, int y, unsigned long jiffies);
|
||||
|
||||
/*
|
||||
* video blue screen.
|
||||
*/
|
||||
extern void (*blue_screen)(const char *message);
|
||||
|
||||
#endif /* !GRAPHIC_H_ */
|
||||
@@ -0,0 +1,20 @@
|
||||
#ifndef KSTD_H
|
||||
#define KSTD_H
|
||||
|
||||
#include <k/kstd.h>
|
||||
|
||||
int write(const void *s, size_t length);
|
||||
void *sbrk(ssize_t increment);
|
||||
int getkey(void);
|
||||
unsigned long gettick(void);
|
||||
int open(const char *pathname, int flags);
|
||||
ssize_t read(int fd, void *buf, size_t count);
|
||||
off_t lseek(int filedes, off_t offset, int whence);
|
||||
int close(int fd);
|
||||
int setvideo(int mode);
|
||||
void swap_frontbuffer(const void *buffer);
|
||||
int playsound(struct melody *melody, int repeat);
|
||||
int getmouse(int *x, int *y, int *buttons);
|
||||
int getkeymode(int mode);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (c) LSE
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY LSE AS IS AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL LSE BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#ifndef SOUND_H
|
||||
#define SOUND_H
|
||||
|
||||
#include <kstd.h>
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
|
||||
struct melody *load_sound(const char *path);
|
||||
|
||||
void clear_sound(struct melody *melody);
|
||||
|
||||
#endif /* !SOUND_H_ */
|
||||
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (c) LSE
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY LSE AS IS AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL LSE BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#ifndef STDLIB_H_
|
||||
#define STDLIB_H_
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
void *malloc(size_t size);
|
||||
|
||||
void *realloc(void *ptr, size_t size);
|
||||
|
||||
void free(void *ptr);
|
||||
|
||||
void *calloc(size_t nmemb, size_t size);
|
||||
|
||||
static inline int abs(int j)
|
||||
{
|
||||
return j > 0 ? j : -j;
|
||||
}
|
||||
|
||||
#endif /* !STDLIB_H_ */
|
||||