The Winamp Remote Control suite
a remote control client and plugin for Winamp 2.x, 5.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
remoteDM.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------
2 
3 #ifndef remoteDMH
4 #define remoteDMH
5 //---------------------------------------------------------------------------
6 #include <Classes.hpp>
7 #include <Controls.hpp>
8 #include <StdCtrls.hpp>
9 #include <Forms.hpp>
10 #include <ActnList.hpp>
11 #include <Dialogs.hpp>
12 
13 #pragma hdrstop
14 
15 #include "IWinamp.h"
16 #include "waint.h"
17 
18 #include "MainF.h"
19 #include "PlaylistF.h"
20 #include "SettingsF.h"
21 #include "CommandF.h"
22 
23 #include "ClientConfig.h"
24 
25 //---------------------------------------------------------------------------
26 class TdmRemote : public TDataModule
27 {
28 __published: // IDE-managed Components
29  TActionList *alMain;
30  TAction *PlaceOnTray;
31  TAction *Exit;
32  TAction *ViewToolBar;
33  TAction *Pause;
34  TAction *Play;
35  TAction *Stop;
36  TAction *StopFade;
37  TAction *StopAfterCurrent;
38  TAction *Forward5;
39  TAction *Back5;
40  TAction *ViewPlaylist;
41  TAction *Shuffle;
42  TAction *Repeat;
43  TAction *Next;
44  TAction *Previous;
45  TAction *Start;
46  TAction *End;
47  TAction *PlaylistRefresh;
48  TAction *PlayFromStart;
49  TAction *AddPlayIist;
50  TAction *AddDirectory;
51  TAction *ViewVolume;
52  TAction *Up;
53  TAction *Down;
54  TAction *UpMore;
55  TAction *DownMore;
56  TAction *Zero;
57  TAction *Half;
58  TAction *Full;
59  TAction *About;
60  TAction *ShowMainForm;
61  TAction *LocateServers;
62  TAction *Autoload;
63  TAction *Details;
64  TAction *NextFade;
65  TAction *PreviousFade;
66  TAction *SongChanging;
67  TAction *SongChanged;
68  TAction *NewSong;
71  TAction *EQOn;
72  TOpenDialog *odlgMain;
73  TAction *HideOnStart;
74  TAction *RestoreOnStart;
75  TAction *ChangeFade;
76 
77 void __fastcall PauseExecute(TObject * Sender);
78 void __fastcall PlayExecute(TObject *Sender);
79 void __fastcall NextExecute(TObject *Sender);
80 void __fastcall NextFadeExecute(TObject *Sender);
81 void __fastcall PreviousExecute(TObject *Sender);
82 void __fastcall StopExecute(TObject *Sender);
83 void __fastcall Forward5Execute(TObject *Sender);
84 void __fastcall Back5Execute(TObject *Sender);
85 void __fastcall VolumeUpExecute(TObject *Sender);
86 void __fastcall VolumeDownExecute(TObject *Sender);
87 void __fastcall VolumeUpMoreExecute(TObject *Sender);
88 void __fastcall VolumeDownMoreExecute(TObject *Sender);
89 void __fastcall PlaylistStartExecute(TObject *Sender);
90 void __fastcall PlaylistEndExecute(TObject *Sender);
91 void __fastcall DeletePlayListExecute(TObject *Sender);
92 void __fastcall StopFadeExecute(TObject *Sender);
93 void __fastcall StopAfterCurrentExecute(TObject *Sender);
94 void __fastcall SetVolume0Execute(TObject *Sender);
95 void __fastcall SetVolume100Execute(TObject *Sender);
96 void __fastcall ShuffleExecute(TObject *Sender);
97 void __fastcall RepeatExecute(TObject *Sender);
98 void __fastcall PlayFromStartExecute(TObject *Sender);
99 void __fastcall HalfExecute(TObject *Sender);
100 void __fastcall ViewToolBarExecute(TObject *Sender);
101 void __fastcall ViewPlaylistExecute(TObject *Sender);
102 void __fastcall ViewVolumeExecute(TObject *Sender);
103 void __fastcall AutoloadExecute(TObject *Sender);
104 void __fastcall EQOnExecute(TObject *Sender);
105 void __fastcall DetailsExecute(TObject *Sender);
106 void __fastcall PreviousFadeExecute(TObject *Sender);
107 void __fastcall SongChangingExecute(TObject *Sender);
108 void __fastcall SongChangedExecute(TObject *Sender);
109 void __fastcall NewSongExecute(TObject *Sender);
110 void __fastcall PlaylistRefreshExecute(TObject *Sender);
111 void __fastcall PlaylistRefreshStatsExecute(TObject *Sender);
112  void __fastcall AboutExecute(TObject *Sender);
113  void __fastcall AddDirectoryExecute(TObject *Sender);
114  void __fastcall AddPlayIistExecute(TObject *Sender);
115  void __fastcall DownExecute(TObject *Sender);
116  void __fastcall DownMoreExecute(TObject *Sender);
117  void __fastcall EndExecute(TObject *Sender);
118  void __fastcall FullExecute(TObject *Sender);
119  void __fastcall LocateServersExecute(TObject *Sender);
120  void __fastcall PlaceOnTrayExecute(TObject *Sender);
121  void __fastcall PlaylistRefreshCurrentExecute(TObject *Sender);
122  void __fastcall ShowMainFormExecute(TObject *Sender);
123  void __fastcall StartExecute(TObject *Sender);
124  void __fastcall UpExecute(TObject *Sender);
125  void __fastcall UpMoreExecute(TObject *Sender);
126  void __fastcall ZeroExecute(TObject *Sender);
127  void __fastcall DataModuleCreate(TObject *Sender);
128  void __fastcall DataModuleDestroy(TObject *Sender);
129  void __fastcall ExitExecute(TObject *Sender);
130  void __fastcall HideOnStartExecute(TObject *Sender);
131  void __fastcall RestoreOnStartExecute(TObject *Sender);
132  void __fastcall ChangeFadeExecute(TObject *Sender);
133 
134 
135 private: // User declarations
136  int LastLength;
137  int LastIndex;
138  int CurrentIndex;
139 
141 
142  TfrmPlaylist * FPlaylistForm;
143  TfrmMain * FMainForm;
144  TfrmSettings * FSettingsForm;
145  TfrmCommands * FCommandsForm;
146 
147 
148  void __fastcall GetFilenames(int Start, int Stop, TStringList * Files);
149  void hookEvents(TForm * NewForm, TForm * PriorForm);
150  void __fastcall ChildFormStartDock(TObject *Sender, TDragDockObject *&DragObject);
151  void __fastcall ChildFormClose(TObject * aForm, TCloseAction & aAction);
152  void __fastcall restoreForms(WinampRemote::Config::ClientConfig & config);
153 
154 public: // User declarations
155  __fastcall TdmRemote(TComponent* Owner);
157  void __fastcall DropFiles(TStringList * DropFiles, int DropIndex);
158  void __fastcall DoAddFiles(TStrings * Files, int selectedIndex = -1);
159  void __fastcall PlaylistDragDrop(int dropIndex, int currentPos);
160  void __fastcall SetSongPosition(int pos, int width);
161 
162  void __fastcall SetVolume(int volume);
163  void __fastcall SetBalance(int balance);
164  void __fastcall BarChange(int index, byte position);
165  void __fastcall UpdateBars();
166  void __fastcall UpdateValues();
167  WAPlaybackStatus __fastcall PlaybackStatus();
168  std::string __fastcall WinampVersionString();
169  std::string __fastcall TdmRemote::CurrentSong();
170  void __fastcall GetPlaylistState(int& length, int & index);
171 
172  void __fastcall DoDeleteSelected(void);
173  void __fastcall DoBind(const AnsiString& address, const AnsiString& endpoint);
174  void __fastcall registerForm(TForm * aForm);
175  void __fastcall unRegisterForm(TForm * aForm);
176 
177 
178 };
179 //---------------------------------------------------------------------------
180 extern PACKAGE TdmRemote *dmRemote;
181 //---------------------------------------------------------------------------
182 #endif