| 
							- /*
 -   ZynAddSubFX - a software synthesizer
 - 
 -   LASHClient.cpp - LASH support
 -   Copyright (C) 2006-2009 Lars Luthman
 -   Author: Lars Luthman
 - 
 -   This program is free software; you can redistribute it and/or modify
 -   it under the terms of version 2 of the GNU General Public License
 -   as published by the Free Software Foundation.
 - 
 -   This program is distributed in the hope that it will be useful,
 -   but WITHOUT ANY WARRANTY; without even the implied warranty of
 -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 -   GNU General Public License (version 2 or later) for more details.
 - 
 -   You should have received a copy of the GNU General Public License (version 2)
 -   along with this program; if not, write to the Free Software Foundation,
 -   Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 - 
 - */
 - #include <unistd.h>
 - #include <iostream>
 - #include <string>
 - 
 - #include "LASHClient.h"
 - 
 - 
 - LASHClient::LASHClient(int *argc, char ***argv)
 - {
 -     client = lash_init(lash_extract_args(argc, argv), "ZynAddSubFX",
 -                        LASH_Config_File, LASH_PROTOCOL(2, 0));
 - }
 - 
 - 
 - void LASHClient::setalsaid(int id)
 - {
 -     if(lash_enabled(client))
 -         if(id != -1)
 -             lash_alsa_client_id(client, id);
 - }
 - 
 - 
 - void LASHClient::setjackname(const char *name)
 - {
 -     if(lash_enabled(client))
 -         if(name != NULL) {
 -             lash_jack_client_name(client, name);
 - 
 -             lash_event_t *event = lash_event_new_with_type(LASH_Client_Name);
 -             lash_event_set_string(event, name);
 -             lash_send_event(client, event);
 -         }
 - }
 - 
 - 
 - LASHClient::Event LASHClient::checkevents(std::string &filename)
 - {
 -     if(!lash_enabled(client))
 -         return NoEvent;
 - 
 -     Event received = NoEvent;
 -     lash_event_t *event;
 -     while((event = lash_get_event(client))) {
 -         // save
 -         if(lash_event_get_type(event) == LASH_Save_File) {
 -             std::cerr << "LASH event: LASH_Save_File" << std::endl;
 -             filename = std::string(lash_event_get_string(event))
 -                        + "/master.xmz";
 -             received = Save;
 -             break;
 -         }
 -         // restore
 -         else
 -         if(lash_event_get_type(event) == LASH_Restore_File) {
 -             std::cerr << "LASH event: LASH_Restore_File" << std::endl;
 -             filename = std::string(lash_event_get_string(event))
 -                        + "/master.xmz";
 -             received = Restore;
 -             break;
 -         }
 -         // quit
 -         else
 -         if(lash_event_get_type(event) == LASH_Quit) {
 -             std::cerr << "LASH event: LASH_Quit" << std::endl;
 -             received = Quit;
 -             break;
 -         }
 - 
 -         lash_event_destroy(event);
 -     }
 -     return received;
 - }
 - 
 - 
 - void LASHClient::confirmevent(Event event)
 - {
 -     if(event == Save)
 -         lash_send_event(client, lash_event_new_with_type(LASH_Save_File));
 -     else
 -     if(event == Restore)
 -         lash_send_event(client, lash_event_new_with_type(LASH_Restore_File));
 - }
 
 
  |