⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ringtones.h

📁 NOKIA手机开发包
💻 H
字号:
/*  $Id: ringtones.h,v 1.17 2003/10/04 02:21:40 bozo Exp $  G N O K I I  A Linux/Unix toolset and driver for Nokia mobile phones.  This file is part of gnokii.  Gnokii is free software; you can redistribute it and/or modify  it under the terms of the GNU General Public License as published by  the Free Software Foundation; either version 2 of the License, or  (at your option) any later version.  Gnokii is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  GNU General Public License for more details.  You should have received a copy of the GNU General Public License  along with gnokii; if not, write to the Free Software  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  Copyright (C) 1999, 2000 Hugh Blemings & Pavel Jan韐 ml.  This file provides definitions of macros from the Smart Messaging  Specification. It is mainly rewrite of the spec to C :-) Viva Nokia!*/#ifndef _gnokii_ringtones_h#define _gnokii_ringtones_h#include <gnokii/error.h>/* NoteValue is encoded as octave(scale)*14 + note *//* where for note: c=0, d=2, e=4 .... *//* ie. c#=1 and 5 and 13 are invalid *//* note=255 means a pause */#define GN_RINGTONE_MAX_NOTES 256/* Structure to hold note of ringtone. */typedef struct {	unsigned char duration;	unsigned char note;} gn_ringtone_note;/* Structure to hold ringtones. */typedef struct {	int location;	char name[20];	unsigned char tempo;	unsigned char notes_count;	gn_ringtone_note notes[GN_RINGTONE_MAX_NOTES];} gn_ringtone;#define gn_ringtone_get_bit(stream, bitno) stream[(bitno) / 8]   &  1   << (7 - ((bitno) % 8))#define gn_ringtone_set_bit(stream, bitno) stream[(bitno) / 8]   |= 1   << (7 - ((bitno) % 8))#define gn_ringtone_clear_bit(stream, bitno) stream[(bitno) / 8] &= 255 -  (1 << (7 - ((bitno) % 8)))/* These values are from Smart Messaging Specification Revision 2.0.0 pages   3-23, ..., 3-29 *//* Command-Part Encoding */#define GN_RINGTONE_CancelCommand          (0x05 << 1) /* binary 0000 101 */#define GN_RINGTONE_Programming            (0x25 << 1) /* binary 0100 101 */#define GN_RINGTONE_Sound                  (0x1d << 1) /* binary 0011 101 */#define GN_RINGTONE_Unicode                (0x22 << 1) /* binary 0100 010 *//* Song-Type Encoding */#define GN_RINGTONE_BasicSongType     (0x01 << 5) /* binary 001 */#define GN_RINGTONE_TemporarySongType (0x02 << 5) /* binary 010 */#define GN_RINGTONE_MidiSongType      (0x03 << 5) /* binary 011 */#define GN_RINGTONE_DigitizedSongType (0x04 << 5) /* binary 100 *//* Instruction ID Encoding */#define GN_RINGTONE_PatternHeaderId      (0x00 << 5) /* binary 000 */#define GN_RINGTONE_NoteInstructionId    (0x01 << 5) /* binary 001 */#define GN_RINGTONE_ScaleInstructionId   (0x02 << 5) /* binary 010 */#define GN_RINGTONE_StyleInstructionId   (0x03 << 5) /* binary 011 */#define GN_RINGTONE_TempoInstructionId   (0x04 << 5) /* binary 100 */#define GN_RINGTONE_VolumeInstructionId  (0x05 << 5) /* binary 101 *//* Style-Value Encoding*/#define GN_RINGTONE_NaturalStyle    (0x00 << 6) /* binary 00 */#define GN_RINGTONE_ContinuousStyle (0x01 << 6) /* binary 01 */#define GN_RINGTONE_StaccatoStyle   (0x02 << 6) /* binary 11 *//* Note-Scale Encoding  */#define GN_RINGTONE_Scale1 (0x00 << 6) /* binary 00 */#define GN_RINGTONE_Scale2 (0x01 << 6) /* binary 01 */#define GN_RINGTONE_Scale3 (0x02 << 6) /* binary 10 */#define GN_RINGTONE_Scale4 (0x03 << 6) /* binary 11 *//* Note-Value Encoding */#define GN_RINGTONE_Note_Pause (0x00 << 4) /* binary 0000 */#define GN_RINGTONE_Note_C     (0x01 << 4) /* binary 0001 */#define GN_RINGTONE_Note_Cis   (0x02 << 4) /* binary 0010 */#define GN_RINGTONE_Note_D     (0x03 << 4) /* binary 0011 */#define GN_RINGTONE_Note_Dis   (0x04 << 4) /* binary 0100 */#define GN_RINGTONE_Note_E     (0x05 << 4) /* binary 0101 */#define GN_RINGTONE_Note_F     (0x06 << 4) /* binary 0110 */#define GN_RINGTONE_Note_Fis   (0x07 << 4) /* binary 0111 */#define GN_RINGTONE_Note_G     (0x08 << 4) /* binary 1000 */#define GN_RINGTONE_Note_Gis   (0x09 << 4) /* binary 1001 */#define GN_RINGTONE_Note_A     (0x0a << 4) /* binary 1010 */#define GN_RINGTONE_Note_Ais   (0x0b << 4) /* binary 1011 */#define GN_RINGTONE_Note_H     (0x0c << 4) /* binary 1100 *//* Note-Duration Encoding */#define GN_RINGTONE_Duration_Full (0x00 << 5) /* binary 000 */#define GN_RINGTONE_Duration_1_2  (0x01 << 5) /* binary 001 */#define GN_RINGTONE_Duration_1_4  (0x02 << 5) /* binary 010 */#define GN_RINGTONE_Duration_1_8  (0x03 << 5) /* binary 011 */#define GN_RINGTONE_Duration_1_16 (0x04 << 5) /* binary 100 */#define GN_RINGTONE_Duration_1_32 (0x05 << 5) /* binary 101 *//* Note-Duration-Specifier Encoding */#define GN_RINGTONE_NoSpecialDuration (0x00 << 6) /* binary 00 */#define GN_RINGTONE_DottedNote        (0x01 << 6) /* binary 01 */#define GN_RINGTONE_DoubleDottedNote  (0x02 << 6) /* binary 10 */#define GN_RINGTONE_Length_2_3        (0x03 << 6) /* binary 11 *//* Pattern ID Encoding */#define GN_RINGTONE_A_part (0x00 << 6) /* binary 00 */#define GN_RINGTONE_B_part (0x01 << 6) /* binary 01 */#define GN_RINGTONE_C_part (0x02 << 6) /* binary 10 */#define GN_RINGTONE_D_part (0x03 << 6) /* binary 11 *//* Command-End */#define GN_RINGTONE_CommandEnd (0x00) /* binary 00000000 *//* Definition of the Note type */typedef struct {	int scale;	int note_id;	int duration;	int duration_specifier;} gn_note;#define GN_RINGTONE_PACKAGE_MAX_LENGTH 200/* From PC Composer help */#define GN_RINGTONE_NOTES_MAX_NUMBER 130API gn_error gn_file_ringtone_read(char *filename, gn_ringtone *ringtone);API gn_error gn_file_ringtone_save(char *filename, gn_ringtone *ringtone);API unsigned char gn_ringtone_pack(gn_ringtone *ringtone, unsigned char *package, int *maxlength);API gn_error gn_ringtone_unpack(gn_ringtone *ringtone, unsigned char *package, int maxlength);API int gn_note_get(int number);API void gn_ringtone_get_tone(const gn_ringtone *ringtone, int n, int *freq, int *ulen);API void gn_ringtone_set_duration(gn_ringtone *ringtone, int n, int ulen);#endif	/* _gnokii_ringtones_h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -