1/*
2 * Copyright 2004-2008, Haiku Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _MIME_H
6#define _MIME_H
7
8
9#include <sys/types.h>
10
11#include <SupportDefs.h>
12#include <StorageDefs.h>
13#include <TypeConstants.h>
14
15
16enum icon_size {
17	B_LARGE_ICON	= 32,
18	B_MINI_ICON		= 16
19};
20
21/* values for the "force" parameter of update_mime_info() (Haiku only) */
22enum {
23	B_UPDATE_MIME_INFO_NO_FORCE			= 0,
24	B_UPDATE_MIME_INFO_FORCE_KEEP_TYPE	= 1,
25	B_UPDATE_MIME_INFO_FORCE_UPDATE_ALL	= 2,
26};
27
28
29/* C functions */
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35int update_mime_info(const char* path, int recursive, int synchronous,
36	int force);
37status_t create_app_meta_mime(const char* path, int recursive, int synchronous,
38	int force);
39status_t get_device_icon(const char* device, void* icon, int32 size);
40
41#ifdef __cplusplus
42}
43
44/* C++ functions, Haiku only! */
45
46class BBitmap;
47
48status_t get_device_icon(const char* device, BBitmap* icon, icon_size which);
49status_t get_device_icon(const char* device, uint8** _data, size_t* _size,
50	type_code* _type);
51
52status_t get_named_icon(const char* name, BBitmap* icon, icon_size which);
53status_t get_named_icon(const char* name, uint8** _data, size_t* _size,
54	type_code* _type);
55
56/* include MimeType.h for convenience */
57#	include <MimeType.h>
58#endif	/* __cplusplus */
59
60#endif	/* _MIME_H */
61