/*
+ * Copyright (C) 2005-2009 Atsushi Konno All rights reserved.
* Copyright (C) 2005 QSDN,Inc. All rights reserved.
- * Copyright (C) 2005 Atsushi Konno All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#ifndef __CHXJ_SPECIFIED_DEVICE_H__
#define __CHXJ_SPECIFIED_DEVICE_H__
-typedef enum _spec_type_t {
+typedef enum {
CHXJ_SPEC_UNKNOWN=0,
CHXJ_SPEC_Chtml_1_0,
CHXJ_SPEC_Chtml_2_0,
CHXJ_SPEC_Chtml_3_0,
CHXJ_SPEC_Chtml_4_0,
CHXJ_SPEC_Chtml_5_0,
+ CHXJ_SPEC_Chtml_6_0, /* use XHTML */
+ CHXJ_SPEC_Chtml_7_0, /* use XHTML */
CHXJ_SPEC_XHtml_Mobile_1_0,
CHXJ_SPEC_Hdml,
CHXJ_SPEC_Jhtml,
+ CHXJ_SPEC_Jxhtml, /* use XHTML */
CHXJ_SPEC_HTML,
-} spec_type_t;
+} spec_type;
#define CHXJ_PIC_OK (0x01)
#define CHXJ_PIC_NG (0x00)
#include "mod_chxj.h"
+#include "chxj_cookie.h"
-typedef struct _device_table_t {
- struct _device_table_t* next;
- const char* device_id;
- const char* device_name;
- spec_type_t html_spec_type;
- int width;
- int heigh;
+typedef struct device_table_t device_table;
+
+struct device_table_t {
+ struct device_table_t* next;
+ const char* device_id;
+ const char* device_name;
+ spec_type html_spec_type;
+ int width;
+ int heigh;
/*--------------------------------------------------------------------------*/
/* Walll Paper Size */
/*--------------------------------------------------------------------------*/
- int wp_width;
- int wp_heigh;
+ int wp_width;
+ int wp_heigh;
/*--------------------------------------------------------------------------*/
/* Cache Size */
/*--------------------------------------------------------------------------*/
- int cache;
+ int cache;
/*--------------------------------------------------------------------------*/
/* Correspondence image format */
/* 1: It is possible to display it. */
/* 0: It is not possible to display it. */
/*--------------------------------------------------------------------------*/
- int available_gif;
- int available_jpeg;
- int available_png;
- int available_bmp2;
- int available_bmp4;
+ int available_gif;
+ int available_jpeg;
+ int available_png;
+ int available_bmp2;
+ int available_bmp4;
/*--------------------------------------------------------------------------*/
/* Resolution */
/*--------------------------------------------------------------------------*/
- int dpi_width;
- int dpi_heigh;
+ int dpi_width;
+ int dpi_heigh;
/*--------------------------------------------------------------------------*/
/* Color number type */
/* 2 : 2 Colors */
/* 262144 : 262144 Colors */
/* 15680000: 15680000 over colors */
/*--------------------------------------------------------------------------*/
- int color;
- char* emoji_type;
+ int color;
+ char* emoji_type;
+};
+
+typedef struct device_table_list_t device_table_list;
+
+struct device_table_list_t {
+ struct device_table_list_t *next;
+
+ char *pattern;
+ ap_regex_t *regexp;
+ device_table *table;
+ device_table *tail;
+};
+
+typedef struct converter_t converter_t;
+
+struct converter_t {
+ /* convert routine */
+ char *(*converter)(request_rec *r,
+ struct device_table_t *spec,
+ const char *src,
+ apr_size_t srclen,
+ apr_size_t *dstlen,
+ struct chxjconvrule_entry *entryp,
+ cookie_t *cookie);
+
+ char *(*encoder)(request_rec *r,
+ const char *src,
+ apr_size_t *len);
+
-} device_table_t;
+ char *(*emoji_only_converter)(
+ request_rec *r,
+ struct device_table_t *spec,
+ const char *src,
+ apr_size_t len);
+};
-typedef struct device_table_list_t {
- struct device_table_list_t* next;
- char* pattern;
- ap_regex_t* regexp;
- device_table_t* table;
- device_table_t* tail;
-} device_table_list_t;
+extern converter_t convert_routine[];
-device_table_t* chxj_specified_device(request_rec* r, const char* user_agent);
+extern device_table* chxj_specified_device(
+ request_rec *r,
+ const char *user_agent);
#endif