OSDN Git Service

* merge from git repository
[modchxj/mod_chxj.git] / include / chxj_specified_device.h
1 /*
2  * Copyright (C) 2005-2008 Atsushi Konno All rights reserved.
3  * Copyright (C) 2005 QSDN,Inc. All rights reserved.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 #ifndef __CHXJ_SPECIFIED_DEVICE_H__
18 #define __CHXJ_SPECIFIED_DEVICE_H__
19
20 typedef enum {
21   CHXJ_SPEC_UNKNOWN=0,
22   CHXJ_SPEC_Chtml_1_0,
23   CHXJ_SPEC_Chtml_2_0,
24   CHXJ_SPEC_Chtml_3_0,
25   CHXJ_SPEC_Chtml_4_0,
26   CHXJ_SPEC_Chtml_5_0,
27   CHXJ_SPEC_Chtml_6_0,
28   CHXJ_SPEC_Chtml_7_0,
29   CHXJ_SPEC_XHtml_Mobile_1_0,
30   CHXJ_SPEC_Hdml,
31   CHXJ_SPEC_Jhtml,
32   CHXJ_SPEC_HTML,
33 } spec_type;
34
35 #define CHXJ_PIC_OK                (0x01)
36 #define CHXJ_PIC_NG                (0x00)
37
38 #include "mod_chxj.h"
39 #include "chxj_cookie.h"
40
41
42 typedef struct device_table_t device_table;
43
44 struct device_table_t {
45   struct device_table_t* next;
46   const char*            device_id;
47   const char*            device_name;
48   spec_type              html_spec_type;
49   int                    width;
50   int                    heigh;
51   /*--------------------------------------------------------------------------*/
52   /* Walll Paper Size                                                         */
53   /*--------------------------------------------------------------------------*/
54   int                    wp_width;
55   int                    wp_heigh;
56   /*--------------------------------------------------------------------------*/
57   /* Cache Size                                                               */
58   /*--------------------------------------------------------------------------*/
59   int                    cache;
60   /*--------------------------------------------------------------------------*/
61   /* Correspondence image format                                              */
62   /* 1: It is possible to display it.                                         */
63   /* 0: It is not possible to display it.                                     */
64   /*--------------------------------------------------------------------------*/
65   int                    available_gif;
66   int                    available_jpeg;
67   int                    available_png;
68   int                    available_bmp2;
69   int                    available_bmp4;
70   /*--------------------------------------------------------------------------*/
71   /* Resolution                                                               */
72   /*--------------------------------------------------------------------------*/
73   int                    dpi_width;
74   int                    dpi_heigh;
75   /*--------------------------------------------------------------------------*/
76   /* Color number type                                                        */
77   /* 2       : 2        Colors                                                */
78   /* 4       : 4        Colors                                                */
79   /* 256     : 256      Colors                                                */
80   /* 4096    : 4096     Colors                                                */
81   /* 65536   : 65536    Colors                                                */
82   /* 262144  : 262144   Colors                                                */
83   /* 15680000: 15680000 over colors                                           */
84   /*--------------------------------------------------------------------------*/
85   int                    color;
86   char*                  emoji_type;
87 };
88
89 typedef struct device_table_list_t  device_table_list;
90
91 struct device_table_list_t {
92   struct device_table_list_t* next;
93
94   char*                       pattern;
95   ap_regex_t*                 regexp;
96   device_table*               table;
97   device_table*               tail;
98 };
99
100 typedef struct converter_t converter_t;
101
102 struct converter_t {
103   /* convert routine */
104   char* (*converter)(request_rec*                r,
105                      struct device_table_t*      spec,
106                      const char*                 src, 
107                      apr_size_t                  srclen, 
108                      apr_size_t*                 dstlen,
109                      struct chxjconvrule_entry*  entryp,
110                      cookie_t*                   cookie);
111
112   char* (*encoder)(request_rec* r,
113                    const char*  src,
114                    apr_size_t*  len);
115 };
116
117 extern converter_t convert_routine[];
118
119 extern device_table* chxj_specified_device(
120   request_rec*            r, 
121   const char*             user_agent);
122
123 #endif