Index: platform/symbian/audsymbian.cpp
===================================================================
RCS file: /cvsroot/audio/device/platform/symbian/audsymbian.cpp,v
retrieving revision 1.32
diff -w -u -b -r1.32 audsymbian.cpp
--- platform/symbian/audsymbian.cpp	20 Apr 2005 19:27:34 -0000	1.32
+++ platform/symbian/audsymbian.cpp	5 Oct 2005 22:05:47 -0000
@@ -419,9 +419,14 @@
         }
 
         // connect to the audio server and share the session
+
         if (m_pAudioServerContext->Running() &&
-            KErrNone == m_pAudioStream->Connect() &&
-            KErrNone == m_pAudioStream->Share(RSessionBase::EAutoAttach))
+            KErrNone == m_pAudioStream->Connect() 
+#ifndef HELIX_CONFIG_SYMBIAN_PLATFORM_SECURITY             
+            && KErrNone == m_pAudioStream->Share(RSessionBase::EAutoAttach)
+#endif 
+            )
+
         {
             m_deviceOpen = true;
             res = HXR_OK;
Index: platform/symbian/audiosvr/audio_svr.cpp
===================================================================
RCS file: /cvsroot/audio/device/platform/symbian/audiosvr/audio_svr.cpp,v
retrieving revision 1.4
diff -w -u -b -r1.4 audio_svr.cpp
--- platform/symbian/audiosvr/audio_svr.cpp	9 Jul 2004 18:37:52 -0000	1.4
+++ platform/symbian/audiosvr/audio_svr.cpp	5 Oct 2005 22:05:47 -0000
@@ -60,12 +60,65 @@
 
 static const TUint KDefaultMessageSlots = 2;
 
+//
+// SendReceive argument packing function have been changed
+// in Symbian 9.1. So set of macros are defined for handling
+// based on the symbian version
+//
+#ifdef HELIX_CONFIG_SYMBIAN_PLATFORM_SECURITY
+
+#define SENDRECEIVE(_COMMAND_, _RETVAL_)    \
+                            _RETVAL_ = SendReceive(_COMMAND_, TIpcArgs(0));
+
+#define SENDRECEIVE_1_ARG(_COMMAND_, _ARG1_, _RETVAL_)    \
+                            _RETVAL_ = SendReceive(_COMMAND_, TIpcArgs(_ARG1_));
+
+#define SENDRECEIVE_2_ARG(_COMMAND_, _ARG1_, _ARG2_, _RETVAL_)    \
+                            _RETVAL_ = SendReceive(_COMMAND_, TIpcArgs(_ARG1_, _ARG2_));
+
+#define SENDRECEIVE_ARG_STATUS(_COMMAND_, _ARG1_, _STATUS_)    \
+                            SendReceive(_COMMAND_, TIpcArgs(_ARG1_), _STATUS_);
+
+#define SENDRECEIVE_STATUS(_COMMAND_, _STATUS_)   \
+                            SendReceive(_COMMAND_, TIpcArgs(0), _STATUS_);
+
+#else
+
+#define SENDRECEIVE(_COMMAND_, _RETVAL_)  _RETVAL_ = SendReceive(_COMMAND_, 0);
+
+#define SENDRECEIVE_1_ARG(_COMMAND_, _ARG1_, _RETVAL_)      \
+                            TAny* p[KMaxMessageArguments];  \
+                            p[0] = (TAny*) _ARG1_; \
+                            _RETVAL_ = SendReceive(_COMMAND_, &p[0]);
+
+#define SENDRECEIVE_2_ARG(_COMMAND_, _ARG1_, _ARG2_, _RETVAL_)  \
+                            TAny* p[KMaxMessageArguments];  \
+                            p[0] = (TAny*) _ARG1_; \
+                            p[1] = (TAny*) _ARG2_;  \
+                            _RETVAL_ = SendReceive(_COMMAND_, &p[0]);
+
+#define SENDRECEIVE_ARG_STATUS(_COMMAND_, _ARG1_, _STATUS_)    \
+                            TAny* p[KMaxMessageArguments];  \
+                            p[0] = (TAny*) _ARG1_; \
+                            SendReceive(_COMMAND_, &p[0], _STATUS_);
+
+#define SENDRECEIVE_STATUS(_COMMAND_, _STATUS_)   \
+                            SendReceive(_COMMAND_, 0, _STATUS_);
+
+#endif // End of #ifdef HELIX_CONFIG_SYMBIAN_PLATFORM_SECURITY
+
 // class HXSymbianAudioServer:
 
+
 HXSymbianAudioServer::HXSymbianAudioServer()
-: CServer(CActive::EPriorityStandard, ESharableSessions),
-  m_sessionCount(0)
+#ifdef HELIX_CONFIG_SYMBIAN_PLATFORM_SECURITY 
+: CServer2(CActive::EPriorityStandard, ESharableSessions)
+#else
+: CServer(CActive::EPriorityStandard, ESharableSessions)
+#endif
+,m_sessionCount(0)
 {
+    
 }
 
 HXSymbianAudioServer::~HXSymbianAudioServer()
@@ -73,11 +126,21 @@
     Cancel();
 }
 
-CSharableSession* HXSymbianAudioServer::NewSessionL(const TVersion& aVersion) const
+#ifdef HELIX_CONFIG_SYMBIAN_PLATFORM_SECURITY 
+CSession2* 
+HXSymbianAudioServer::NewSessionL(const TVersion& aVersion, 
+                                  const RMessage2 &/*aMessage*/) const
+{
+    return HXSymbianAudioSession::NewL((HXSymbianAudioServer*)this);
+}
+#else
+CSharableSession* 
+HXSymbianAudioServer::NewSessionL(const TVersion& aVersion) const
 {
     RThread client = Message().Client();
     return HXSymbianAudioSession::NewL(client, (HXSymbianAudioServer*)this);
 }
+#endif // HELIX_CONFIG_SYMBIAN_PLATFORM_SECURITY 
 
 void HXSymbianAudioServer::AddSession()
 {
@@ -142,95 +205,98 @@
 {}
 
 TInt HXSymbianAudioClient::Init(int sampleRate, int channels)
-
 {
-    TAny* p[KMaxMessageArguments];
-    
-    p[0] = (TAny*)sampleRate;
-    p[1] = (TAny*)channels;
-
-    return (SendReceive(HXSymbianAudioServer::EAS_Init, &p[0]));
+    TInt iRetval = KErrNone;
+    SENDRECEIVE_2_ARG(HXSymbianAudioServer::EAS_Init, sampleRate, channels, iRetval);
+    return iRetval;
 }
 
 TInt HXSymbianAudioClient::Play()
 {
+    TInt iRetval = KErrNone;
     m_stopped = false;
-    return SendReceive(HXSymbianAudioServer::EAS_Play, 0);
+    SENDRECEIVE(HXSymbianAudioServer::EAS_Play, iRetval);
+    return iRetval;
 }
 
 void HXSymbianAudioClient::Pause()
 {
-    SendReceive(HXSymbianAudioServer::EAS_Pause, 0);
+    TInt iRetval = KErrNone;
+    SENDRECEIVE(HXSymbianAudioServer::EAS_Pause, iRetval);
 }
 
 void HXSymbianAudioClient::Stop()
 {
-    SendReceive(HXSymbianAudioServer::EAS_Stop, 0);
+    TInt iRetval = KErrNone;
+    SENDRECEIVE(HXSymbianAudioServer::EAS_Stop, iRetval);
     m_stopped = true;
 }
 
-bool HXSymbianAudioClient::Stopped()
+HXBOOL HXSymbianAudioClient::Stopped()
 {
     return m_stopped;
 }
 
 void HXSymbianAudioClient::SetVolume(const TInt aNewVolume)
 {
-    TAny* p[KMaxMessageArguments];
-    
-    p[0] = (TAny*)aNewVolume;
-
-    SendReceive(HXSymbianAudioServer::EAS_SetVolume, &p[0]);
+    TInt iRetval = KErrNone;
+    SENDRECEIVE_1_ARG(HXSymbianAudioServer::EAS_SetVolume, aNewVolume, iRetval);
 }
 
 TInt HXSymbianAudioClient::GetVolume() const
 {
-    return SendReceive(HXSymbianAudioServer::EAS_GetVolume, 0);
+    TInt iRetval = 0;
+    SENDRECEIVE(HXSymbianAudioServer::EAS_GetVolume, iRetval);
+    return iRetval;
 }
 
 TInt HXSymbianAudioClient::GetMaxVolume() const
 {
-    return SendReceive(HXSymbianAudioServer::EAS_GetMaxVolume, 0);
+    TInt iRetval =0;
+    SENDRECEIVE(HXSymbianAudioServer::EAS_GetMaxVolume, iRetval);
+    return iRetval;
 }
 
 TInt HXSymbianAudioClient::GetMinVolume() const
 {
-    return SendReceive(HXSymbianAudioServer::EAS_GetMinVolume, 0);
+    TInt iRetval =0;
+    SENDRECEIVE(HXSymbianAudioServer::EAS_GetMinVolume, iRetval);
+    return iRetval;
 }
 
 void HXSymbianAudioClient::Write(const IHXBuffer* pAudioBuf,
 				 TRequestStatus& aStatus)
 {
-    TAny* p[KMaxMessageArguments];
-    
-    p[0] = (TAny*)(pAudioBuf);
-
-    SendReceive(HXSymbianAudioServer::EAS_Write, &p[0], aStatus);
+    SENDRECEIVE_ARG_STATUS(HXSymbianAudioServer::EAS_Write, pAudioBuf, 
+        aStatus);
 }
 
 TInt HXSymbianAudioClient::Write(const IHXBuffer* pAudioBuf)
 {
-    TAny* p[KMaxMessageArguments];
-    
-    p[0] = (TAny*)(pAudioBuf);
-
-    return (SendReceive(HXSymbianAudioServer::EAS_Write, &p[0]));
+    TInt iRetval =0;
+    SENDRECEIVE_1_ARG(HXSymbianAudioServer::EAS_Write, pAudioBuf, iRetval);
+    return iRetval;
 }
 
 void HXSymbianAudioClient::CancelWrite()
 {
-    SendReceive(HXSymbianAudioServer::EAS_CancelWrite, 0);
+    TInt iRetval =0;
+    SENDRECEIVE(HXSymbianAudioServer::EAS_CancelWrite, iRetval);
 }
 
 
 TUint HXSymbianAudioClient::GetTime()
 {
-    return TUint(SendReceive(HXSymbianAudioServer::EAS_GetTime, 0));
+    TInt iRetval = 0;
+    SENDRECEIVE(HXSymbianAudioServer::EAS_GetTime, iRetval);
+    return ((TUint) iRetval);
 }
 
 TUint HXSymbianAudioClient::GetBlocksBuffered()
 {
-    return TUint(SendReceive(HXSymbianAudioServer::EAS_GetBlocksBuffered, 0));
+    TInt iRetval = 0;
+    SENDRECEIVE(HXSymbianAudioServer::EAS_GetBlocksBuffered, iRetval);
+    return ((TUint) iRetval);
 }
 
 TInt HXSymbianAudioClient::Connect()
@@ -249,12 +315,13 @@
     
 void HXSymbianAudioClient::RequestDeviceTakenNotification(TRequestStatus& status)
 {
-
-    SendReceive(HXSymbianAudioServer::EAS_RequestDeviceTakenNotification,
-		0, status);
+    SENDRECEIVE_STATUS(HXSymbianAudioServer::EAS_RequestDeviceTakenNotification, 
+        status);
 }
 
 void HXSymbianAudioClient::CancelDeviceTakenNotification()
 {
-    SendReceive(HXSymbianAudioServer::EAS_CancelDeviceTakenNotification, 0);
+    TInt iRetval = 0;
+    SENDRECEIVE(HXSymbianAudioServer::EAS_CancelDeviceTakenNotification, 
+        iRetval);
 }
Index: platform/symbian/audiosvr/audio_svr.h
===================================================================
RCS file: /cvsroot/audio/device/platform/symbian/audiosvr/audio_svr.h,v
retrieving revision 1.3
diff -w -u -b -r1.3 audio_svr.h
--- platform/symbian/audiosvr/audio_svr.h	9 Jul 2004 18:37:52 -0000	1.3
+++ platform/symbian/audiosvr/audio_svr.h	5 Oct 2005 22:05:47 -0000
@@ -71,7 +71,11 @@
  * This class specializes the Symbian OS CServer class in order to
  * implement a server to respond to requests from one or more clients.
  */
+#ifdef HELIX_CONFIG_SYMBIAN_PLATFORM_SECURITY
+class HXSymbianAudioServer : public CServer2 {
+#else
 class HXSymbianAudioServer : public CServer {
+#endif  // HELIX_CONFIG_SYMBIAN_PLATFORM_SECURITY
 public:
     HXSymbianAudioServer();
     virtual ~HXSymbianAudioServer();
@@ -93,7 +97,13 @@
 	EAS_CancelDeviceTakenNotification
     };
 
+#ifdef HELIX_CONFIG_SYMBIAN_PLATFORM_SECURITY
+    virtual CSession2* NewSessionL(const TVersion& aVersion,
+                                   const RMessage2& /*aMessage*/) const;
+#else
     virtual CSharableSession* NewSessionL(const TVersion& aVersion) const;
+#endif // HELIX_CONFIG_SYMBIAN_PLATFORM_SECURITY
+
     void AddSession();
     void DelSession();
     TInt RunError(TInt aError);
@@ -132,7 +142,7 @@
 				// stop playback
     void Stop();
 				// returns true if not playing
-    bool Stopped();
+    HXBOOL Stopped();
 				// get the current volume
     TInt GetVolume() const;
 				// get the max volume
@@ -150,7 +160,7 @@
     TInt Connect();
 
 private:
-    bool m_stopped;
+    HXBOOL m_stopped;
 };
 
 #endif // _AUDIO_SVR_H
