This repository has been archived by the owner on Oct 6, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
kSound.h
89 lines (77 loc) · 3.2 KB
/
kSound.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#pragma once
/*
nazwa="kSound API"
data="2003-05-13"
ver=""
info="Nag³ówek wtyczki kSound."
*/
/** @file Nag³ówek wtyczki kSound
*/
/** @defgroup SOUND_shared_h Wtyczka kSound.dll.
kSound odpowiada za odtwarzanie dŸwiêków.
Przy pomocy kSound::SoundRegister() mo¿na dodaæ
nowy dŸwiêk do listy, a nastêpnie go odtworzyæ przez
kSound::SoundPlay().
@warning kSound::SoundRegister() mo¿e byæ wywo³any @b tylko
w momencie otrzymania przez wtyczkê komunikatu
kSound::DOREGISTER .
DOREGISTER wywo³ywane jest dwukrotnie. Podczas rejestrowania kolumn i tworzenia
interfejsu.
Za ka¿dym razem trzeba zarejestrowaæ TE SAME dŸwiêki!
Kolumny w konfiguracji nazywane s¹ jako "SOUND_" + nazwa_dŸwiêku.
Akcje w konfiguracji maj¹ identyfikatory (@a id - ID kolumny z dŸwiêkiem):
kSound::action::Check | id - Checkbox
kSound::action::Value | id - WartoϾ
kSound::action::Play | id - Play/Stop
@{
*/
namespace kSound {
const int REGISTER = IM_USER + 3000;
const int PLAY = IM_USER + 3001;
const int DOREGISTER = IM_USER + 3002;
const int GETFILE = IM_USER + 3003;
/** Struktura do wys³ania razem z kSound::SOUND_REGISTER
*/
class sIMessage_SoundRegister: public sIMessage_base {
public:
const static int minimumSize; /**< rozmiar poprzedniej wersji... */
int colID; ///< konkretny identyfikator kolumny, lub -1
const char * name; ///< Jednoznaczna nazwa dŸwiêku (nazwa kolumny w konfiguracji i pola w XMLu)
const char * info; ///< Informacja przy polu w konfiguracji.
int flags; ///< Flagi kSound::flags .
const char * defSound; ///< Domyœlnie ustawiony dŸwiêk dla kolumny
sIMessage_SoundRegister(const char * name , const char * info , int flags = 0 , int colID = -1, const char* defSound=0):sIMessage_base(REGISTER) , colID(colID),name(name),info(info),flags(flags), defSound(defSound) {
s_size = sizeof(*this);
net = NET_SOUND;
type = IMT_CONFIG;
}
};
const int sIMessage_SoundRegister::minimumSize = sizeof(sIMessage_SoundRegister) - 4; /**< rozmiar poprzedniej wersji... */
namespace flags {
const char contacts=1; ///< Dla ka¿dego kontaktu przechowywane jest osobne ustawienie.
const char no_column_register=2; ///< kSound nie zarejestruje kolumny w konfiguracji.
const char no_action_register=4; ///< kSound nie utworzy akcji...
};
namespace action {
const int Check = 0x1A000000;
const int Play = 0x1B000000;
const int Value = 0x1C000000;
const int mute = NET_SOUND * 1000 + 20;
};
namespace Cfg {
const int mute = NET_SOUND * 1000 + 1;
};
/** Rejestruje dŸwiêk. */
inline void SoundRegister(cCtrl * Ctrl , const char * name , const char * info , int flags = 0 , int colID=-1, const char* defSound=0) {
sIMessage_SoundRegister sr(name , info , flags , colID, defSound);
Ctrl->IMessage(&sr);
}
/** Odgrywa dŸwiêk */
inline void SoundPlay(cCtrl * Ctrl , const char * name , int cntID=0) {
Ctrl->IMessage(&sIMessage_2params(PLAY , NET_SOUND , IMT_CONFIG , (int)name , cntID));
}
inline const char* GetSoundFile(cCtrl * Ctrl , const char * name , int cntID=0) {
return (const char*)Ctrl->IMessage(&sIMessage_2params(GETFILE , NET_SOUND , IMT_CONFIG , (int)name , cntID));
}
};
/// @}