2 * Copyright (C) 2005-2009 Atsushi Konno All rights reserved.
3 * Copyright (C) 2005 QSDN,Inc. All rights reserved.
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
9 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 #include "chxj_add_device_env.h"
21 chxj_add_device_env(request_rec *r, device_table *spec)
23 DBG(r, "REQ[%X] start chxj_add_device_env()", (unsigned int)(apr_size_t)r);
24 switch(spec->html_spec_type) {
25 case CHXJ_SPEC_Chtml_1_0:
26 case CHXJ_SPEC_Chtml_2_0:
27 case CHXJ_SPEC_Chtml_3_0:
28 case CHXJ_SPEC_Chtml_4_0:
29 case CHXJ_SPEC_Chtml_5_0:
30 case CHXJ_SPEC_Chtml_6_0:
31 case CHXJ_SPEC_Chtml_7_0:
32 apr_table_setn(r->headers_in, HTTP_X_CHXJ_PROVIDER, "1");
33 apr_table_setn(r->headers_in, HTTP_X_CHXJ_PROVIDER_STRING, "docomo");
35 case CHXJ_SPEC_XHtml_Mobile_1_0:
37 apr_table_setn(r->headers_in, HTTP_X_CHXJ_PROVIDER, "2");
38 apr_table_setn(r->headers_in, HTTP_X_CHXJ_PROVIDER_STRING, "au");
41 case CHXJ_SPEC_Jxhtml:
42 apr_table_setn(r->headers_in, HTTP_X_CHXJ_PROVIDER, "3");
43 apr_table_setn(r->headers_in, HTTP_X_CHXJ_PROVIDER_STRING, "SoftBank");
46 apr_table_setn(r->headers_in, HTTP_X_CHXJ_PROVIDER, "0");
47 apr_table_setn(r->headers_in, HTTP_X_CHXJ_PROVIDER_STRING, "unknown");
51 apr_table_setn(r->headers_in, HTTP_X_CHXJ_DEVICEID, apr_pstrdup(r->pool, spec->device_id));
52 apr_table_setn(r->headers_in, HTTP_X_CHXJ_DEVICENAME, apr_pstrdup(r->pool, spec->device_name));
54 switch(spec->html_spec_type) {
55 case CHXJ_SPEC_Chtml_1_0: apr_table_setn(r->headers_in, HTTP_X_CHXJ_HTMLSPECTYPE, "CHTML1.0"); break;
56 case CHXJ_SPEC_Chtml_2_0: apr_table_setn(r->headers_in, HTTP_X_CHXJ_HTMLSPECTYPE, "CHTML2.0"); break;
57 case CHXJ_SPEC_Chtml_3_0: apr_table_setn(r->headers_in, HTTP_X_CHXJ_HTMLSPECTYPE, "CHTML3.0"); break;
58 case CHXJ_SPEC_Chtml_4_0: apr_table_setn(r->headers_in, HTTP_X_CHXJ_HTMLSPECTYPE, "CHTML4.0"); break;
59 case CHXJ_SPEC_Chtml_5_0: apr_table_setn(r->headers_in, HTTP_X_CHXJ_HTMLSPECTYPE, "CHTML5.0"); break;
60 case CHXJ_SPEC_Chtml_6_0: apr_table_setn(r->headers_in, HTTP_X_CHXJ_HTMLSPECTYPE, "CHTML6.0"); break;
61 case CHXJ_SPEC_Chtml_7_0: apr_table_setn(r->headers_in, HTTP_X_CHXJ_HTMLSPECTYPE, "CHTML7.0"); break;
62 case CHXJ_SPEC_XHtml_Mobile_1_0: apr_table_setn(r->headers_in, HTTP_X_CHXJ_HTMLSPECTYPE, "XHTML"); break;
63 case CHXJ_SPEC_Hdml: apr_table_setn(r->headers_in, HTTP_X_CHXJ_HTMLSPECTYPE, "HDML"); break;
64 case CHXJ_SPEC_Jhtml: apr_table_setn(r->headers_in, HTTP_X_CHXJ_HTMLSPECTYPE, "JHTML"); break;
65 case CHXJ_SPEC_Jxhtml: apr_table_setn(r->headers_in, HTTP_X_CHXJ_HTMLSPECTYPE, "JXHTML"); break;
66 default: apr_table_setn(r->headers_in, HTTP_X_CHXJ_HTMLSPECTYPE, "UNKNOWN"); break;
69 apr_table_setn(r->headers_in, HTTP_X_CHXJ_WIDTH, apr_psprintf(r->pool, "%d", spec->width));
70 apr_table_setn(r->headers_in, HTTP_X_CHXJ_HEIGHT, apr_psprintf(r->pool, "%d", spec->heigh));
71 apr_table_setn(r->headers_in, HTTP_X_CHXJ_GIF, (spec->available_gif == 0) ? "false" : "true");
72 apr_table_setn(r->headers_in, HTTP_X_CHXJ_JPEG, (spec->available_jpeg == 0) ? "false" : "true");
73 apr_table_setn(r->headers_in, HTTP_X_CHXJ_PNG, (spec->available_png == 0) ? "false" : "true");
74 apr_table_setn(r->headers_in, HTTP_X_CHXJ_BMP2, (spec->available_bmp2 == 0) ? "false" : "true");
75 apr_table_setn(r->headers_in, HTTP_X_CHXJ_BMP4, (spec->available_bmp4 == 0) ? "false" : "true");
76 apr_table_setn(r->headers_in, HTTP_X_CHXJ_COLOR, apr_psprintf(r->pool, "%d", spec->color));
77 apr_table_setn(r->headers_in, HTTP_X_CHXJ_WP_WIDTH, apr_psprintf(r->pool, "%d", spec->wp_width));
78 apr_table_setn(r->headers_in, HTTP_X_CHXJ_WP_HEIGHT,apr_psprintf(r->pool, "%d", spec->wp_heigh));
79 apr_table_setn(r->headers_in, HTTP_X_CHXJ_CACHE, apr_psprintf(r->pool, "%d", spec->cache));
81 DBG(r, "REQ[%X] end chxj_add_device_env()", (unsigned int)(apr_size_t)r);