The Lazarus backend interface unit is as follows but still unfinished: ---------------------------------------- unit backend;
{$mode objfpc}{$H+} interface uses Classes, SysUtils, stdctrls; procedure Backend_Save(essid, pw: string); procedure Backend_Save_Connect(essid, pw: string); function Backend_Query_Connect(connection: string; var pw: string): boolean; function Backend_Delete_Connect(essid: string): boolean; function Backend_Connection_Connect(essid: string): boolean; function Backend_Disconnect_Active_Connection: boolean; procedure Backend_Scan(aListBox: TListBox); procedure Backend_Load_Existing(aListBox: TListBox); implementation const opSave = 0; opSaveConnect = 1; opQueryConnect = 2; opDeleteConnect = 3; opConnectionConnect = 4; opDisconnectActiveConnection = 5; opScan = 6; opLoadExisting = 7; procedure Backend_Save(essid, pw: string); begin // backend opSave essid pw end; procedure Backend_Save_Connect(essid, pw: string); begin // backend opSaveConnect essid pw end; function Backend_Query_Connect(connection: string; var pw:string): boolean; begin // backend opQueryConnect essid pw end; function Backend_Delete_Connect(essid: string): boolean; begin // backend opDeleteConnect essid result := true; end; function Backend_Connection_Connect(essid: string): boolean; begin // backend opConnectionConnect essid end; function Backend_Disconnect_Active_Connection: boolean; begin // backend opDisconnectActiveConnection end; procedure Backend_Scan(aListBox: TListBox); begin // backend opScan stringlist end; procedure Backend_Load_Existing(aListBox: TListBox); begin // backend opLoadExisting stringlist end; end. --------------------------------------------- On 17/08/2015, Edward Bartolo <edb...@gmail.com> wrote: > The Progress of My Coding Till Now: > > I am attaching two images of the GUI's main window and the only > dialog. The GUI is programmed in Lazarus Pascal. > > The backend is in C. The code till now, although it doesn't do anything > useful. > ---------------------------------------------- > #include <stdio.h> > #include <stdlib.h> > #include <string.h> > #include <unistd.h> > > > using namespace std; > > > #define opSave 0 > #define opSaveConnect 1 > #define opQueryConnect 2 > #define opDeleteConnect 3 > #define opConnectionConnect 4 > #define opDisconnectActiveConnection 5 > #define opScan 6 > #define opLoadExisting 7 > > /* > 1) Glib::spawn_sync instead of a pipe stream, provides a slot. > 2) cmd trying to call an inexistent command still returns a valid pointer! > verify cmd exists before calling exec > */ > > inline bool file_exists(char* name) { > return (access(name, F_OK) != -1); > } > > > int exec(const char* cmd, char* out) > { > const int buf_size = 128; > > FILE * pipe = popen(cmd, "r"); > char buffer[buf_size]; > while(!feof(pipe)) { > if(fgets(buffer, buf_size, pipe) != NULL) > { > if (out != NULL) > strcat(out, buffer); > else strcpy(out, buffer); > } > } > > return pclose(pipe); > } > > int main(int argc, char *argv[]) > { > char *out = 0; > int switch_item = -1; > if (argc > 1) switch_item = atoi(argv[1]); > > switch (switch_item) { > case opSave: > //saveFile(argv[2], argv[3]); > exec("cat /etc/network/interfaces", out); > //out[0] = ' '; > printf(out); > > return 0; > > case opSaveConnect: > //saveFile(argv[2], argv[3]); > //Connect(argv[2]); > return 0; > > case opQueryConnect: > > return 0; > > case opDeleteConnect: > > break; > > case opConnectionConnect: > > break; > > case opDisconnectActiveConnection: > > break; > > case opScan: > > break; > > case opLoadExisting: > > return 0; > } > > return -1; // parameter not in range > } > ---------------------------------------------------------------- > > > On 17/08/2015, Rainer Weikusat <rainerweiku...@virginmedia.com> wrote: >> James Powell <james4...@hotmail.com> writes: >>> While there are packages that can be invisible and unintrusive into >>> the system, there are some that cannot. >>> >>> The problem is responsibility. >>> >>> Who wants to remain responsible for boot scripts? Upstream or vendor? >>> >>> Who wants responsibility for providing interoperability between >>> projects? Upstream or downstream bazaar? >>> >>> Who wants responsibility for the userland? Upstream or the downstream >>> bazaar? >> >> It's possible to frame this in more technical terms: Who'll end up doing >> system integration, system integrators or application developers? The >> answer should (hopefully) be obvious. >> _______________________________________________ >> Dng mailing list >> Dng@lists.dyne.org >> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng >> > _______________________________________________ Dng mailing list Dng@lists.dyne.org https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng