private void generateCapsule(Writer writer, File biancaPath) throws IOException {
		LOG.fine("    Generate capsule.c");

		String header = loadFile(biancaPath.getAbsolutePath() + "/stubs/capsule.c");

		// Génération des fonctions pour chaque évenements
		StringBuilder functions = new StringBuilder();
		for (String event : events) {
			try {
				Map<String, String> split = splitFile(findFile(biancaPath.getAbsolutePath() + "/stubs", event.toLowerCase() + ".stub"));
				if (split.containsKey("function")) {
					functions.append(split.get("function"));
				} else {
					LOG.warning("Erreur lors de la génération de capsule.h pour '" + event + "'");
				}
			} catch (IOException e) {
				LOG.warning("Erreur lors de la génération de la fonction dans capsule.c pour '" + event + "'");
			} catch (NullPointerException e) {
				LOG.warning("Erreur lors de la génération de la fonction dans capsule.c pour '" + event + "'");
			}
		}
		header = header.replace("EVENTS_FUNCTION_GENERATED", functions.toString());

		// Génération de l'initialisation des fonctions pour chaque évenements
		StringBuilder inits = new StringBuilder();
		for (String event : events) {
			try {
				Map<String, String> split = splitFile(findFile(biancaPath.getAbsolutePath() + "/stubs", event.toLowerCase() + ".stub"));
				if (split.containsKey("init")) {
					inits.append(split.get("init"));
				} else {
					LOG.warning("Erreur lors de la génération de capsule.h pour '" + event + "'");
				}
			} catch (IOException e) {
				LOG.warning("Erreur lors de la génération de l'init dans capsule.c pour '" + event + "'");
			} catch (NullPointerException e) {
				LOG.warning("Erreur lors de la génération de l'init dans capsule.c pour '" + event + "'");
			}
		}
		header = header.replace("EVENTS_INIT_GENERATED", inits.toString());

		writer.write(header);
	}