os/mm/devsound/devsoundrefplugin/src/sounddevice/FixedSequence.rss
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
sl@0
     1
// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of "Eclipse Public License v1.0"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
// Description:
sl@0
    14
// Definitions required for tone sequences 
sl@0
    15
// 
sl@0
    16
//
sl@0
    17
sl@0
    18
// Signature definitions
sl@0
    19
#define SEQ_SIG1 0x5153
sl@0
    20
#define SEQ_SIG2 0x434E	
sl@0
    21
#define SEQ_SIG	SEQ_SIG1,SEQ_SIG2, // Signature = "SQNC" ASCII
sl@0
    22
sl@0
    23
// Commands
sl@0
    24
#define SEQ_CMD_RET         -1
sl@0
    25
#define SEQ_CMD_STARTLOOP   -2,
sl@0
    26
#define SEQ_CMD_ENDLOOP     -3,
sl@0
    27
sl@0
    28
// Useful values
sl@0
    29
// Note frequencies
sl@0
    30
#define SEQ_FREQ_A0	     440
sl@0
    31
#define SEQ_FREQ_AsBf0   466  // 466.1637615 A#, Bb
sl@0
    32
#define SEQ_FREQ_B0	     494  // 493.8833013
sl@0
    33
#define SEQ_FREQ_C0	     523  // 523.2511306
sl@0
    34
#define SEQ_FREQ_CsDf0	 554  // 554.365262 C#, Db, etc.
sl@0
    35
#define SEQ_FREQ_D0	     587  // 587.3295358
sl@0
    36
#define SEQ_FREQ_DsEf0   622  // 622.2539674
sl@0
    37
#define SEQ_FREQ_E0      659  // 659.2551138
sl@0
    38
#define SEQ_FREQ_F0      698  // 698.4564629
sl@0
    39
#define SEQ_FREQ_FsGf0   740  // 739.9888454
sl@0
    40
#define SEQ_FREQ_G0      784  // 783.990872
sl@0
    41
#define SEQ_FREQ_GsAf0   831  // 830.6093952
sl@0
    42
#define SEQ_FREQ_A1      880
sl@0
    43
#define SEQ_FREQ_AsBf1   932  // 932.327523
sl@0
    44
#define SEQ_FREQ_B1      988  // 987.7666025
sl@0
    45
#define SEQ_FREQ_C1      1047 // 1046.502261
sl@0
    46
#define SEQ_FREQ_CsDf1   1109 // 1108.730524
sl@0
    47
#define SEQ_FREQ_D1      1175 // 1174.659072
sl@0
    48
#define SEQ_FREQ_DsEf1   1245 // 1244.507935
sl@0
    49
#define SEQ_FREQ_E1      1319 // 1318.510228
sl@0
    50
#define SEQ_FREQ_F1      1397 // 1396.912926
sl@0
    51
#define SEQ_FREQ_FsGf1   1480 // 1479.977691
sl@0
    52
#define SEQ_FREQ_G1      1568 // 1567.981744
sl@0
    53
#define SEQ_FREQ_GsAf1   1661 // 1661.21879
sl@0
    54
#define SEQ_FREQ_A2      1760
sl@0
    55
#define SEQ_FREQ_AsBf2   1865 // 1864.655046
sl@0
    56
#define SEQ_FREQ_B2      1976 // 1975.533205
sl@0
    57
#define SEQ_FREQ_C2      2093 // 2093.004522
sl@0
    58
#define SEQ_FREQ_CsDf2   2217 // 2217.461048
sl@0
    59
#define SEQ_FREQ_D2      2349 // 2349.318143
sl@0
    60
#define SEQ_FREQ_DsEf2   2489 // 2489.01587
sl@0
    61
#define SEQ_FREQ_E2      2673 // 2637.020455
sl@0
    62
#define SEQ_FREQ_F2      2794 // 2793.825851
sl@0
    63
#define SEQ_FREQ_FsGf2   2960 // 2959.955382
sl@0
    64
#define SEQ_FREQ_G2      3136 // 3135.963488
sl@0
    65
#define SEQ_FREQ_GsAf2   3322 // 3322.437581
sl@0
    66
#define SEQ_FREQ_A3      3520
sl@0
    67
#define SEQ_FREQ_AsBf3   3729 // 3729.310092
sl@0
    68
sl@0
    69
// Volume defines
sl@0
    70
#define SEQ_VOL_F        32767 // Forte = Loud
sl@0
    71
#define SEQ_VOL_MF	     24575 // Mezzo forte = Medium loud
sl@0
    72
#define SEQ_VOL_MP		 16383 // Mezzo piano = Medium soft
sl@0
    73
#define SEQ_VOL_P         8191 // Piano = Soft
sl@0
    74
	
sl@0
    75
// Macros for defining sequences
sl@0
    76
#define SEQ_DATA(A) SEQ_SIG A SEQ_CMD_RET
sl@0
    77
#define SEQ_VAL(N) N,
sl@0
    78
#define SEQ_LOOP(NUMBEROFTIMES,DATA) SEQ_CMD_STARTLOOP SEQ_VAL(NUMBEROFTIMES) DATA SEQ_CMD_ENDLOOP
sl@0
    79
#define SEQ_TONE(DUR,F1,V1) SEQ_VAL(DUR) SEQ_VAL(F1) SEQ_VAL(V1) SEQ_VAL(0) SEQ_VAL(0)
sl@0
    80
#define SEQ_2TONES(DUR,F1,V1,F2,V2) SEQ_VAL(DUR) SEQ_VAL(F1) SEQ_VAL(V1) SEQ_VAL(F2) SEQ_VAL(V2)
sl@0
    81
#define SEQ_SILENCE(DUR) SEQ_VAL(DUR) SEQ_VAL(0) SEQ_VAL(0) SEQ_VAL(0) SEQ_VAL(0)
sl@0
    82
// DUR = number samples@8kHz hence 8000 = 1 second
sl@0
    83
// F1/F2 = frequency in Hz - can use note definitions above
sl@0
    84
// V1/V1 = volume in range 0-32767 - can use volume definitions above
sl@0
    85
// When playing two tones, sum of volumes should not be greater than 32767
sl@0
    86
// e.g. can use MF+P or MP+MP
sl@0
    87
sl@0
    88
STRUCT SEQUENCE_NAME
sl@0
    89
    {
sl@0
    90
    LTEXT name; // leading-byte counted text string
sl@0
    91
    }
sl@0
    92
sl@0
    93
STRUCT SEQUENCE_DATA
sl@0
    94
    {
sl@0
    95
	LEN WORD WORD data[]; // Array of 16bit data values
sl@0
    96
    }
sl@0
    97
sl@0
    98
STRUCT SEQUENCE_ARRAY
sl@0
    99
    {
sl@0
   100
    STRUCT sequences[];
sl@0
   101
    }
sl@0
   102
sl@0
   103
RESOURCE SEQUENCE_ARRAY fixed_tone_sequence
sl@0
   104
	{ 
sl@0
   105
	//
sl@0
   106
	// Contains the sequences supported by the device (with localisable names)
sl@0
   107
	//
sl@0
   108
	sequences =
sl@0
   109
		{
sl@0
   110
        	SEQUENCE_NAME 
sl@0
   111
			{ 
sl@0
   112
			//
sl@0
   113
			// A loud piercing sequence that alternates between two toned "warbles"
sl@0
   114
			// Duration: 5 seconds
sl@0
   115
			//
sl@0
   116
			name="Rings";
sl@0
   117
			},
sl@0
   118
		SEQUENCE_DATA
sl@0
   119
			{
sl@0
   120
			data =
sl@0
   121
				{ 
sl@0
   122
				SEQ_DATA
sl@0
   123
					(
sl@0
   124
					SEQ_LOOP
sl@0
   125
						(
sl@0
   126
						2,
sl@0
   127
						SEQ_LOOP
sl@0
   128
						    (
sl@0
   129
							11,
sl@0
   130
							SEQ_TONE(250,SEQ_FREQ_GsAf2,SEQ_VOL_F)
sl@0
   131
							SEQ_TONE(250,SEQ_FREQ_DsEf2,SEQ_VOL_F)
sl@0
   132
							)
sl@0
   133
						SEQ_LOOP
sl@0
   134
						    (
sl@0
   135
							11,
sl@0
   136
							SEQ_TONE(250,SEQ_FREQ_DsEf2,SEQ_VOL_F)
sl@0
   137
							SEQ_TONE(250,SEQ_FREQ_GsAf1,SEQ_VOL_F)
sl@0
   138
							)
sl@0
   139
						SEQ_SILENCE(6000)
sl@0
   140
						)
sl@0
   141
					SEQ_SILENCE(6000)
sl@0
   142
					)
sl@0
   143
				};
sl@0
   144
			},
sl@0
   145
        	SEQUENCE_NAME 
sl@0
   146
			{ 
sl@0
   147
			//
sl@0
   148
			// A pleasant bell-like sequence based on clock chimes
sl@0
   149
			// Duration:  5 seconds
sl@0
   150
			// 
sl@0
   151
			name="Chimes"; 
sl@0
   152
			},
sl@0
   153
		SEQUENCE_DATA
sl@0
   154
			{
sl@0
   155
			data =
sl@0
   156
				{
sl@0
   157
				SEQ_DATA
sl@0
   158
					(
sl@0
   159
					SEQ_2TONES(2500,SEQ_FREQ_E1,SEQ_VOL_MP,SEQ_FREQ_E1+5,SEQ_VOL_MP)
sl@0
   160
					SEQ_2TONES(2500,SEQ_FREQ_C1,SEQ_VOL_MP,SEQ_FREQ_C1+5,SEQ_VOL_MP)
sl@0
   161
					SEQ_2TONES(2500,SEQ_FREQ_D1,SEQ_VOL_MP,SEQ_FREQ_D1+5,SEQ_VOL_MP)
sl@0
   162
					SEQ_2TONES(6250,SEQ_FREQ_G0,SEQ_VOL_MF,SEQ_FREQ_G0+5,SEQ_VOL_P)
sl@0
   163
					SEQ_SILENCE(1250)
sl@0
   164
 					SEQ_2TONES(2500,SEQ_FREQ_G0,SEQ_VOL_MP,SEQ_FREQ_G0+5,SEQ_VOL_MP)
sl@0
   165
					SEQ_2TONES(2500,SEQ_FREQ_D1,SEQ_VOL_MP,SEQ_FREQ_D1+5,SEQ_VOL_MP)
sl@0
   166
					SEQ_2TONES(2500,SEQ_FREQ_E1,SEQ_VOL_MF,SEQ_FREQ_E1+5,SEQ_VOL_P)
sl@0
   167
					SEQ_2TONES(7500,SEQ_FREQ_C1,SEQ_VOL_MP,SEQ_FREQ_C1+5,SEQ_VOL_MP)
sl@0
   168
					SEQ_SILENCE(10000)
sl@0
   169
					)
sl@0
   170
				};
sl@0
   171
			},
sl@0
   172
        	SEQUENCE_NAME 
sl@0
   173
			{ 
sl@0
   174
			//
sl@0
   175
			// A quiet sequence similar to a digital watch alarm
sl@0
   176
			// Duration:  2.5 seconds
sl@0
   177
			// 
sl@0
   178
			name="Signal"; 
sl@0
   179
			},
sl@0
   180
		SEQUENCE_DATA
sl@0
   181
			{ 
sl@0
   182
			data =
sl@0
   183
				{
sl@0
   184
				SEQ_DATA
sl@0
   185
					(
sl@0
   186
					SEQ_LOOP
sl@0
   187
						(
sl@0
   188
						3,
sl@0
   189
						SEQ_LOOP
sl@0
   190
							(
sl@0
   191
							3,
sl@0
   192
							SEQ_TONE(328,SEQ_FREQ_AsBf3,SEQ_VOL_MF)
sl@0
   193
							SEQ_SILENCE(339)
sl@0
   194
							)
sl@0
   195
						SEQ_SILENCE(2333)
sl@0
   196
						)
sl@0
   197
					SEQ_SILENCE(6998)
sl@0
   198
					)
sl@0
   199
				};
sl@0
   200
			},
sl@0
   201
        	SEQUENCE_NAME 
sl@0
   202
			{ 
sl@0
   203
			//
sl@0
   204
			// Sounds like a fanfare played on an electric organ
sl@0
   205
			// Duration:  2.6 seconds
sl@0
   206
			// 
sl@0
   207
			name="Fanfare"; 
sl@0
   208
			},
sl@0
   209
		SEQUENCE_DATA
sl@0
   210
			{ 
sl@0
   211
			data =
sl@0
   212
				{
sl@0
   213
				SEQ_DATA
sl@0
   214
					(
sl@0
   215
					SEQ_2TONES(2000,SEQ_FREQ_DsEf1,SEQ_VOL_MP,SEQ_FREQ_DsEf0,SEQ_VOL_MP)
sl@0
   216
					SEQ_2TONES(2000,SEQ_FREQ_GsAf1,SEQ_VOL_MP,SEQ_FREQ_GsAf0,SEQ_VOL_MP)
sl@0
   217
					SEQ_2TONES(1000,SEQ_FREQ_C2,SEQ_VOL_MP,SEQ_FREQ_C1,SEQ_VOL_MP)
sl@0
   218
					SEQ_2TONES(1000,SEQ_FREQ_GsAf1,SEQ_VOL_MF,SEQ_FREQ_GsAf0,SEQ_VOL_P)
sl@0
   219
					SEQ_2TONES(2000,SEQ_FREQ_DsEf1,SEQ_VOL_MP,SEQ_FREQ_DsEf0,SEQ_VOL_MP)
sl@0
   220
					SEQ_2TONES(2000,SEQ_FREQ_GsAf1,SEQ_VOL_MP,SEQ_FREQ_GsAf0,SEQ_VOL_MP)
sl@0
   221
					SEQ_2TONES(4000,SEQ_FREQ_C2,SEQ_VOL_MP,SEQ_FREQ_C1,SEQ_VOL_MP)
sl@0
   222
					SEQ_2TONES(4000,SEQ_FREQ_GsAf1,SEQ_VOL_MF,SEQ_FREQ_GsAf0,SEQ_VOL_P)
sl@0
   223
					SEQ_SILENCE(4000)
sl@0
   224
					)
sl@0
   225
				};
sl@0
   226
			},
sl@0
   227
		SEQUENCE_NAME 
sl@0
   228
			{ 
sl@0
   229
			//
sl@0
   230
			// Pleasant two-tone chimes
sl@0
   231
			// Duration:  4 seconds
sl@0
   232
			// 
sl@0
   233
			name="Bells"; 
sl@0
   234
			},
sl@0
   235
		SEQUENCE_DATA
sl@0
   236
			{ 
sl@0
   237
			data =
sl@0
   238
				{
sl@0
   239
				SEQ_DATA
sl@0
   240
					(
sl@0
   241
					SEQ_LOOP
sl@0
   242
						(
sl@0
   243
						2,
sl@0
   244
						SEQ_2TONES(4000,SEQ_FREQ_E1,SEQ_VOL_MP,SEQ_FREQ_C1,SEQ_VOL_MP)
sl@0
   245
						SEQ_2TONES(8000,SEQ_FREQ_C1,SEQ_VOL_MP,SEQ_FREQ_G0,SEQ_VOL_MP)
sl@0
   246
						)
sl@0
   247
					SEQ_SILENCE(8000)
sl@0
   248
 					)
sl@0
   249
				};
sl@0
   250
			},
sl@0
   251
		SEQUENCE_NAME 
sl@0
   252
			{ 
sl@0
   253
			//
sl@0
   254
			// Cavalry charge
sl@0
   255
			// Duration: 2 seconds
sl@0
   256
			// 
sl@0
   257
			name="Cavalry"; 
sl@0
   258
			},
sl@0
   259
		SEQUENCE_DATA
sl@0
   260
			{ 
sl@0
   261
			data =
sl@0
   262
				{
sl@0
   263
				SEQ_DATA
sl@0
   264
					(
sl@0
   265
					SEQ_LOOP
sl@0
   266
						(
sl@0
   267
						2,
sl@0
   268
						SEQ_2TONES(1333,SEQ_FREQ_A2,SEQ_VOL_MP,SEQ_FREQ_A1,SEQ_VOL_MP)
sl@0
   269
						SEQ_SILENCE(667)
sl@0
   270
 						SEQ_2TONES(333,SEQ_FREQ_A2,SEQ_VOL_MP,SEQ_FREQ_A1,SEQ_VOL_MP)
sl@0
   271
						SEQ_SILENCE(333)
sl@0
   272
 						)
sl@0
   273
					SEQ_LOOP
sl@0
   274
						(
sl@0
   275
						2,
sl@0
   276
						SEQ_2TONES(1333,SEQ_FREQ_E2,SEQ_VOL_MP,SEQ_FREQ_E1,SEQ_VOL_MP)
sl@0
   277
						SEQ_SILENCE(667)
sl@0
   278
 						SEQ_2TONES(333,SEQ_FREQ_CsDf2,SEQ_VOL_MP,SEQ_FREQ_CsDf1,SEQ_VOL_MP)
sl@0
   279
						SEQ_SILENCE(333)
sl@0
   280
 						)
sl@0
   281
					SEQ_2TONES(2667,SEQ_FREQ_A2,SEQ_VOL_MP,SEQ_FREQ_A1,SEQ_VOL_MP)
sl@0
   282
					SEQ_SILENCE(2667)
sl@0
   283
 					)
sl@0
   284
				};
sl@0
   285
			}
sl@0
   286
		};
sl@0
   287
	}
sl@0
   288