summaryrefslogtreecommitdiff
path: root/plugins/ExternalAPI/delphi/m_radio.inc
blob: 361d1ce860a22ce5fca84e8d29fc2bbb7bd9f87c (plain)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
{$IFNDEF M_RADIO}
{$DEFINE M_RADIO}
{command codes}

// defined in interfaces.inc
//const MIID_MRADIO:MUUID='{EEBC474C-B0AD-470F-99A8-9DD9210CE233}';

const
  MRC_STOP   = 0;
  MRC_PLAY   = 1; // lParam is radio contact handle
  MRC_PAUSE  = 2;
  MRC_PREV   = 3;
  MRC_NEXT   = 4;
  MRC_STATUS = 5; // lParam is RD_STATUS_* value (RD_STATUS_GET only now)
  MRC_SEEK   = 6; // lParam is value in sec; -1 mean obtain current position
  MRC_RECORD = 7; // lParam is 0 - switch; 1 - on; 2 - off
  MRC_MUTE   = 8;

const
  // Plugin status (result of RD_STATUS_GET)
  RD_STATUS_NOSTATION  = 0;   // no active station found
  RD_STATUS_PLAYING    = 1;   // media is playing
  RD_STATUS_PAUSED     = 2;   // media is paused
  RD_STATUS_STOPPED    = 3;   // media is stopped (only for playlists)
  RD_STATUS_CONNECT    = 4;   // plugin try to connect to the station
  RD_STATUS_ABORT      = 5;   // plugin want to abort while try to connect
  // next is for events only
  RD_STATUS_POSITION   = 107; // position was changed
  RD_STATUS_MUTED      = 108; // Mute/Unmute command was sent
  RD_STATUS_RECORD     = 109; // "Record" action called
  RD_STATUS_NEWTRACK   = 110; // new track/station
  RD_STATUS_NEWTAG     = 111; // tag data changed
  RD_STATUS_NEWSTATION = 112; // new station (contact)
  // next command is for users
  RD_STATUS_GET        = 6;   // to get current status

const
{
  Open radio Options, if Main Options window not opened
  wParam: 0
  lParam: 0
}
  MS_RADIO_SETTINGS:PAnsiChar = 'mRadio/Settings';
{
  Switch 'record' mode
  wParam: not used
  lParam: 0 - switch mode; else - get record status
  Return: Current status: 1 - record is ON, 0 - OFF
}
  MS_RADIO_RECORD:PAnsiChar = 'mRadio/REC';

{
  Set current radio volume
  wParam: volume (0-100)
  lParam: must be 0
  Return: previous value
}
  MS_RADIO_SETVOL:PAnsiChar = 'mRadio/SetVol';

{
  Get current radio volume
  wParam: 0
  lParam: 0
  Return: volime value (negative if muted)
}
  MS_RADIO_GETVOL:PAnsiChar = 'mRadio/GetVol';

{
  wParam,lParam = 0
}
  MS_RADIO_MUTE:PAnsiChar = 'mRadio/Mute';

{
  wParam,lParam = 0
}
  MS_RADIO_QUICKOPEN:PAnsiChar = 'mRadio/QuickOpen';

{
  Send command to mRadio
  wParam: command (see MRC_* constant)
  lParam: value (usually 0)
  Return: return value (now for status only)
}
  MS_RADIO_COMMAND:PAnsiChar = 'mRadio/Command';

{
  Starting or stopping radio station
  wParam: Radio contact handle (lParam=0) or Station name
  lParam: 0 - wParam is handle, 1 - ANSI, else - unicode
}
  MS_RADIO_PLAYSTOP:PAnsiChar = 'mRadio/PlayStop';

{
  wParam: station handle (0 - all)
  lParam: nil (through dialog, radio.ini by default) or ansi string with filename
  Return: exported stations amount
}
  MS_RADIO_EXPORT:PAnsiChar = 'mRadio/Export';

{
  wParam: group to import radio or 0
  lParam: nil (through dialog, radio.ini by default) or ansi string with filename
  Return: imported stations amount
}
  MS_RADIO_IMPORT:PAnsiChar = 'mRadio/Import';

{
  wParam: RD_STATUS_* constants
  lParam: argument
    RD_STATUS_NEWSTATION - contact handle
    RD_STATUS_NEWTRACK   - URL (unicode)
    RD_STATUS_PAUSED     - 1 - pause, 0 - continued
    RD_STATUS_RECORD     -,0 - off,   1 - on
}
  ME_RADIO_STATUS:PAnsiChar = 'mRadio/Status';

{
  wParam: 0 - switch; 1 - switch on; -1 - switch off
  lParam: 0
  Return: last state (0 - was off, 1 - was on)
}
  MS_RADIO_EQONOFF:PAnsiChar = 'mRadio/EqOnOff';

{
  wParam: 0 
  lParam: 0
  Return: 0, if cancelled, 101 - "mute", 102 - "play/pause", 103 - "stop" or station handle
}
  MS_RADIO_TRAYMENU:PAnsiChar = 'mRadio/MakeTrayMenu';

{$ENDIF}