We don't need these either for now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32738 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,12 +0,0 @@
|
|||||||
/*
|
|
||||||
* Master include file for the Game Kit.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#include <WindowScreen.h>
|
|
||||||
#include <DirectWindow.h>
|
|
||||||
#include <FileGameSound.h>
|
|
||||||
#include <GameSound.h>
|
|
||||||
#include <GameSoundDefs.h>
|
|
||||||
#include <PushGameSound.h>
|
|
||||||
#include <SimpleGameSound.h>
|
|
||||||
#include <StreamingGameSound.h>
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
/*
|
|
||||||
* Master include file for the Midi Kit.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#include <Midi.h>
|
|
||||||
#include <MidiDefs.h>
|
|
||||||
#include <MidiPort.h>
|
|
||||||
#include <MidiStore.h>
|
|
||||||
#include <MidiSynth.h>
|
|
||||||
#include <MidiSynthFile.h>
|
|
||||||
#include <MidiText.h>
|
|
||||||
#include <Samples.h>
|
|
||||||
#include <Synth.h>
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
/*
|
|
||||||
* Master include file for the Net Kit.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#include <net_settings.h>
|
|
||||||
#include <netdb.h>
|
|
||||||
#include <socket.h>
|
|
||||||
#include <netinet/in.h>
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
/*
|
|
||||||
* Master include file for the Network Kit.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#include <socket.h>
|
|
||||||
#include <NetAddress.h>
|
|
||||||
#include <NetBuffer.h>
|
|
||||||
#include <NetEndpoint.h>
|
|
||||||
#include <NetDebug.h>
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
/*
|
|
||||||
* Master include file for the OpenGL Kit.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glu.h>
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include <GLView.h>
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
/*
|
|
||||||
* Master include file for the Translation Kit.
|
|
||||||
*
|
|
||||||
* <TranslatorAddOn.h> not included, as it's only required when building an add-on
|
|
||||||
*/
|
|
||||||
#include <BitmapStream.h>
|
|
||||||
#include <TranslationDefs.h>
|
|
||||||
#include <TranslationErrors.h>
|
|
||||||
#include <TranslationUtils.h>
|
|
||||||
#include <TranslatorFormats.h>
|
|
||||||
#include <TranslatorRoster.h>
|
|
||||||
#include <Translator.h>
|
|
||||||
@@ -1,168 +0,0 @@
|
|||||||
/*******************************************************************************
|
|
||||||
//
|
|
||||||
// File: DirectWindow.h
|
|
||||||
//
|
|
||||||
// Description: Client window class for direct screen access.
|
|
||||||
//
|
|
||||||
// Copyright 1998, Be Incorporated, All Rights Reserved.
|
|
||||||
//
|
|
||||||
*******************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef _DIRECT_WINDOW_H
|
|
||||||
#define _DIRECT_WINDOW_H
|
|
||||||
|
|
||||||
#include <Region.h>
|
|
||||||
#include <Window.h>
|
|
||||||
|
|
||||||
class BDirectDriver;
|
|
||||||
|
|
||||||
/* State of the direct access when called back through DirectConnected */
|
|
||||||
enum direct_buffer_state {
|
|
||||||
B_DIRECT_MODE_MASK = 15,
|
|
||||||
|
|
||||||
B_DIRECT_START = 0,
|
|
||||||
B_DIRECT_STOP = 1,
|
|
||||||
B_DIRECT_MODIFY = 2,
|
|
||||||
|
|
||||||
B_CLIPPING_MODIFIED = 16,
|
|
||||||
B_BUFFER_RESIZED = 32,
|
|
||||||
B_BUFFER_MOVED = 64,
|
|
||||||
B_BUFFER_RESET = 128
|
|
||||||
};
|
|
||||||
|
|
||||||
/* State of the direct driver and its hooks functions */
|
|
||||||
enum direct_driver_state {
|
|
||||||
B_DRIVER_CHANGED = 0x0001,
|
|
||||||
B_MODE_CHANGED = 0x0002
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Integer rect used to define a cliping rectangle. All bounds are included */
|
|
||||||
/* Moved to Region.h */
|
|
||||||
|
|
||||||
/* Frame buffer access descriptor */
|
|
||||||
typedef struct {
|
|
||||||
direct_buffer_state buffer_state;
|
|
||||||
direct_driver_state driver_state;
|
|
||||||
void *bits;
|
|
||||||
void *pci_bits;
|
|
||||||
int32 bytes_per_row;
|
|
||||||
uint32 bits_per_pixel;
|
|
||||||
color_space pixel_format;
|
|
||||||
buffer_layout layout;
|
|
||||||
buffer_orientation orientation;
|
|
||||||
uint32 _reserved[9];
|
|
||||||
uint32 _dd_type_;
|
|
||||||
uint32 _dd_token_;
|
|
||||||
uint32 clip_list_count;
|
|
||||||
clipping_rect window_bounds;
|
|
||||||
clipping_rect clip_bounds;
|
|
||||||
clipping_rect clip_list[1];
|
|
||||||
} direct_buffer_info;
|
|
||||||
|
|
||||||
/* BDirectWindow class */
|
|
||||||
class BDirectWindow : public BWindow {
|
|
||||||
public:
|
|
||||||
BDirectWindow( BRect frame,
|
|
||||||
const char *title,
|
|
||||||
window_type type,
|
|
||||||
uint32 flags,
|
|
||||||
uint32 workspace = B_CURRENT_WORKSPACE);
|
|
||||||
BDirectWindow( BRect frame,
|
|
||||||
const char *title,
|
|
||||||
window_look look,
|
|
||||||
window_feel feel,
|
|
||||||
uint32 flags,
|
|
||||||
uint32 workspace = B_CURRENT_WORKSPACE);
|
|
||||||
virtual ~BDirectWindow();
|
|
||||||
static BArchivable *Instantiate(BMessage *data);
|
|
||||||
virtual status_t Archive(BMessage *data, bool deep = true) const;
|
|
||||||
|
|
||||||
/* defined for future extension (fragile base class). Identical to BWindow */
|
|
||||||
virtual void Quit(void);
|
|
||||||
virtual void DispatchMessage(BMessage *message, BHandler *handler);
|
|
||||||
virtual void MessageReceived(BMessage *message);
|
|
||||||
virtual void FrameMoved(BPoint new_position);
|
|
||||||
virtual void WorkspacesChanged(uint32 old_ws, uint32 new_ws);
|
|
||||||
virtual void WorkspaceActivated(int32 ws, bool state);
|
|
||||||
virtual void FrameResized(float new_width, float new_height);
|
|
||||||
virtual void Minimize(bool minimize);
|
|
||||||
virtual void Zoom( BPoint rec_position,
|
|
||||||
float rec_width,
|
|
||||||
float rec_height);
|
|
||||||
virtual void ScreenChanged(BRect screen_size, color_space depth);
|
|
||||||
virtual void MenusBeginning();
|
|
||||||
virtual void MenusEnded();
|
|
||||||
virtual void WindowActivated(bool state);
|
|
||||||
virtual void Show();
|
|
||||||
virtual void Hide();
|
|
||||||
virtual BHandler *ResolveSpecifier(BMessage *msg,
|
|
||||||
int32 index,
|
|
||||||
BMessage *specifier,
|
|
||||||
int32 form,
|
|
||||||
const char *property);
|
|
||||||
virtual status_t GetSupportedSuites(BMessage *data);
|
|
||||||
virtual status_t Perform(perform_code d, void *arg);
|
|
||||||
|
|
||||||
private:
|
|
||||||
virtual void task_looper();
|
|
||||||
virtual BMessage *ConvertToMessage(void *raw, int32 code);
|
|
||||||
|
|
||||||
/* new APIs */
|
|
||||||
|
|
||||||
public:
|
|
||||||
virtual void DirectConnected(direct_buffer_info *info);
|
|
||||||
status_t GetClippingRegion(BRegion *region, BPoint *origin = NULL) const;
|
|
||||||
status_t SetFullScreen(bool enable);
|
|
||||||
bool IsFullScreen() const;
|
|
||||||
|
|
||||||
static bool SupportsWindowMode(screen_id = B_MAIN_SCREEN_ID);
|
|
||||||
|
|
||||||
/* private */
|
|
||||||
private:
|
|
||||||
|
|
||||||
typedef BWindow inherited;
|
|
||||||
|
|
||||||
virtual void _ReservedDirectWindow1();
|
|
||||||
virtual void _ReservedDirectWindow2();
|
|
||||||
virtual void _ReservedDirectWindow3();
|
|
||||||
virtual void _ReservedDirectWindow4();
|
|
||||||
|
|
||||||
|
|
||||||
BDirectWindow();
|
|
||||||
BDirectWindow(BDirectWindow &);
|
|
||||||
BDirectWindow &operator=(BDirectWindow &);
|
|
||||||
|
|
||||||
bool daemon_killer;
|
|
||||||
bool connection_enable;
|
|
||||||
bool full_screen_enable;
|
|
||||||
bool direct_driver_ready;
|
|
||||||
bool in_direct_connect;
|
|
||||||
int32 direct_lock;
|
|
||||||
sem_id direct_sem;
|
|
||||||
uint32 direct_lock_count;
|
|
||||||
thread_id direct_lock_owner;
|
|
||||||
char *direct_lock_stack;
|
|
||||||
sem_id disable_sem;
|
|
||||||
sem_id disable_sem_ack;
|
|
||||||
uint32 dw_init_status;
|
|
||||||
uint32 info_area_size;
|
|
||||||
uint32 direct_driver_type;
|
|
||||||
uint32 direct_driver_token;
|
|
||||||
area_id cloned_clipping_area;
|
|
||||||
area_id source_clipping_area;
|
|
||||||
thread_id direct_daemon_id;
|
|
||||||
direct_buffer_info *buffer_desc;
|
|
||||||
BDirectDriver *direct_driver;
|
|
||||||
struct priv_ext *extension;
|
|
||||||
uint32 _reserved_[15];
|
|
||||||
|
|
||||||
static int32 DirectDaemonFunc(void *arg);
|
|
||||||
bool LockDirect() const;
|
|
||||||
void UnlockDirect() const;
|
|
||||||
void InitData();
|
|
||||||
void DisposeData();
|
|
||||||
status_t DriverSetup() const;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,138 +0,0 @@
|
|||||||
//------------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2001-2002, OpenBeOS
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
|
||||||
// to deal in the Software without restriction, including without limitation
|
|
||||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
// and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
// DEALINGS IN THE SOFTWARE.
|
|
||||||
//
|
|
||||||
// File Name: FileGameSound.h
|
|
||||||
// Author: Christopher ML Zumwalt May ([email protected])
|
|
||||||
// Description: BFileGameSound is a class that streams data out of a file.
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#ifndef _FILEGAMESOUND_H
|
|
||||||
#define _FILEGAMESOUND_H
|
|
||||||
|
|
||||||
// Standard Includes -----------------------------------------------------------
|
|
||||||
|
|
||||||
// System Includes -------------------------------------------------------------
|
|
||||||
#include <StreamingGameSound.h>
|
|
||||||
|
|
||||||
// Project Includes ------------------------------------------------------------
|
|
||||||
|
|
||||||
// Local Includes --------------------------------------------------------------
|
|
||||||
|
|
||||||
// Local Defines ---------------------------------------------------------------
|
|
||||||
|
|
||||||
// Globals ---------------------------------------------------------------------
|
|
||||||
struct _gs_media_tracker;
|
|
||||||
struct _gs_ramp;
|
|
||||||
|
|
||||||
// FileGameSound -------------------------------------------------------------
|
|
||||||
class BFileGameSound : public BStreamingGameSound
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BFileGameSound(const entry_ref * file,
|
|
||||||
bool looping = true,
|
|
||||||
BGameSoundDevice * device = NULL);
|
|
||||||
BFileGameSound(const char * file,
|
|
||||||
bool looping = true,
|
|
||||||
BGameSoundDevice * device = NULL);
|
|
||||||
|
|
||||||
virtual ~BFileGameSound();
|
|
||||||
|
|
||||||
virtual BGameSound * Clone() const;
|
|
||||||
|
|
||||||
virtual status_t StartPlaying();
|
|
||||||
virtual status_t StopPlaying();
|
|
||||||
status_t Preload(); // if you have stopped and want to start quickly again
|
|
||||||
|
|
||||||
virtual void FillBuffer(void * inBuffer,
|
|
||||||
size_t inByteCount);
|
|
||||||
virtual status_t Perform(int32 selector, void * data);
|
|
||||||
virtual status_t SetPaused(bool isPaused,
|
|
||||||
bigtime_t rampTime);
|
|
||||||
enum {
|
|
||||||
B_NOT_PAUSED,
|
|
||||||
B_PAUSE_IN_PROGRESS,
|
|
||||||
B_PAUSED
|
|
||||||
};
|
|
||||||
int32 IsPaused();
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
_gs_media_tracker * fAudioStream;
|
|
||||||
|
|
||||||
bool fStopping;
|
|
||||||
bool fLooping;
|
|
||||||
char fReserved;
|
|
||||||
char * fBuffer;
|
|
||||||
|
|
||||||
size_t fFrameSize;
|
|
||||||
size_t fBufferSize;
|
|
||||||
size_t fPlayPosition;
|
|
||||||
|
|
||||||
thread_id fReadThread;
|
|
||||||
port_id fPort;
|
|
||||||
|
|
||||||
_gs_ramp * fPausing;
|
|
||||||
bool fPaused;
|
|
||||||
float fPauseGain;
|
|
||||||
|
|
||||||
status_t Init(const entry_ref* file);
|
|
||||||
|
|
||||||
static int32 ReadThread(void* arg);
|
|
||||||
|
|
||||||
bool Load();
|
|
||||||
bool Read(void * buffer, size_t bytes);
|
|
||||||
|
|
||||||
/* leave these declarations private unless you plan on actually implementing and using them. */
|
|
||||||
BFileGameSound();
|
|
||||||
BFileGameSound(const BFileGameSound&);
|
|
||||||
BFileGameSound& operator=(const BFileGameSound&);
|
|
||||||
|
|
||||||
/* fbc data and virtuals */
|
|
||||||
|
|
||||||
uint32 _reserved_BFileGameSound_[9];
|
|
||||||
|
|
||||||
status_t _Reserved_BFileGameSound_0(int32 arg, ...); /* SetPaused(bool paused, bigtime_t ramp); */
|
|
||||||
virtual status_t _Reserved_BFileGameSound_1(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_2(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_3(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_4(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_5(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_6(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_7(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_8(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_9(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_10(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_11(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_12(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_13(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_14(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_15(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_16(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_17(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_18(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_19(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_20(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_21(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_22(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BFileGameSound_23(int32 arg, ...);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,167 +0,0 @@
|
|||||||
//------------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2001-2002, OpenBeOS
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
|
||||||
// to deal in the Software without restriction, including without limitation
|
|
||||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
// and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
// DEALINGS IN THE SOFTWARE.
|
|
||||||
//
|
|
||||||
// File Name: GameSound.h
|
|
||||||
// Author: Christopher ML Zumwalt May ([email protected])
|
|
||||||
// Description: Base class for play sounds using the game kit
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#ifndef _GAMESOUND_H
|
|
||||||
#define _GAMESOUND_H
|
|
||||||
|
|
||||||
// Standard Includes -----------------------------------------------------------
|
|
||||||
|
|
||||||
// System Includes -------------------------------------------------------------
|
|
||||||
#include <GameSoundDefs.h>
|
|
||||||
#include <new>
|
|
||||||
|
|
||||||
// Project Includes ------------------------------------------------------------
|
|
||||||
|
|
||||||
// Local Includes --------------------------------------------------------------
|
|
||||||
|
|
||||||
// Local Defines ---------------------------------------------------------------
|
|
||||||
|
|
||||||
// Globals ---------------------------------------------------------------------
|
|
||||||
class BGameSoundDevice;
|
|
||||||
|
|
||||||
// BGameSound class -------------------------------------------------------------
|
|
||||||
class BGameSound
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BGameSound(BGameSoundDevice * device = NULL);
|
|
||||||
virtual ~BGameSound();
|
|
||||||
|
|
||||||
virtual BGameSound * Clone() const = 0;
|
|
||||||
status_t InitCheck() const;
|
|
||||||
|
|
||||||
// BGameSound attributes
|
|
||||||
BGameSoundDevice * Device() const;
|
|
||||||
gs_id ID() const;
|
|
||||||
const gs_audio_format & Format() const; // only valid after Init()
|
|
||||||
|
|
||||||
// Playing sounds
|
|
||||||
virtual status_t StartPlaying();
|
|
||||||
virtual bool IsPlaying();
|
|
||||||
virtual status_t StopPlaying();
|
|
||||||
|
|
||||||
|
|
||||||
// Modifing the playback
|
|
||||||
status_t SetGain(float gain,
|
|
||||||
bigtime_t duration = 0); // ramp duration in seconds
|
|
||||||
status_t SetPan(float pan,
|
|
||||||
bigtime_t duration = 0); // ramp duration in seconds
|
|
||||||
float Gain();
|
|
||||||
float Pan();
|
|
||||||
|
|
||||||
virtual status_t SetAttributes(gs_attribute * inAttributes,
|
|
||||||
size_t inAttributeCount);
|
|
||||||
virtual status_t GetAttributes(gs_attribute * outAttributes,
|
|
||||||
size_t inAttributeCount);
|
|
||||||
|
|
||||||
void * operator new(size_t size);
|
|
||||||
void * operator new(size_t size, const nothrow_t &) throw();
|
|
||||||
void operator delete(void * ptr);
|
|
||||||
#if !__MWERKS__
|
|
||||||
// there's a bug in MWCC under R4.1 and earlier
|
|
||||||
void operator delete(void * ptr,
|
|
||||||
const nothrow_t &) throw();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static status_t SetMemoryPoolSize(size_t in_poolSize);
|
|
||||||
static status_t LockMemoryPool(bool in_lockInCore);
|
|
||||||
static int32 SetMaxSoundCount(int32 in_maxCount);
|
|
||||||
|
|
||||||
virtual status_t Perform(int32 selector, void * data);
|
|
||||||
protected:
|
|
||||||
|
|
||||||
status_t SetInitError(status_t in_initError);
|
|
||||||
status_t Init(gs_id handle);
|
|
||||||
|
|
||||||
BGameSound(const BGameSound & other);
|
|
||||||
BGameSound & operator=(const BGameSound & other);
|
|
||||||
|
|
||||||
private:
|
|
||||||
BGameSoundDevice* fDevice;
|
|
||||||
status_t fInitError;
|
|
||||||
|
|
||||||
gs_audio_format fFormat;
|
|
||||||
gs_id fSound;
|
|
||||||
|
|
||||||
/* leave these declarations private unless you plan on actually implementing and using them. */
|
|
||||||
BGameSound();
|
|
||||||
|
|
||||||
/* fbc data and virtuals */
|
|
||||||
|
|
||||||
uint32 _reserved_BGameSound_[16];
|
|
||||||
|
|
||||||
virtual status_t _Reserved_BGameSound_0(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_1(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_2(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_3(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_4(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_5(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_6(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_7(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_8(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_9(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_10(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_11(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_12(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_13(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_14(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_15(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_16(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_17(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_18(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_19(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_20(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_21(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_22(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_23(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_24(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_25(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_26(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_27(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_28(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_29(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_30(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_31(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_32(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_33(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_34(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_35(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_36(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_37(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_38(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_39(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_40(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_41(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_42(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_43(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_44(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_45(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_46(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BGameSound_47(int32 arg, ...);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif // _GAME_SOUND_H
|
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
//------------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2001-2002, OpenBeOS
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
|
||||||
// to deal in the Software without restriction, including without limitation
|
|
||||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
// and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
// DEALINGS IN THE SOFTWARE.
|
|
||||||
//
|
|
||||||
// File Name: GameSound.cpp
|
|
||||||
// Author: Christopher ML Zumwalt May ([email protected])
|
|
||||||
// Description: Declerations for game sounds
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if !defined(_GAME_SOUND_DEFS_H)
|
|
||||||
#define _GAME_SOUND_DEFS_H
|
|
||||||
|
|
||||||
#include <SupportDefs.h>
|
|
||||||
|
|
||||||
typedef int32 gs_id;
|
|
||||||
|
|
||||||
#define B_GS_CUR_API_VERSION B_BEOS_VERSION
|
|
||||||
#define B_GS_MIN_API_VERSION 0x100
|
|
||||||
|
|
||||||
// invalid sound handle
|
|
||||||
#define B_GS_INVALID_SOUND ((gs_id)-1)
|
|
||||||
|
|
||||||
// gs_id for the main mix buffer
|
|
||||||
#define B_GS_MAIN_SOUND ((gs_id)-2)
|
|
||||||
|
|
||||||
|
|
||||||
enum //fixme renumber to real error messages
|
|
||||||
{
|
|
||||||
B_GS_BAD_HANDLE = -99999,
|
|
||||||
B_GS_NO_SOUNDS,
|
|
||||||
B_GS_NO_HARDWARE,
|
|
||||||
B_GS_ALREADY_COMMITTED,
|
|
||||||
B_GS_READ_ONLY_VALUE
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
struct gs_audio_format
|
|
||||||
{ /* same as media_raw_audio_format */
|
|
||||||
enum format { /* for "format" */
|
|
||||||
B_GS_U8 = 0x11, /* 128 == mid, 1 == bottom, 255 == top */
|
|
||||||
B_GS_S16 = 0x2, /* 0 == mid, -32767 == bottom, +32767 == top */
|
|
||||||
B_GS_F = 0x24, /* 0 == mid, -1.0 == bottom, 1.0 == top */
|
|
||||||
B_GS_S32 = 0x4 /* 0 == mid, 0x80000001 == bottom, 0x7fffffff == top */
|
|
||||||
};
|
|
||||||
float frame_rate;
|
|
||||||
uint32 channel_count; /* 1 or 2, mostly */
|
|
||||||
uint32 format; /* for compressed formats, go to media_encoded_audio_format */
|
|
||||||
uint32 byte_order; /* 2 for little endian, 1 for big endian */
|
|
||||||
size_t buffer_size; /* size of each buffer -- NOT GUARANTEED */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
enum gs_attributes
|
|
||||||
{
|
|
||||||
B_GS_NO_ATTRIBUTE = 0, // when there is no attribute
|
|
||||||
B_GS_MAIN_GAIN = 1, // 0 == 0 dB, -6.0 == -6 dB (gs_id ignored)
|
|
||||||
B_GS_CD_THROUGH_GAIN, // 0 == 0 dB, -12.0 == -12 dB (gs_id ignored)
|
|
||||||
// but which CD?
|
|
||||||
B_GS_GAIN = 128, // 0 == 0 dB, -1.0 == -1 dB, +10.0 == +10 dB
|
|
||||||
B_GS_PAN, // 0 == middle, -1.0 == left, +1.0 == right
|
|
||||||
B_GS_SAMPLING_RATE, // 44100.0 == 44.1 kHz
|
|
||||||
B_GS_LOOPING, // 0 == no
|
|
||||||
B_GS_FIRST_PRIVATE_ATTRIBUTE = 90000,
|
|
||||||
B_GS_FIRST_USER_ATTRIBUTE = 100000
|
|
||||||
};
|
|
||||||
struct gs_attribute
|
|
||||||
{
|
|
||||||
int32 attribute; // which attribute
|
|
||||||
bigtime_t duration; // how long of time to ramp over for the change
|
|
||||||
float value; // where the value stops changing
|
|
||||||
uint32 flags; // whatever flags are for the attribute
|
|
||||||
};
|
|
||||||
struct gs_attribute_info
|
|
||||||
{
|
|
||||||
int32 attribute;
|
|
||||||
float granularity;
|
|
||||||
float minimum;
|
|
||||||
float maximum;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif // _GAME_SOUND_DEFS_H
|
|
||||||
@@ -1,138 +0,0 @@
|
|||||||
//------------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2001-2002, OpenBeOS
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
|
||||||
// to deal in the Software without restriction, including without limitation
|
|
||||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
// and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
// DEALINGS IN THE SOFTWARE.
|
|
||||||
//
|
|
||||||
// File Name: FileGameSound.h
|
|
||||||
// Author: Christopher ML Zumwalt May ([email protected])
|
|
||||||
// Description: BFileGameSound is a class that streams data out of a file.
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#ifndef _PUSHGAMESOUND_H
|
|
||||||
#define _PUSHGAMESOUND_H
|
|
||||||
// Standard Includes -----------------------------------------------------------
|
|
||||||
|
|
||||||
// System Includes -------------------------------------------------------------
|
|
||||||
#include <StreamingGameSound.h>
|
|
||||||
|
|
||||||
// Project Includes ------------------------------------------------------------
|
|
||||||
|
|
||||||
// Local Includes --------------------------------------------------------------
|
|
||||||
|
|
||||||
// Local Defines ---------------------------------------------------------------
|
|
||||||
|
|
||||||
// Globals ---------------------------------------------------------------------
|
|
||||||
|
|
||||||
// FileGameSound -------------------------------------------------------------
|
|
||||||
class BPushGameSound : public BStreamingGameSound
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BPushGameSound(size_t inBufferFrameCount,
|
|
||||||
const gs_audio_format * format,
|
|
||||||
size_t inBufferCount = 2,
|
|
||||||
BGameSoundDevice * device = NULL);
|
|
||||||
|
|
||||||
virtual ~BPushGameSound();
|
|
||||||
|
|
||||||
enum lock_status {
|
|
||||||
lock_failed = -1, // not yet time to do more
|
|
||||||
lock_ok = 0, // do more
|
|
||||||
lock_ok_frames_dropped // you may have missed some buffers
|
|
||||||
};
|
|
||||||
|
|
||||||
virtual lock_status LockNextPage(void ** out_pagePtr,
|
|
||||||
size_t * out_pageSize);
|
|
||||||
virtual status_t UnlockPage(void * in_pagePtr);
|
|
||||||
|
|
||||||
virtual lock_status LockForCyclic(void ** out_basePtr,
|
|
||||||
size_t * out_size);
|
|
||||||
virtual status_t UnlockCyclic();
|
|
||||||
virtual size_t CurrentPosition();
|
|
||||||
|
|
||||||
virtual BGameSound * Clone() const;
|
|
||||||
|
|
||||||
virtual status_t Perform(int32 selector, void * data);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
BPushGameSound(BGameSoundDevice * device);
|
|
||||||
|
|
||||||
virtual status_t SetParameters(size_t inBufferFrameCount,
|
|
||||||
const gs_audio_format * format,
|
|
||||||
size_t inBufferCount);
|
|
||||||
|
|
||||||
virtual status_t SetStreamHook(void (*hook)(void * inCookie, void * inBuffer, size_t inByteCount, BStreamingGameSound * me),
|
|
||||||
void * cookie);
|
|
||||||
|
|
||||||
virtual void FillBuffer(void * inBuffer,
|
|
||||||
size_t inByteCount);
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
/* leave these declarations private unless you plan on actually implementing and using them. */
|
|
||||||
BPushGameSound();
|
|
||||||
BPushGameSound(const BPushGameSound&);
|
|
||||||
BPushGameSound& operator=(const BPushGameSound&);
|
|
||||||
|
|
||||||
bool BytesReady(size_t * bytes);
|
|
||||||
|
|
||||||
sem_id fLock;
|
|
||||||
BList * fPageLocked;
|
|
||||||
|
|
||||||
size_t fLockPos;
|
|
||||||
size_t fPlayPos;
|
|
||||||
|
|
||||||
char * fBuffer;
|
|
||||||
size_t fPageSize;
|
|
||||||
int32 fPageCount;
|
|
||||||
size_t fBufferSize;
|
|
||||||
|
|
||||||
/* fbc data and virtuals */
|
|
||||||
|
|
||||||
uint32 _reserved_BPushGameSound_[12];
|
|
||||||
|
|
||||||
virtual status_t _Reserved_BPushGameSound_0(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_1(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_2(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_3(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_4(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_5(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_6(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_7(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_8(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_9(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_10(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_11(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_12(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_13(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_14(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_15(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_16(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_17(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_18(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_19(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_20(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_21(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_22(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BPushGameSound_23(int32 arg, ...);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _PUSH_GAME_SOUND_H
|
|
||||||
@@ -1,111 +0,0 @@
|
|||||||
//------------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2001-2002, OpenBeOS
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
|
||||||
// to deal in the Software without restriction, including without limitation
|
|
||||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
// and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
// DEALINGS IN THE SOFTWARE.
|
|
||||||
//
|
|
||||||
// File Name: SimpleGameSound.h
|
|
||||||
// Author: Christopher ML Zumwalt May ([email protected])
|
|
||||||
// Description: BSimpleGameSound is a class for sound effects that are
|
|
||||||
// short, and consists of non-changing samples in memory.
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef _SIMPLEGAMESOUND_H
|
|
||||||
#define _SIMPLEGAMESOUND_H
|
|
||||||
|
|
||||||
// Standard Includes -----------------------------------------------------------
|
|
||||||
|
|
||||||
// System Includes -------------------------------------------------------------
|
|
||||||
#include <GameSoundDefs.h>
|
|
||||||
#include <GameSound.h>
|
|
||||||
|
|
||||||
// Project Includes ------------------------------------------------------------
|
|
||||||
|
|
||||||
// Local Includes --------------------------------------------------------------
|
|
||||||
|
|
||||||
// Local Defines ---------------------------------------------------------------
|
|
||||||
|
|
||||||
// Globals ---------------------------------------------------------------------
|
|
||||||
|
|
||||||
// BGameSound class -------------------------------------------------------------
|
|
||||||
class BSimpleGameSound : public BGameSound
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BSimpleGameSound(const entry_ref * inFile,
|
|
||||||
BGameSoundDevice * device = NULL);
|
|
||||||
BSimpleGameSound(const char * inFile,
|
|
||||||
BGameSoundDevice * device = NULL);
|
|
||||||
BSimpleGameSound(const void * inData,
|
|
||||||
size_t inFrameCount,
|
|
||||||
const gs_audio_format * format,
|
|
||||||
BGameSoundDevice * device = NULL);
|
|
||||||
|
|
||||||
BSimpleGameSound(const BSimpleGameSound & other);
|
|
||||||
|
|
||||||
virtual ~BSimpleGameSound();
|
|
||||||
|
|
||||||
virtual BGameSound * Clone() const;
|
|
||||||
|
|
||||||
virtual status_t Perform(int32 selector, void * data);
|
|
||||||
|
|
||||||
status_t SetIsLooping(bool looping);
|
|
||||||
bool IsLooping() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
status_t Init(const entry_ref * inFile);
|
|
||||||
status_t Init(const void* inData,
|
|
||||||
int64 inFrameCount,
|
|
||||||
const gs_audio_format* format);
|
|
||||||
|
|
||||||
/* leave these declarations private unless you plan on actually implementing and using them. */
|
|
||||||
BSimpleGameSound();
|
|
||||||
BSimpleGameSound& operator=(const BSimpleGameSound&);
|
|
||||||
|
|
||||||
/* fbc data and virtuals */
|
|
||||||
|
|
||||||
uint32 _reserved_BSimpleGameSound_[12];
|
|
||||||
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_0(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_1(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_2(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_3(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_4(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_5(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_6(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_7(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_8(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_9(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_10(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_11(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_12(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_13(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_14(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_15(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_16(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_17(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_18(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_19(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_20(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_21(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_22(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BSimpleGameSound_23(int32 arg, ...);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _SIMPLE_GAME_SOUND_H
|
|
||||||
@@ -1,122 +0,0 @@
|
|||||||
//------------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2001-2002, OpenBeOS
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
|
||||||
// to deal in the Software without restriction, including without limitation
|
|
||||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
// and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
// DEALINGS IN THE SOFTWARE.
|
|
||||||
//
|
|
||||||
// File Name: StreamingGameSound.h
|
|
||||||
// Author: Christopher ML Zumwalt May ([email protected])
|
|
||||||
// Description: BStreamingGameSound is a class for all kinds of streaming
|
|
||||||
// (data not known beforehand) game sounds.
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef _STREAMINGGAMESOUND_H
|
|
||||||
#define _STREAMINGGAMESOUND_H
|
|
||||||
|
|
||||||
// Standard Includes -----------------------------------------------------------
|
|
||||||
|
|
||||||
// System Includes -------------------------------------------------------------
|
|
||||||
#include <SupportDefs.h>
|
|
||||||
#include <GameSound.h>
|
|
||||||
#include <Locker.h>
|
|
||||||
|
|
||||||
// Project Includes ------------------------------------------------------------
|
|
||||||
|
|
||||||
// Local Includes --------------------------------------------------------------
|
|
||||||
|
|
||||||
// Local Defines ---------------------------------------------------------------
|
|
||||||
|
|
||||||
// Globals ---------------------------------------------------------------------
|
|
||||||
|
|
||||||
class BStreamingGameSound : public BGameSound
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BStreamingGameSound(size_t inBufferFrameCount,
|
|
||||||
const gs_audio_format * format,
|
|
||||||
size_t inBufferCount = 2,
|
|
||||||
BGameSoundDevice * device = NULL);
|
|
||||||
|
|
||||||
virtual ~BStreamingGameSound();
|
|
||||||
|
|
||||||
virtual BGameSound * Clone() const;
|
|
||||||
|
|
||||||
virtual status_t SetStreamHook(void (*hook)(void * inCookie, void * inBuffer, size_t inByteCount, BStreamingGameSound * me),
|
|
||||||
void * cookie);
|
|
||||||
virtual void FillBuffer(void * inBuffer,
|
|
||||||
size_t inByteCount);
|
|
||||||
|
|
||||||
virtual status_t SetAttributes(gs_attribute * inAttributes,
|
|
||||||
size_t inAttributeCount);
|
|
||||||
|
|
||||||
virtual status_t Perform(int32 selector, void * data);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
BStreamingGameSound(BGameSoundDevice * device);
|
|
||||||
|
|
||||||
virtual status_t SetParameters(size_t inBufferFrameCount,
|
|
||||||
const gs_audio_format * format,
|
|
||||||
size_t inBufferCount);
|
|
||||||
|
|
||||||
bool Lock();
|
|
||||||
void Unlock();
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
void (*fStreamHook)(void * cookie, void * buffer, size_t bytes, BStreamingGameSound * sound);
|
|
||||||
void * fStreamCookie;
|
|
||||||
BLocker fLock;
|
|
||||||
|
|
||||||
/* leave these declarations private unless you plan on actually implementing and using them. */
|
|
||||||
BStreamingGameSound();
|
|
||||||
BStreamingGameSound(const BStreamingGameSound&);
|
|
||||||
BStreamingGameSound& operator=(const BStreamingGameSound&);
|
|
||||||
|
|
||||||
/* fbc data and virtuals */
|
|
||||||
|
|
||||||
uint32 _reserved_BStreamingGameSound_[12];
|
|
||||||
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_0(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_1(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_2(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_3(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_4(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_5(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_6(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_7(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_8(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_9(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_10(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_11(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_12(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_13(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_14(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_15(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_16(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_17(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_18(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_19(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_20(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_21(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_22(int32 arg, ...);
|
|
||||||
virtual status_t _Reserved_BStreamingGameSound_23(int32 arg, ...);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _STREAMING_GAME_SOUND_H
|
|
||||||
@@ -1,225 +0,0 @@
|
|||||||
/*******************************************************************************
|
|
||||||
/
|
|
||||||
/ File: WindowScreen.h
|
|
||||||
/
|
|
||||||
/ Description: Client window class for direct screen access.
|
|
||||||
/
|
|
||||||
/ Copyright 1993-98, Be Incorporated, All Rights Reserved.
|
|
||||||
/
|
|
||||||
*******************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef _WINDOW_SCREEN_H
|
|
||||||
#define _WINDOW_SCREEN_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
#include <Window.h>
|
|
||||||
#include <SupportDefs.h>
|
|
||||||
#include <OS.h>
|
|
||||||
#include <kernel/image.h>
|
|
||||||
#include <GraphicsCard.h>
|
|
||||||
#include <Accelerant.h>
|
|
||||||
|
|
||||||
/* private struct */
|
|
||||||
typedef struct {
|
|
||||||
area_id memory_area;
|
|
||||||
area_id io_area;
|
|
||||||
char addon_path[64+B_FILE_NAME_LENGTH];
|
|
||||||
} _direct_screen_info_;
|
|
||||||
|
|
||||||
/* private typedef */
|
|
||||||
typedef int32 (*_add_on_control_)(uint32,void *);
|
|
||||||
|
|
||||||
/* Global function, allowing to move the position of the mouse when the GameKit is in
|
|
||||||
control of the screen. */
|
|
||||||
_IMPEXP_GAME
|
|
||||||
void set_mouse_position(int32 x, int32 y);
|
|
||||||
|
|
||||||
/********************** WARNING - WARNING - WARNING ***********************************
|
|
||||||
This is the current version of WindowScreen. The main purpose of this object is to
|
|
||||||
establish a direct connexion between application and graphic driver, to increase
|
|
||||||
efficiency and abilities. The graphic driver architecture will overcome serious
|
|
||||||
changes in the next release, consequently this could only be a preview version of
|
|
||||||
the real WindowScreen API.
|
|
||||||
|
|
||||||
Nevertheless, compatibility will be insure in future releases FOR MOST OF THE API,
|
|
||||||
through the use of a compatibility library (the new game library having a name
|
|
||||||
different from "libgame.so"), or a compatibility class (the new WindowScreen class
|
|
||||||
using a different name). Part of the API for which compatibility will not be insure
|
|
||||||
after the Preview Release are specifically pointed out in the following declarations.
|
|
||||||
****************************************************************************************/
|
|
||||||
|
|
||||||
enum {
|
|
||||||
B_ENABLE_VIEW_DRAWING = 0x0001,
|
|
||||||
B_ENABLE_DEBUGGER = 0x0002
|
|
||||||
};
|
|
||||||
|
|
||||||
class BWindowScreen : public BWindow {
|
|
||||||
public:
|
|
||||||
BWindowScreen(const char *title,
|
|
||||||
uint32 space,
|
|
||||||
status_t *error,
|
|
||||||
bool debug_enable = false);
|
|
||||||
BWindowScreen(const char *title,
|
|
||||||
uint32 space,
|
|
||||||
uint32 attributes,
|
|
||||||
status_t *error);
|
|
||||||
virtual ~BWindowScreen();
|
|
||||||
virtual void Quit(void);
|
|
||||||
virtual void ScreenConnected(bool active);
|
|
||||||
void Disconnect();
|
|
||||||
virtual void WindowActivated(bool active);
|
|
||||||
virtual void WorkspaceActivated(int32 ws, bool state);
|
|
||||||
virtual void ScreenChanged(BRect screen_size, color_space depth);
|
|
||||||
virtual void Hide();
|
|
||||||
virtual void Show();
|
|
||||||
void SetColorList(rgb_color *list,int32 first_index = 0,int32 last_index = 255);
|
|
||||||
status_t SetSpace(uint32 space);
|
|
||||||
bool CanControlFrameBuffer();
|
|
||||||
status_t SetFrameBuffer(int32 width, int32 height);
|
|
||||||
status_t MoveDisplayArea(int32 x, int32 y);
|
|
||||||
|
|
||||||
void *IOBase(); // Not supported anymore. It always returns NULL
|
|
||||||
|
|
||||||
rgb_color *ColorList();
|
|
||||||
frame_buffer_info *FrameBufferInfo();
|
|
||||||
graphics_card_hook CardHookAt(int32 index);
|
|
||||||
graphics_card_info *CardInfo();
|
|
||||||
|
|
||||||
/******************************* Debugger API Notice ********************************
|
|
||||||
Those three calls, and the debug_enable flag in the constructor, have been added to
|
|
||||||
help debugging a WindowScreen application without a cross-developement platform or
|
|
||||||
the use of serial debug output.
|
|
||||||
|
|
||||||
To use them, you need to :
|
|
||||||
- enable the debug mode by setting the debug_enable flag of the constructor to "true".
|
|
||||||
- register all threads that could be accessing the screen directly at any time. To do
|
|
||||||
that, call RegisterThread after spawning the new thread and before resuming
|
|
||||||
it (you should never draw from the Window thread itself, neither register it).
|
|
||||||
- launch your application from Terminal. The GameKit will first swicth to another
|
|
||||||
workspace before opening the WindowScreen. If you launch from workspace 0 [Alt-F1],
|
|
||||||
it will choose the workspace 1 [Alt-F2]. For any other workspace, it will choose
|
|
||||||
the previous one (for example, for workspace 3 (Alt-F4), it will choose workspace 2
|
|
||||||
[Alt-F3]).
|
|
||||||
|
|
||||||
Then :
|
|
||||||
- You can use printf(...) anywhere to display informations that will be logged in the
|
|
||||||
Terminal window. You can go back to the Terminal Window at any time (using the
|
|
||||||
correct Alt-F?? key). Switching workspace will automatically suspend all the thread
|
|
||||||
you registered and save the graphic context. Switching back to the WindowScreen
|
|
||||||
workspace will restore everything and resume your application.
|
|
||||||
- If you need to save and restore more states when your application is suspended and
|
|
||||||
resumed, you can overwrite the ForceSwitchForDebug() method. This function is called
|
|
||||||
with active == true just after suspending your app, and active == false just before
|
|
||||||
resuming it.
|
|
||||||
- You can suspend your application by calling the Debugger() method. This will also
|
|
||||||
switch to the Terminal workspace. Then you can resume by just switchng back to the
|
|
||||||
WindowScreen workspace (using the good Alt-F?? key). It's better not to call Debugger()
|
|
||||||
with the WindowScreen locked.
|
|
||||||
|
|
||||||
In case of crash :
|
|
||||||
- Use the safety short-cut : All the left modifiers (Ctrl, Shift, Option, Command, Alt
|
|
||||||
or equivalents) of your keyboard and F12. That should send you back to 640x480, and
|
|
||||||
the debugger terminal should be visible (and usable) if any.
|
|
||||||
- Then, you can also switch to your Terminal workspace to check the last printf infos.
|
|
||||||
- After you got (we hope) more information about your (or our :-) bug, quit the debugger
|
|
||||||
window. Then you should be able to change your code and run your application again.
|
|
||||||
In any case, check the Error() function immediately after the WindowScreen constructor.
|
|
||||||
A bad error code will mean that the GameKit is in a inconsistent state, and then you
|
|
||||||
have better to reboot your machine. If you don't wnat to reboot, you can also try to
|
|
||||||
run your application in a different workspace.
|
|
||||||
|
|
||||||
It's far to be perfect, but we hope it will still help.
|
|
||||||
|
|
||||||
The Debug API will not be support after the Preview Release (replaced by the debug
|
|
||||||
API in the new WindowScreen class).
|
|
||||||
***************************************************************************************/
|
|
||||||
void RegisterThread(thread_id id);
|
|
||||||
virtual void SuspensionHook(bool active);
|
|
||||||
void Suspend(char *label);
|
|
||||||
|
|
||||||
|
|
||||||
virtual status_t Perform(perform_code d, void *arg);
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
typedef BWindow inherited;
|
|
||||||
|
|
||||||
virtual void _ReservedWindowScreen1();
|
|
||||||
virtual void _ReservedWindowScreen2();
|
|
||||||
virtual void _ReservedWindowScreen3();
|
|
||||||
virtual void _ReservedWindowScreen4();
|
|
||||||
|
|
||||||
BWindowScreen();
|
|
||||||
BWindowScreen(BWindowScreen &);
|
|
||||||
BWindowScreen &operator=(BWindowScreen &);
|
|
||||||
|
|
||||||
char addon_state;
|
|
||||||
char space_mode;
|
|
||||||
void *io_buffer;
|
|
||||||
bool direct_enable;
|
|
||||||
bool work_state;
|
|
||||||
bool window_state;
|
|
||||||
bool activate_state;
|
|
||||||
int32 lock_state;
|
|
||||||
int32 screen_index;
|
|
||||||
int32 memory_area, io_area;
|
|
||||||
display_mode *old_space;
|
|
||||||
display_mode *new_space;
|
|
||||||
uint32 space0;
|
|
||||||
sem_id activate_sem;
|
|
||||||
sem_id debug_sem;
|
|
||||||
image_id addon_image;
|
|
||||||
rgb_color colorList[256];
|
|
||||||
GetAccelerantHook m_gah;
|
|
||||||
graphics_card_info card_info;
|
|
||||||
graphics_card_hook hooks[B_HOOK_COUNT];
|
|
||||||
_direct_screen_info_ info;
|
|
||||||
frame_buffer_info format_info;
|
|
||||||
|
|
||||||
char *debug_buffer;
|
|
||||||
bool debug_state;
|
|
||||||
bool debug_first;
|
|
||||||
int32 debug_list_count;
|
|
||||||
int32 debug_workspace;
|
|
||||||
thread_id *debug_list;
|
|
||||||
|
|
||||||
uint32 _attributes;
|
|
||||||
uint32 mode_count;
|
|
||||||
display_mode *mode_list;
|
|
||||||
engine_token *et;
|
|
||||||
wait_engine_idle m_wei;
|
|
||||||
acquire_engine m_ae;
|
|
||||||
release_engine m_re;
|
|
||||||
fill_rectangle fill_rect;
|
|
||||||
screen_to_screen_blit blit_rect;
|
|
||||||
screen_to_screen_transparent_blit trans_blit_rect;
|
|
||||||
screen_to_screen_scaled_filtered_blit scaled_filtered_blit_rect;
|
|
||||||
|
|
||||||
uint32 _reserved_[21];
|
|
||||||
|
|
||||||
static BRect CalcFrame(int32 index, int32 space, display_mode *dmode);
|
|
||||||
int32 SetFullscreen(int32 enable);
|
|
||||||
status_t InitData(uint32 space, uint32 attributes);
|
|
||||||
status_t SetActiveState(int32 state);
|
|
||||||
status_t SetLockState(int32 state);
|
|
||||||
void GetCardInfo();
|
|
||||||
void Suspend();
|
|
||||||
void Resume();
|
|
||||||
status_t GetModeFromSpace(uint32 space, display_mode *dmode);
|
|
||||||
status_t InitClone();
|
|
||||||
status_t AssertDisplayMode(display_mode *dmode);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,160 +0,0 @@
|
|||||||
/*******************************************************************************
|
|
||||||
/
|
|
||||||
/ File: E-mail.h
|
|
||||||
/
|
|
||||||
/ Description: Mail attributes and BMailMessage class.
|
|
||||||
/
|
|
||||||
/ Copyright 1993-98, Be Incorporated, All Rights Reserved.
|
|
||||||
/
|
|
||||||
*******************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _E_MAIL_H
|
|
||||||
#define _E_MAIL_H
|
|
||||||
|
|
||||||
#include <UTF8.h>
|
|
||||||
|
|
||||||
class BList;
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------*/
|
|
||||||
/* 'E-Mail' attributes...*/
|
|
||||||
|
|
||||||
#define B_MAIL_ATTR_NAME "MAIL:name" /* indexed string*/
|
|
||||||
#define B_MAIL_ATTR_STATUS "MAIL:status" /* indexed string*/
|
|
||||||
#define B_MAIL_ATTR_PRIORITY "MAIL:priority" /* indexed string*/
|
|
||||||
#define B_MAIL_ATTR_TO "MAIL:to" /* indexed string*/
|
|
||||||
#define B_MAIL_ATTR_CC "MAIL:cc" /* indexed string*/
|
|
||||||
#define B_MAIL_ATTR_FROM "MAIL:from" /* indexed string*/
|
|
||||||
#define B_MAIL_ATTR_SUBJECT "MAIL:subject" /* indexed string*/
|
|
||||||
#define B_MAIL_ATTR_REPLY "MAIL:reply" /* indexed string*/
|
|
||||||
#define B_MAIL_ATTR_WHEN "MAIL:when" /* indexed time*/
|
|
||||||
#define B_MAIL_ATTR_FLAGS "MAIL:flags" /* indexed int32*/
|
|
||||||
#define B_MAIL_ATTR_RECIPIENTS "MAIL:recipients" /* string*/
|
|
||||||
#define B_MAIL_ATTR_MIME "MAIL:mime" /* string*/
|
|
||||||
#define B_MAIL_ATTR_HEADER "MAIL:header_length" /* int32*/
|
|
||||||
#define B_MAIL_ATTR_CONTENT "MAIL:content_length" /* int32*/
|
|
||||||
|
|
||||||
|
|
||||||
/* mail flags */
|
|
||||||
enum mail_flags {B_MAIL_PENDING = 1, /* waiting to be sent*/
|
|
||||||
B_MAIL_SENT = 2, /* has been sent*/
|
|
||||||
B_MAIL_SAVE = 4}; /* save mail after sending*/
|
|
||||||
|
|
||||||
#define B_MAIL_TYPE "text/x-email" /* mime type*/
|
|
||||||
|
|
||||||
/* Everything past this point is deprecated. See MailMessage.h, mail_encoding.h
|
|
||||||
and MailDaemon.h for alternatives. */
|
|
||||||
|
|
||||||
/* DEPRECATED -- DEPRECATED -- DEPRECATED -- DEPRECATED -- DEPRECATED */
|
|
||||||
/* DEPRECATED -- DEPRECATED -- DEPRECATED -- DEPRECATED -- DEPRECATED */
|
|
||||||
|
|
||||||
/* defines...*/
|
|
||||||
|
|
||||||
/* schedule days */
|
|
||||||
#define B_CHECK_NEVER 0
|
|
||||||
#define B_CHECK_WEEKDAYS 1
|
|
||||||
#define B_CHECK_DAILY 2
|
|
||||||
#define B_CHECK_CONTINUOUSLY 3
|
|
||||||
#define B_CHECK_CONTINUOSLY 3
|
|
||||||
|
|
||||||
/* max. lengths */
|
|
||||||
#define B_MAX_USER_NAME_LENGTH 32
|
|
||||||
#define B_MAX_HOST_NAME_LENGTH 64
|
|
||||||
|
|
||||||
/* rfc822 header field types */
|
|
||||||
#define B_MAIL_TO "To: "
|
|
||||||
#define B_MAIL_CC "Cc: "
|
|
||||||
#define B_MAIL_BCC "Bcc: "
|
|
||||||
#define B_MAIL_FROM "From: "
|
|
||||||
#define B_MAIL_DATE "Date: "
|
|
||||||
#define B_MAIL_REPLY "Reply-To: "
|
|
||||||
#define B_MAIL_SUBJECT "Subject: "
|
|
||||||
#define B_MAIL_PRIORITY "Priority: "
|
|
||||||
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------*/
|
|
||||||
/* structs...*/
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
char pop_name[B_MAX_USER_NAME_LENGTH];
|
|
||||||
char pop_password[B_MAX_USER_NAME_LENGTH];
|
|
||||||
char pop_host[B_MAX_HOST_NAME_LENGTH];
|
|
||||||
char real_name[128];
|
|
||||||
char reply_to[128];
|
|
||||||
int32 days; /* see flags above*/
|
|
||||||
int32 interval; /* in seconds*/
|
|
||||||
int32 begin_time; /* in seconds*/
|
|
||||||
int32 end_time; /* in seconds*/
|
|
||||||
} mail_pop_account;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
bool alert;
|
|
||||||
bool beep;
|
|
||||||
} mail_notification;
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------*/
|
|
||||||
/* global functions...*/
|
|
||||||
|
|
||||||
_IMPEXP_MAIL int32 count_pop_accounts(void);
|
|
||||||
_IMPEXP_MAIL status_t get_pop_account(mail_pop_account*, int32 index = 0);
|
|
||||||
_IMPEXP_MAIL status_t set_pop_account(mail_pop_account*, int32 index = 0,
|
|
||||||
bool save = true);
|
|
||||||
_IMPEXP_MAIL status_t get_smtp_host(char*);
|
|
||||||
_IMPEXP_MAIL status_t set_smtp_host(char*, bool save = true);
|
|
||||||
_IMPEXP_MAIL status_t get_mail_notification(mail_notification*);
|
|
||||||
_IMPEXP_MAIL status_t set_mail_notification(mail_notification*, bool save = true);
|
|
||||||
|
|
||||||
_IMPEXP_MAIL status_t check_for_mail(int32 *incoming_count = NULL);
|
|
||||||
_IMPEXP_MAIL status_t send_queued_mail(void);
|
|
||||||
_IMPEXP_MAIL status_t forward_mail(entry_ref*, const char* recipients, bool now = true);
|
|
||||||
|
|
||||||
_IMPEXP_MAIL ssize_t decode_base64(char *out, char *in, off_t length,
|
|
||||||
bool replace_cr = false);
|
|
||||||
_IMPEXP_MAIL ssize_t encode_base64(char *out, char *in, off_t length);
|
|
||||||
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------*/
|
|
||||||
/* class...*/
|
|
||||||
|
|
||||||
class BMailMessage {
|
|
||||||
|
|
||||||
public:
|
|
||||||
BMailMessage(void);
|
|
||||||
~BMailMessage(void);
|
|
||||||
|
|
||||||
status_t AddContent(const char *text, int32 length,
|
|
||||||
uint32 encoding = B_ISO1_CONVERSION,
|
|
||||||
bool clobber = false);
|
|
||||||
status_t AddContent(const char *text, int32 length,
|
|
||||||
const char *encoding, bool clobber = false);
|
|
||||||
|
|
||||||
status_t AddEnclosure(entry_ref *ref, bool clobber = false);
|
|
||||||
status_t AddEnclosure(const char *path, bool clobber = false);
|
|
||||||
status_t AddEnclosure(const char *MIME_type, void *data, int32 len,
|
|
||||||
bool clobber = false);
|
|
||||||
|
|
||||||
status_t AddHeaderField(uint32 encoding, const char *field_name, const char *str,
|
|
||||||
bool clobber = false);
|
|
||||||
status_t AddHeaderField(const char *field_name, const char *str,
|
|
||||||
bool clobber = false);
|
|
||||||
|
|
||||||
status_t Send(bool send_now = false,
|
|
||||||
bool remove_when_I_have_completed_sending_this_message_to_your_preferred_SMTP_server = false);
|
|
||||||
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
private:
|
|
||||||
BList* fFields;
|
|
||||||
bool fMultiPart;
|
|
||||||
|
|
||||||
int32 concatinate(char**, int32, char*);
|
|
||||||
int32 count_fields(char *name = NULL);
|
|
||||||
status_t find_field(char*, type_code*, char**, void**, int32*,
|
|
||||||
uint32*, char**, bool*, int32);
|
|
||||||
BList* find_field(const char*);
|
|
||||||
status_t get_field_name(char**, int32);
|
|
||||||
status_t set_field(const char*, type_code, const char*, const void*,
|
|
||||||
int32, uint32, const char*, bool);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* _MAIL_H */
|
|
||||||
@@ -1,127 +0,0 @@
|
|||||||
#ifndef ZOIDBERG_MAIL_ATTACHMENT_H
|
|
||||||
#define ZOIDBERG_MAIL_ATTACHMENT_H
|
|
||||||
/* Attachment - classes which handle mail attachments
|
|
||||||
**
|
|
||||||
** Copyright 2001 Dr. Zoidberg Enterprises. All rights reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <Node.h>
|
|
||||||
|
|
||||||
#include <MailContainer.h>
|
|
||||||
#include <MailComponent.h>
|
|
||||||
|
|
||||||
class BMailAttachment : public BMailComponent {
|
|
||||||
public:
|
|
||||||
virtual void SetFileName(const char *name) = 0;
|
|
||||||
virtual status_t FileName(char *name) = 0;
|
|
||||||
|
|
||||||
virtual status_t SetTo(BFile *file, bool deleteFileWhenDone = false) = 0;
|
|
||||||
virtual status_t SetTo(entry_ref *ref) = 0;
|
|
||||||
|
|
||||||
virtual status_t InitCheck() = 0;
|
|
||||||
|
|
||||||
private:
|
|
||||||
virtual void _ReservedAttachment1();
|
|
||||||
virtual void _ReservedAttachment2();
|
|
||||||
virtual void _ReservedAttachment3();
|
|
||||||
virtual void _ReservedAttachment4();
|
|
||||||
};
|
|
||||||
|
|
||||||
class BSimpleMailAttachment : public BMailAttachment {
|
|
||||||
public:
|
|
||||||
BSimpleMailAttachment(BPositionIO *dataToAttach, mail_encoding encoding = base64);
|
|
||||||
BSimpleMailAttachment(const void *dataToAttach, size_t lengthOfData, mail_encoding encoding = base64);
|
|
||||||
|
|
||||||
BSimpleMailAttachment(BFile *file, bool delete_when_done);
|
|
||||||
BSimpleMailAttachment(entry_ref *ref);
|
|
||||||
|
|
||||||
BSimpleMailAttachment();
|
|
||||||
virtual ~BSimpleMailAttachment();
|
|
||||||
|
|
||||||
virtual status_t SetTo(BFile *file, bool delete_file_when_done = false);
|
|
||||||
virtual status_t SetTo(entry_ref *ref);
|
|
||||||
|
|
||||||
virtual status_t InitCheck();
|
|
||||||
|
|
||||||
virtual void SetFileName(const char *name);
|
|
||||||
virtual status_t FileName(char *name);
|
|
||||||
|
|
||||||
virtual status_t GetDecodedData(BPositionIO *data);
|
|
||||||
virtual status_t SetDecodedData(BPositionIO *data);
|
|
||||||
|
|
||||||
virtual BPositionIO *GetDecodedData();
|
|
||||||
virtual status_t SetDecodedData(const void *data, size_t length /* data to attach */);
|
|
||||||
virtual status_t SetDecodedDataAndDeleteWhenDone(BPositionIO *data);
|
|
||||||
|
|
||||||
void SetEncoding(mail_encoding encoding = base64 /* note: we only support base64. This is a no-op */);
|
|
||||||
mail_encoding Encoding();
|
|
||||||
|
|
||||||
virtual status_t SetToRFC822(BPositionIO *data, size_t length, bool parse_now = false);
|
|
||||||
virtual status_t RenderToRFC822(BPositionIO *render_to);
|
|
||||||
|
|
||||||
private:
|
|
||||||
void Initialize(mail_encoding encoding);
|
|
||||||
void ParseNow();
|
|
||||||
|
|
||||||
virtual void _ReservedSimple1();
|
|
||||||
virtual void _ReservedSimple2();
|
|
||||||
virtual void _ReservedSimple3();
|
|
||||||
|
|
||||||
status_t fStatus;
|
|
||||||
BPositionIO *_data, *_raw_data;
|
|
||||||
size_t _raw_length;
|
|
||||||
off_t _raw_offset;
|
|
||||||
bool _we_own_data;
|
|
||||||
mail_encoding _encoding;
|
|
||||||
|
|
||||||
uint32 _reserved[5];
|
|
||||||
};
|
|
||||||
|
|
||||||
class BAttributedMailAttachment : public BMailAttachment {
|
|
||||||
public:
|
|
||||||
BAttributedMailAttachment(BFile *file, bool delete_when_done);
|
|
||||||
BAttributedMailAttachment(entry_ref *ref);
|
|
||||||
|
|
||||||
BAttributedMailAttachment();
|
|
||||||
virtual ~BAttributedMailAttachment();
|
|
||||||
|
|
||||||
virtual status_t SetTo(BFile *file, bool delete_file_when_done = false);
|
|
||||||
virtual status_t SetTo(entry_ref *ref);
|
|
||||||
|
|
||||||
virtual status_t InitCheck();
|
|
||||||
|
|
||||||
void SaveToDisk(BEntry *entry);
|
|
||||||
//-----we pay no attention to entry, but set it to the location of our file in /tmp
|
|
||||||
|
|
||||||
void SetEncoding(mail_encoding encoding /* anything but uuencode */);
|
|
||||||
mail_encoding Encoding();
|
|
||||||
|
|
||||||
virtual status_t FileName(char *name);
|
|
||||||
virtual void SetFileName(const char *name);
|
|
||||||
|
|
||||||
virtual status_t GetDecodedData(BPositionIO *data);
|
|
||||||
virtual status_t SetDecodedData(BPositionIO *data);
|
|
||||||
|
|
||||||
virtual status_t SetToRFC822(BPositionIO *data, size_t length, bool parse_now = false);
|
|
||||||
virtual status_t RenderToRFC822(BPositionIO *render_to);
|
|
||||||
|
|
||||||
virtual status_t MIMEType(BMimeType *mime);
|
|
||||||
|
|
||||||
private:
|
|
||||||
status_t Initialize();
|
|
||||||
|
|
||||||
virtual void _ReservedAttributed1();
|
|
||||||
virtual void _ReservedAttributed2();
|
|
||||||
virtual void _ReservedAttributed3();
|
|
||||||
|
|
||||||
BMIMEMultipartMailContainer *fContainer;
|
|
||||||
status_t fStatus;
|
|
||||||
|
|
||||||
BSimpleMailAttachment *_data, *_attributes_attach;
|
|
||||||
BMessage _attributes;
|
|
||||||
|
|
||||||
uint32 _reserved[5];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* ZOIDBERG_MAIL_ATTACHMENT_H */
|
|
||||||
@@ -1,140 +0,0 @@
|
|||||||
#ifndef ZOIDBERG_MAIL_COMPONENT_H
|
|
||||||
#define ZOIDBERG_MAIL_COMPONENT_H
|
|
||||||
/* (Text)Component - message component base class and plain text
|
|
||||||
**
|
|
||||||
** Copyright 2001 Dr. Zoidberg Enterprises. All rights reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <UTF8.h>
|
|
||||||
#include <Message.h>
|
|
||||||
#include <String.h>
|
|
||||||
|
|
||||||
#include <mail_encoding.h>
|
|
||||||
|
|
||||||
class BMimeType;
|
|
||||||
|
|
||||||
extern const char *kHeaderCharsetString;
|
|
||||||
extern const char *kHeaderEncodingString;
|
|
||||||
// Special field names in the headers which specify the character set (int32)
|
|
||||||
// and encoding (int8) to use when converting the headers from UTF-8 to the
|
|
||||||
// output e-mail format (rfc2047). For use with SetHeaderField when you pass
|
|
||||||
// it a structured header in a BMessage.
|
|
||||||
|
|
||||||
|
|
||||||
enum component_type {
|
|
||||||
B_MAIL_PLAIN_TEXT_BODY = 0,
|
|
||||||
B_MAIL_SIMPLE_ATTACHMENT,
|
|
||||||
B_MAIL_ATTRIBUTED_ATTACHMENT,
|
|
||||||
B_MAIL_MULTIPART_CONTAINER
|
|
||||||
};
|
|
||||||
|
|
||||||
class BMailComponent {
|
|
||||||
public:
|
|
||||||
BMailComponent(uint32 defaultCharSet = B_MAIL_NULL_CONVERSION);
|
|
||||||
virtual ~BMailComponent();
|
|
||||||
|
|
||||||
//------Info on this component
|
|
||||||
uint32 ComponentType();
|
|
||||||
BMailComponent *WhatIsThis();
|
|
||||||
// Takes any generic MailComponent, and returns an instance
|
|
||||||
// of a MailComponent subclass that applies to this case,
|
|
||||||
// ready for instantiation. Note that you still have to
|
|
||||||
// Instantiate() it yourself.
|
|
||||||
bool IsAttachment();
|
|
||||||
// Returns true if this component is an attachment, false
|
|
||||||
// otherwise
|
|
||||||
|
|
||||||
void SetHeaderField(
|
|
||||||
const char *key, const char *value,
|
|
||||||
uint32 charset = B_MAIL_NULL_CONVERSION,
|
|
||||||
mail_encoding encoding = null_encoding,
|
|
||||||
bool replace_existing = true);
|
|
||||||
// If you want to delete a header, pass in a zero length or NULL
|
|
||||||
// string for the value field, or use RemoveHeader.
|
|
||||||
void SetHeaderField(
|
|
||||||
const char *key, BMessage *structured_header,
|
|
||||||
bool replace_existing = true);
|
|
||||||
|
|
||||||
const char *HeaderAt(int32 index);
|
|
||||||
const char *HeaderField(const char *key, int32 index = 0);
|
|
||||||
status_t HeaderField(const char *key, BMessage *structured_header, int32 index = 0);
|
|
||||||
|
|
||||||
status_t RemoveHeader(const char *key);
|
|
||||||
|
|
||||||
virtual status_t GetDecodedData(BPositionIO *data);
|
|
||||||
virtual status_t SetDecodedData(BPositionIO *data);
|
|
||||||
|
|
||||||
virtual status_t SetToRFC822(BPositionIO *data, size_t length, bool parse_now = false);
|
|
||||||
virtual status_t RenderToRFC822(BPositionIO *render_to);
|
|
||||||
|
|
||||||
virtual status_t MIMEType(BMimeType *mime);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
uint32 _charSetForTextDecoding;
|
|
||||||
// This is the character set to be used for decoding text
|
|
||||||
// components, or if it is B_MAIL_NULL_CONVERSION then the character
|
|
||||||
// set will be determined automatically. Since we can't use a
|
|
||||||
// global variable (different messages might have different values
|
|
||||||
// of this), and since sub-components can't find their parents,
|
|
||||||
// this is passed down during construction to some (just Component,
|
|
||||||
// Container, Message, MIME, Text) child components and ends up
|
|
||||||
// being used in the text components.
|
|
||||||
|
|
||||||
private:
|
|
||||||
virtual void _ReservedComponent1();
|
|
||||||
virtual void _ReservedComponent2();
|
|
||||||
virtual void _ReservedComponent3();
|
|
||||||
virtual void _ReservedComponent4();
|
|
||||||
virtual void _ReservedComponent5();
|
|
||||||
|
|
||||||
BMessage headers;
|
|
||||||
|
|
||||||
uint32 _reserved[5];
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class BTextMailComponent : public BMailComponent {
|
|
||||||
public:
|
|
||||||
BTextMailComponent(const char *text = NULL, uint32 defaultCharSet = B_MAIL_NULL_CONVERSION);
|
|
||||||
virtual ~BTextMailComponent();
|
|
||||||
|
|
||||||
void SetEncoding(mail_encoding encoding, int32 charset);
|
|
||||||
// encoding: you should always use quoted_printable, base64 is strongly not
|
|
||||||
// recommended, see rfc 2047 for the reasons why
|
|
||||||
// charset: use Conversion flavor constants from UTF8.h
|
|
||||||
|
|
||||||
void SetText(const char *text);
|
|
||||||
void AppendText(const char *text);
|
|
||||||
|
|
||||||
const char *Text();
|
|
||||||
BString *BStringText();
|
|
||||||
|
|
||||||
void Quote(const char *message = NULL,
|
|
||||||
const char *quote_style = "> ");
|
|
||||||
|
|
||||||
virtual status_t GetDecodedData(BPositionIO *data);
|
|
||||||
virtual status_t SetDecodedData(BPositionIO *data);
|
|
||||||
|
|
||||||
virtual status_t SetToRFC822(BPositionIO *data, size_t length, bool parse_now = false);
|
|
||||||
virtual status_t RenderToRFC822(BPositionIO *render_to);
|
|
||||||
|
|
||||||
private:
|
|
||||||
virtual void _ReservedText1();
|
|
||||||
virtual void _ReservedText2();
|
|
||||||
|
|
||||||
BString text;
|
|
||||||
BString decoded;
|
|
||||||
|
|
||||||
mail_encoding encoding;
|
|
||||||
uint32 charset; // This character set is used for encoding, not decoding.
|
|
||||||
|
|
||||||
status_t ParseRaw();
|
|
||||||
BPositionIO *raw_data;
|
|
||||||
size_t raw_length;
|
|
||||||
off_t raw_offset;
|
|
||||||
|
|
||||||
uint32 _reserved[5];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* ZOIDBERG_MAIL_COMPONENT_H */
|
|
||||||
@@ -1,78 +0,0 @@
|
|||||||
#ifndef ZOIDBERG_MAIL_CONTAINER_H
|
|
||||||
#define ZOIDBERG_MAIL_CONTAINER_H
|
|
||||||
/* Container - message part container class
|
|
||||||
**
|
|
||||||
** Copyright 2001 Dr. Zoidberg Enterprises. All rights reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <List.h>
|
|
||||||
|
|
||||||
#include <MailComponent.h>
|
|
||||||
|
|
||||||
class BPositionIO;
|
|
||||||
|
|
||||||
class BMailContainer : public BMailComponent {
|
|
||||||
public:
|
|
||||||
BMailContainer (uint32 defaultCharSet = B_MAIL_NULL_CONVERSION) :
|
|
||||||
BMailComponent (defaultCharSet) {};
|
|
||||||
|
|
||||||
virtual status_t AddComponent(BMailComponent *component) = 0;
|
|
||||||
virtual status_t RemoveComponent(BMailComponent *component) = 0;
|
|
||||||
virtual status_t RemoveComponent(int32 index) = 0;
|
|
||||||
|
|
||||||
virtual BMailComponent *GetComponent(int32 index, bool parse_now = false) = 0;
|
|
||||||
virtual int32 CountComponents() const = 0;
|
|
||||||
|
|
||||||
private:
|
|
||||||
virtual void _ReservedContainer1();
|
|
||||||
virtual void _ReservedContainer2();
|
|
||||||
virtual void _ReservedContainer3();
|
|
||||||
virtual void _ReservedContainer4();
|
|
||||||
};
|
|
||||||
|
|
||||||
class BMIMEMultipartMailContainer : public BMailContainer {
|
|
||||||
public:
|
|
||||||
BMIMEMultipartMailContainer(
|
|
||||||
const char *boundary = NULL,
|
|
||||||
const char *this_is_an_MIME_message_text = NULL,
|
|
||||||
uint32 defaultCharSet = B_MAIL_NULL_CONVERSION);
|
|
||||||
BMIMEMultipartMailContainer(BMIMEMultipartMailContainer ©);
|
|
||||||
virtual ~BMIMEMultipartMailContainer();
|
|
||||||
|
|
||||||
void SetBoundary(const char *boundary);
|
|
||||||
void SetThisIsAnMIMEMessageText(const char *text);
|
|
||||||
|
|
||||||
// MailContainer
|
|
||||||
virtual status_t AddComponent(BMailComponent *component);
|
|
||||||
virtual status_t RemoveComponent(BMailComponent *component);
|
|
||||||
virtual status_t RemoveComponent(int32 index);
|
|
||||||
|
|
||||||
virtual BMailComponent *GetComponent(int32 index, bool parse_now = false);
|
|
||||||
virtual int32 CountComponents() const;
|
|
||||||
|
|
||||||
// MailComponent
|
|
||||||
virtual status_t GetDecodedData(BPositionIO *data);
|
|
||||||
virtual status_t SetDecodedData(BPositionIO *data);
|
|
||||||
|
|
||||||
virtual status_t SetToRFC822(BPositionIO *data, size_t length, bool parse_now = false);
|
|
||||||
virtual status_t RenderToRFC822(BPositionIO *render_to);
|
|
||||||
|
|
||||||
private:
|
|
||||||
virtual void _ReservedMultipart1();
|
|
||||||
virtual void _ReservedMultipart2();
|
|
||||||
virtual void _ReservedMultipart3();
|
|
||||||
|
|
||||||
const char *_boundary;
|
|
||||||
const char *_MIME_message_warning;
|
|
||||||
|
|
||||||
BPositionIO *_io_data;
|
|
||||||
|
|
||||||
BList _components_in_raw;
|
|
||||||
BList _components_in_code;
|
|
||||||
|
|
||||||
|
|
||||||
uint32 _reserved[5];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* ZOIDBERG_MAIL_CONTAINER_H */
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
#ifndef ZOIDBERG_MAIL_DAEMON_H
|
|
||||||
#define ZOIDBERG_MAIL_DAEMON_H
|
|
||||||
/* Daemon - talking to the mail daemon
|
|
||||||
**
|
|
||||||
** Copyright 2001 Dr. Zoidberg Enterprises. All rights reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
class BMailDaemon {
|
|
||||||
public:
|
|
||||||
static status_t CheckMail(bool send_queued_mail = true,const char *account = NULL);
|
|
||||||
static status_t SendQueuedMail();
|
|
||||||
static int32 CountNewMessages(bool wait_for_fetch_completion = false);
|
|
||||||
|
|
||||||
static status_t Quit();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* ZOIDBERG_MAIL_DAEMON_H */
|
|
||||||
|
|
||||||
@@ -1,112 +0,0 @@
|
|||||||
#ifndef ZOIDBERG_MAIL_MESSAGE_H
|
|
||||||
#define ZOIDBERG_MAIL_MESSAGE_H
|
|
||||||
/* Message - the main general purpose mail message class
|
|
||||||
**
|
|
||||||
** Copyright 2001 Dr. Zoidberg Enterprises. All rights reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <MailContainer.h>
|
|
||||||
|
|
||||||
|
|
||||||
// add our additional attributes
|
|
||||||
#define B_MAIL_ATTR_ACCOUNT "MAIL:account"
|
|
||||||
#define B_MAIL_ATTR_THREAD "MAIL:thread"
|
|
||||||
|
|
||||||
|
|
||||||
class BDirectory;
|
|
||||||
|
|
||||||
enum mail_reply_to_mode {
|
|
||||||
B_MAIL_REPLY_TO = 0,
|
|
||||||
B_MAIL_REPLY_TO_ALL,
|
|
||||||
B_MAIL_REPLY_TO_SENDER
|
|
||||||
};
|
|
||||||
|
|
||||||
class BEmailMessage : public BMailContainer {
|
|
||||||
public:
|
|
||||||
BEmailMessage(BPositionIO *mail_file = NULL, bool own = false, uint32 defaultCharSet = B_MAIL_NULL_CONVERSION);
|
|
||||||
BEmailMessage(entry_ref *ref, uint32 defaultCharSet = B_MAIL_NULL_CONVERSION);
|
|
||||||
virtual ~BEmailMessage();
|
|
||||||
|
|
||||||
status_t InitCheck() const;
|
|
||||||
BPositionIO *Data() const { return fData; }
|
|
||||||
// is only set if the message owns the data
|
|
||||||
|
|
||||||
BEmailMessage *ReplyMessage(mail_reply_to_mode replyTo, bool accountFromMail, const char *quote_style = "> ");
|
|
||||||
BEmailMessage *ForwardMessage(bool accountFromMail, bool includeAttachments = false);
|
|
||||||
// These return messages with the body quoted and
|
|
||||||
// ready to send via the appropriate channel. ReplyMessage()
|
|
||||||
// addresses the message appropriately, but ForwardMessage()
|
|
||||||
// leaves it unaddressed.
|
|
||||||
|
|
||||||
const char *To();
|
|
||||||
const char *From();
|
|
||||||
const char *ReplyTo();
|
|
||||||
const char *CC();
|
|
||||||
const char *Subject();
|
|
||||||
const char *Date();
|
|
||||||
int Priority();
|
|
||||||
|
|
||||||
void SetSubject(const char *to, uint32 charset = B_MAIL_NULL_CONVERSION, mail_encoding encoding = null_encoding);
|
|
||||||
void SetReplyTo(const char *to, uint32 charset = B_MAIL_NULL_CONVERSION, mail_encoding encoding = null_encoding);
|
|
||||||
void SetFrom(const char *to, uint32 charset = B_MAIL_NULL_CONVERSION, mail_encoding encoding = null_encoding);
|
|
||||||
void SetTo(const char *to, uint32 charset = B_MAIL_NULL_CONVERSION, mail_encoding encoding = null_encoding);
|
|
||||||
void SetCC(const char *to, uint32 charset = B_MAIL_NULL_CONVERSION, mail_encoding encoding = null_encoding);
|
|
||||||
void SetBCC(const char *to);
|
|
||||||
void SetPriority(int to);
|
|
||||||
|
|
||||||
status_t GetName(char *name,int32 maxLength) const;
|
|
||||||
status_t GetName(BString *name) const;
|
|
||||||
|
|
||||||
void SendViaAccountFrom(BEmailMessage *message);
|
|
||||||
void SendViaAccount(const char *account_name);
|
|
||||||
void SendViaAccount(int32 chain_id);
|
|
||||||
int32 Account() const;
|
|
||||||
status_t GetAccountName(char *account,int32 maxLength) const;
|
|
||||||
status_t GetAccountName(BString *account) const;
|
|
||||||
|
|
||||||
virtual status_t AddComponent(BMailComponent *component);
|
|
||||||
virtual status_t RemoveComponent(BMailComponent *component);
|
|
||||||
virtual status_t RemoveComponent(int32 index);
|
|
||||||
|
|
||||||
virtual BMailComponent *GetComponent(int32 index, bool parse_now = false);
|
|
||||||
virtual int32 CountComponents() const;
|
|
||||||
|
|
||||||
void Attach(entry_ref *ref, bool include_attributes = true);
|
|
||||||
bool IsComponentAttachment(int32 index);
|
|
||||||
|
|
||||||
void SetBodyTextTo(const char *text);
|
|
||||||
const char *BodyText();
|
|
||||||
|
|
||||||
status_t SetBody(BTextMailComponent *body);
|
|
||||||
BTextMailComponent *Body();
|
|
||||||
|
|
||||||
virtual status_t SetToRFC822(BPositionIO *data, size_t length, bool parse_now = false);
|
|
||||||
virtual status_t RenderToRFC822(BPositionIO *render_to);
|
|
||||||
|
|
||||||
status_t RenderTo(BDirectory *dir, BEntry *message = NULL);
|
|
||||||
//---message will be set to the message file if not equal to NULL
|
|
||||||
|
|
||||||
status_t Send(bool send_now);
|
|
||||||
|
|
||||||
private:
|
|
||||||
BTextMailComponent *RetrieveTextBody(BMailComponent *);
|
|
||||||
|
|
||||||
virtual void _ReservedMessage1();
|
|
||||||
virtual void _ReservedMessage2();
|
|
||||||
virtual void _ReservedMessage3();
|
|
||||||
|
|
||||||
BPositionIO *fData;
|
|
||||||
|
|
||||||
status_t _status;
|
|
||||||
int32 _chain_id;
|
|
||||||
char *_bcc;
|
|
||||||
|
|
||||||
int32 _num_components;
|
|
||||||
BMailComponent *_body;
|
|
||||||
BTextMailComponent *_text_body;
|
|
||||||
|
|
||||||
uint32 _reserved[5];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* ZOIDBERG_MAIL_MESSAGE_H */
|
|
||||||
@@ -1,153 +0,0 @@
|
|||||||
#ifndef ZOIDBERG_MAIL_SETTINGS_H
|
|
||||||
#define ZOIDBERG_MAIL_SETTINGS_H
|
|
||||||
/* Settings - the mail daemon's settings
|
|
||||||
**
|
|
||||||
** Copyright 2001 Dr. Zoidberg Enterprises. All rights reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <Archivable.h>
|
|
||||||
#include <List.h>
|
|
||||||
#include <Message.h>
|
|
||||||
|
|
||||||
class BPath;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
B_MAIL_SHOW_STATUS_WINDOW_NEVER = 0,
|
|
||||||
B_MAIL_SHOW_STATUS_WINDOW_WHEN_SENDING = 1,
|
|
||||||
B_MAIL_SHOW_STATUS_WINDOW_WHEN_ACTIVE = 2,
|
|
||||||
B_MAIL_SHOW_STATUS_WINDOW_ALWAYS = 3
|
|
||||||
} b_mail_status_window_option;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
B_MAIL_STATUS_LOOK_TITLED = 0,
|
|
||||||
B_MAIL_STATUS_LOOK_NORMAL_BORDER = 1,
|
|
||||||
B_MAIL_STATUS_LOOK_FLOATING = 2,
|
|
||||||
B_MAIL_STATUS_LOOK_THIN_BORDER = 3,
|
|
||||||
B_MAIL_STATUS_LOOK_NO_BORDER = 4
|
|
||||||
} b_mail_status_window_look;
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
inbound,
|
|
||||||
outbound
|
|
||||||
} b_mail_chain_direction;
|
|
||||||
|
|
||||||
class BMailStatusWindow;
|
|
||||||
class BMailChain;
|
|
||||||
|
|
||||||
BMailChain* NewMailChain();
|
|
||||||
BMailChain* GetMailChain(uint32 id);
|
|
||||||
|
|
||||||
status_t GetOutboundMailChains(BList *list);
|
|
||||||
status_t GetInboundMailChains(BList *list);
|
|
||||||
|
|
||||||
class BMailChain : public BArchivable
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BMailChain(uint32 id);
|
|
||||||
BMailChain(BMessage*);
|
|
||||||
virtual ~BMailChain();
|
|
||||||
|
|
||||||
virtual status_t Archive(BMessage*,bool) const;
|
|
||||||
static BArchivable* Instantiate(BMessage*);
|
|
||||||
|
|
||||||
status_t Save(bigtime_t timeout = B_INFINITE_TIMEOUT);
|
|
||||||
status_t Delete() const;
|
|
||||||
status_t Reload();
|
|
||||||
status_t InitCheck() const;
|
|
||||||
|
|
||||||
uint32 ID() const;
|
|
||||||
|
|
||||||
b_mail_chain_direction ChainDirection() const;
|
|
||||||
void SetChainDirection(b_mail_chain_direction);
|
|
||||||
|
|
||||||
const char *Name() const;
|
|
||||||
status_t SetName(const char*);
|
|
||||||
|
|
||||||
BMessage *MetaData() const;
|
|
||||||
|
|
||||||
// "Filter" below refers to the settings message for a MailFilter
|
|
||||||
int32 CountFilters() const;
|
|
||||||
status_t GetFilter(int32 index, BMessage* out_settings, entry_ref *addon = NULL) const;
|
|
||||||
status_t SetFilter(int32 index, const BMessage&, const entry_ref&);
|
|
||||||
|
|
||||||
status_t AddFilter(const BMessage&, const entry_ref&); // at end
|
|
||||||
status_t AddFilter(int32 index, const BMessage&, const entry_ref&);
|
|
||||||
status_t RemoveFilter(int32 index);
|
|
||||||
|
|
||||||
void RunChain(BMailStatusWindow *window,
|
|
||||||
bool async = true,
|
|
||||||
bool save_when_done = true,
|
|
||||||
bool delete_when_done = false);
|
|
||||||
|
|
||||||
private:
|
|
||||||
status_t Path(BPath *path) const;
|
|
||||||
status_t Load(BMessage*);
|
|
||||||
|
|
||||||
int32 id;
|
|
||||||
char name[B_FILE_NAME_LENGTH];
|
|
||||||
BMessage *meta_data;
|
|
||||||
|
|
||||||
status_t _err;
|
|
||||||
|
|
||||||
b_mail_chain_direction direction;
|
|
||||||
|
|
||||||
int32 settings_ct, addons_ct;
|
|
||||||
BList filter_settings;
|
|
||||||
BList filter_addons;
|
|
||||||
|
|
||||||
uint32 _reserved[5];
|
|
||||||
};
|
|
||||||
|
|
||||||
class BMailSettings
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BMailSettings();
|
|
||||||
~BMailSettings();
|
|
||||||
|
|
||||||
status_t Save(bigtime_t timeout = B_INFINITE_TIMEOUT);
|
|
||||||
status_t Reload();
|
|
||||||
status_t InitCheck() const;
|
|
||||||
|
|
||||||
// Global settings
|
|
||||||
int32 WindowFollowsCorner();
|
|
||||||
void SetWindowFollowsCorner(int32 which_corner);
|
|
||||||
|
|
||||||
uint32 ShowStatusWindow();
|
|
||||||
void SetShowStatusWindow(uint32 mode);
|
|
||||||
|
|
||||||
bool DaemonAutoStarts();
|
|
||||||
void SetDaemonAutoStarts(bool does_it);
|
|
||||||
|
|
||||||
void SetConfigWindowFrame(BRect frame);
|
|
||||||
BRect ConfigWindowFrame();
|
|
||||||
|
|
||||||
void SetStatusWindowFrame(BRect frame);
|
|
||||||
BRect StatusWindowFrame();
|
|
||||||
|
|
||||||
int32 StatusWindowWorkspaces();
|
|
||||||
void SetStatusWindowWorkspaces(int32 workspaces);
|
|
||||||
|
|
||||||
int32 StatusWindowLook();
|
|
||||||
void SetStatusWindowLook(int32 look);
|
|
||||||
|
|
||||||
bigtime_t AutoCheckInterval();
|
|
||||||
void SetAutoCheckInterval(bigtime_t);
|
|
||||||
|
|
||||||
bool CheckOnlyIfPPPUp();
|
|
||||||
void SetCheckOnlyIfPPPUp(bool yes);
|
|
||||||
|
|
||||||
bool SendOnlyIfPPPUp();
|
|
||||||
void SetSendOnlyIfPPPUp(bool yes);
|
|
||||||
|
|
||||||
uint32 DefaultOutboundChainID();
|
|
||||||
void SetDefaultOutboundChainID(uint32 to);
|
|
||||||
|
|
||||||
private:
|
|
||||||
BMessage data;
|
|
||||||
uint32 _reserved[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* ZOIDBERG_MAIL_SETTINGS_H */
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
#ifndef ZOIDBERG_MAIL_ENCODING_H
|
|
||||||
#define ZOIDBERG_MAIL_ENCODING_H
|
|
||||||
/* mail encoding - mail de-/encoding functions (base64 and friends)
|
|
||||||
**
|
|
||||||
** Copyright 2001 Dr. Zoidberg Enterprises. All rights reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <size_t.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
|
|
||||||
#define B_MAIL_NULL_CONVERSION ((uint32) -1)
|
|
||||||
#define B_MAIL_UTF8_CONVERSION ((uint32) -2)
|
|
||||||
// For specifying the UTF-8 character set when converting to/from UTF-8.
|
|
||||||
#define B_MAIL_US_ASCII_CONVERSION ((uint32) -3)
|
|
||||||
// Plain 7 bit ASCII character set. A subset of UTF-8, but some mail software
|
|
||||||
// specifies it so we need to recognize it.
|
|
||||||
|
|
||||||
#define BASE64_LINELENGTH 76
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
base64 = 'b',
|
|
||||||
quoted_printable = 'q',
|
|
||||||
seven_bit = '7',
|
|
||||||
eight_bit = '8',
|
|
||||||
uuencode = 'u', // Invalid to encode something using uuencode.
|
|
||||||
null_encoding = 0, // For not changing existing settings.
|
|
||||||
no_encoding = -1
|
|
||||||
} mail_encoding;
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ssize_t encode(mail_encoding encoding, char *out, const char *in,
|
|
||||||
off_t length, int headerMode);
|
|
||||||
// boolean headerMode only matters for quoted_printable and base64.
|
|
||||||
ssize_t decode(mail_encoding encoding, char *out, const char *in, off_t length,
|
|
||||||
int underscore_is_space);
|
|
||||||
// the value of underscore_is_space only matters for quoted_printable.
|
|
||||||
|
|
||||||
ssize_t max_encoded_length(mail_encoding encoding, off_t cur_length);
|
|
||||||
mail_encoding encoding_for_cte(const char *content_transfer_encoding);
|
|
||||||
|
|
||||||
ssize_t encode_base64(char *out, const char *in, off_t length, int headerMode);
|
|
||||||
ssize_t decode_base64(char *out, const char *in, off_t length);
|
|
||||||
|
|
||||||
ssize_t encode_qp(char *out, const char *in, off_t length, int headerMode);
|
|
||||||
ssize_t decode_qp(char *out, const char *in, off_t length, int underscore_is_space);
|
|
||||||
//---underscore_is_space should be 1 if and only if you are decoding a header field
|
|
||||||
|
|
||||||
ssize_t uu_decode(char *out, const char *in, off_t length);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* ZOIDBERG_MAIL_ENCODING_H */
|
|
||||||
@@ -1,123 +0,0 @@
|
|||||||
|
|
||||||
#ifndef _MIDI_H
|
|
||||||
#define _MIDI_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
#include <MidiDefs.h>
|
|
||||||
#include <OS.h>
|
|
||||||
|
|
||||||
class BList;
|
|
||||||
class BMidiLocalProducer;
|
|
||||||
class BMidiLocalConsumer;
|
|
||||||
|
|
||||||
class BMidi
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
BMidi();
|
|
||||||
virtual ~BMidi();
|
|
||||||
|
|
||||||
virtual void NoteOff(
|
|
||||||
uchar channel, uchar note, uchar velocity, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void NoteOn(
|
|
||||||
uchar channel, uchar note, uchar velocity, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void KeyPressure(
|
|
||||||
uchar channel, uchar note, uchar pressure, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void ControlChange(
|
|
||||||
uchar channel, uchar controlNumber, uchar controlValue,
|
|
||||||
uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void ProgramChange(
|
|
||||||
uchar channel, uchar programNumber, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void ChannelPressure(
|
|
||||||
uchar channel, uchar pressure, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void PitchBend(
|
|
||||||
uchar channel, uchar lsb, uchar msb, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void SystemExclusive(
|
|
||||||
void* data, size_t length, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void SystemCommon(
|
|
||||||
uchar status, uchar data1, uchar data2, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void SystemRealTime(uchar status, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void TempoChange(int32 beatsPerMinute, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void AllNotesOff(bool justChannel = true, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual status_t Start();
|
|
||||||
virtual void Stop();
|
|
||||||
|
|
||||||
bool IsRunning() const;
|
|
||||||
|
|
||||||
void Connect(BMidi* toObject);
|
|
||||||
void Disconnect(BMidi* fromObject);
|
|
||||||
bool IsConnected(BMidi* toObject) const;
|
|
||||||
BList* Connections() const;
|
|
||||||
|
|
||||||
void SnoozeUntil(uint32 time) const;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
void SprayNoteOff(
|
|
||||||
uchar channel, uchar note, uchar velocity, uint32 time) const;
|
|
||||||
|
|
||||||
void SprayNoteOn(
|
|
||||||
uchar channel, uchar note, uchar velocity, uint32 time) const;
|
|
||||||
|
|
||||||
void SprayKeyPressure(
|
|
||||||
uchar channel, uchar note, uchar pressure, uint32 time) const;
|
|
||||||
|
|
||||||
void SprayControlChange(
|
|
||||||
uchar channel, uchar controlNumber, uchar controlValue,
|
|
||||||
uint32 time) const;
|
|
||||||
|
|
||||||
void SprayProgramChange(
|
|
||||||
uchar channel, uchar programNumber, uint32 time) const;
|
|
||||||
|
|
||||||
void SprayChannelPressure(
|
|
||||||
uchar channel, uchar pressure, uint32 time) const;
|
|
||||||
|
|
||||||
void SprayPitchBend(
|
|
||||||
uchar channel, uchar lsb, uchar msb, uint32 time) const;
|
|
||||||
|
|
||||||
void SpraySystemExclusive(
|
|
||||||
void* data, size_t length, uint32 time = B_NOW) const;
|
|
||||||
|
|
||||||
void SpraySystemCommon(
|
|
||||||
uchar status, uchar data1, uchar data2, uint32 time) const;
|
|
||||||
|
|
||||||
void SpraySystemRealTime(uchar status, uint32 time) const;
|
|
||||||
|
|
||||||
void SprayTempoChange(int32 beatsPerMinute, uint32 time) const;
|
|
||||||
|
|
||||||
bool KeepRunning();
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
friend status_t _run_thread(void* data);
|
|
||||||
|
|
||||||
virtual void _ReservedMidi1();
|
|
||||||
virtual void _ReservedMidi2();
|
|
||||||
virtual void _ReservedMidi3();
|
|
||||||
|
|
||||||
virtual void Run();
|
|
||||||
|
|
||||||
BMidiLocalProducer* producer;
|
|
||||||
BMidiLocalConsumer* consumer;
|
|
||||||
|
|
||||||
BList* connections;
|
|
||||||
volatile thread_id threadId;
|
|
||||||
volatile bool isRunning;
|
|
||||||
|
|
||||||
uint8 _reserved1[3];
|
|
||||||
uint32 _reserved2[5];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _MIDI_H
|
|
||||||
@@ -1,302 +0,0 @@
|
|||||||
|
|
||||||
#ifndef _MIDI_DEFS_H
|
|
||||||
#define _MIDI_DEFS_H
|
|
||||||
|
|
||||||
#include <OS.h>
|
|
||||||
#include <Errors.h>
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
/* System time converted to int milliseconds */
|
|
||||||
#define B_NOW ((uint32)(system_time()/1000))
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
/* Synthesizer things */
|
|
||||||
|
|
||||||
#define B_SYNTH_DIRECTORY B_BEOS_DATA_DIRECTORY
|
|
||||||
#define B_BIG_SYNTH_FILE "synth/big_synth.sy"
|
|
||||||
#define B_LITTLE_SYNTH_FILE "synth/little_synth.sy"
|
|
||||||
|
|
||||||
typedef enum synth_mode
|
|
||||||
{
|
|
||||||
B_NO_SYNTH,
|
|
||||||
B_BIG_SYNTH,
|
|
||||||
B_LITTLE_SYNTH,
|
|
||||||
B_DEFAULT_SYNTH,
|
|
||||||
B_SAMPLES_ONLY
|
|
||||||
}
|
|
||||||
synth_mode;
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
/* Need to move these into Errors.h */
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
B_BAD_INSTRUMENT = B_MIDI_ERROR_BASE + 0x100,
|
|
||||||
B_BAD_MIDI_DATA,
|
|
||||||
B_ALREADY_PAUSED,
|
|
||||||
B_ALREADY_RESUMED,
|
|
||||||
B_NO_SONG_PLAYING,
|
|
||||||
B_TOO_MANY_SONGS_PLAYING
|
|
||||||
};
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#ifndef uchar
|
|
||||||
typedef unsigned char uchar;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef _MIDI_CONSTANTS_
|
|
||||||
#define _MIDI_CONSTANTS_
|
|
||||||
|
|
||||||
/* Channel Message Masks*/
|
|
||||||
const uchar B_NOTE_OFF = 0x80;
|
|
||||||
const uchar B_NOTE_ON = 0x90;
|
|
||||||
const uchar B_KEY_PRESSURE = 0xa0;
|
|
||||||
const uchar B_CONTROL_CHANGE = 0xb0;
|
|
||||||
const uchar B_PROGRAM_CHANGE = 0xc0;
|
|
||||||
const uchar B_CHANNEL_PRESSURE = 0xd0;
|
|
||||||
const uchar B_PITCH_BEND = 0xe0;
|
|
||||||
|
|
||||||
/* System Messages*/
|
|
||||||
const uchar B_SYS_EX_START = 0xf0;
|
|
||||||
const uchar B_MIDI_TIME_CODE = 0xf1;
|
|
||||||
const uchar B_SONG_POSITION = 0xf2;
|
|
||||||
const uchar B_SONG_SELECT = 0xf3;
|
|
||||||
const uchar B_CABLE_MESSAGE = 0xf5;
|
|
||||||
const uchar B_TUNE_REQUEST = 0xf6;
|
|
||||||
const uchar B_SYS_EX_END = 0xf7;
|
|
||||||
const uchar B_TIMING_CLOCK = 0xf8;
|
|
||||||
const uchar B_START = 0xfa;
|
|
||||||
const uchar B_CONTINUE = 0xfb;
|
|
||||||
const uchar B_STOP = 0xfc;
|
|
||||||
const uchar B_ACTIVE_SENSING = 0xfe;
|
|
||||||
const uchar B_SYSTEM_RESET = 0xff;
|
|
||||||
|
|
||||||
/* Controller Numbers*/
|
|
||||||
const uchar B_MODULATION = 0x01;
|
|
||||||
const uchar B_BREATH_CONTROLLER = 0x02;
|
|
||||||
const uchar B_FOOT_CONTROLLER = 0x04;
|
|
||||||
const uchar B_PORTAMENTO_TIME = 0x05;
|
|
||||||
const uchar B_DATA_ENTRY = 0x06;
|
|
||||||
const uchar B_MAIN_VOLUME = 0x07;
|
|
||||||
const uchar B_MIDI_BALANCE = 0x08; /* used to be B_BALANCE */
|
|
||||||
const uchar B_PAN = 0x0a;
|
|
||||||
const uchar B_EXPRESSION_CTRL = 0x0b;
|
|
||||||
const uchar B_GENERAL_CTRL_1 = 0x10;
|
|
||||||
const uchar B_GENERAL_CTRL_2 = 0x11;
|
|
||||||
const uchar B_GENERAL_CTRL_3 = 0x12;
|
|
||||||
const uchar B_GENERAL_CTRL_4 = 0x13;
|
|
||||||
const uchar B_SUSTAIN_PEDAL = 0x40;
|
|
||||||
const uchar B_PORTAMENTO = 0x41;
|
|
||||||
const uchar B_SOSTENUTO = 0x42;
|
|
||||||
const uchar B_SOFT_PEDAL = 0x43;
|
|
||||||
const uchar B_HOLD_2 = 0x45;
|
|
||||||
const uchar B_GENERAL_CTRL_5 = 0x50;
|
|
||||||
const uchar B_GENERAL_CTRL_6 = 0x51;
|
|
||||||
const uchar B_GENERAL_CTRL_7 = 0x52;
|
|
||||||
const uchar B_GENERAL_CTRL_8 = 0x53;
|
|
||||||
const uchar B_EFFECTS_DEPTH = 0x5b;
|
|
||||||
const uchar B_TREMOLO_DEPTH = 0x5c;
|
|
||||||
const uchar B_CHORUS_DEPTH = 0x5d;
|
|
||||||
const uchar B_CELESTE_DEPTH = 0x5e;
|
|
||||||
const uchar B_PHASER_DEPTH = 0x5f;
|
|
||||||
const uchar B_DATA_INCREMENT = 0x60;
|
|
||||||
const uchar B_DATA_DECREMENT = 0x61;
|
|
||||||
const uchar B_RESET_ALL_CONTROLLERS = 0x79;
|
|
||||||
const uchar B_LOCAL_CONTROL = 0x7a;
|
|
||||||
const uchar B_ALL_NOTES_OFF = 0x7b;
|
|
||||||
const uchar B_OMNI_MODE_OFF = 0x7c;
|
|
||||||
const uchar B_OMNI_MODE_ON = 0x7d;
|
|
||||||
const uchar B_MONO_MODE_ON = 0x7e;
|
|
||||||
const uchar B_POLY_MODE_ON = 0x7f;
|
|
||||||
|
|
||||||
const uchar B_TEMPO_CHANGE = 0x51;
|
|
||||||
|
|
||||||
#endif // _MIDI_CONSTANTS_
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
typedef enum midi_axe
|
|
||||||
{
|
|
||||||
/* Pianos */
|
|
||||||
B_ACOUSTIC_GRAND=0,
|
|
||||||
B_BRIGHT_GRAND,
|
|
||||||
B_ELECTRIC_GRAND,
|
|
||||||
B_HONKY_TONK,
|
|
||||||
B_ELECTRIC_PIANO_1,
|
|
||||||
B_ELECTRIC_PIANO_2,
|
|
||||||
B_HARPSICHORD,
|
|
||||||
B_CLAVICHORD,
|
|
||||||
|
|
||||||
/* Tuned Idiophones */
|
|
||||||
B_CELESTA,
|
|
||||||
B_GLOCKENSPIEL,
|
|
||||||
B_MUSIC_BOX,
|
|
||||||
B_VIBRAPHONE,
|
|
||||||
B_MARIMBA,
|
|
||||||
B_XYLOPHONE,
|
|
||||||
B_TUBULAR_BELLS,
|
|
||||||
B_DULCIMER,
|
|
||||||
|
|
||||||
/* Organs */
|
|
||||||
B_DRAWBAR_ORGAN,
|
|
||||||
B_PERCUSSIVE_ORGAN,
|
|
||||||
B_ROCK_ORGAN,
|
|
||||||
B_CHURCH_ORGAN,
|
|
||||||
B_REED_ORGAN,
|
|
||||||
B_ACCORDION,
|
|
||||||
B_HARMONICA,
|
|
||||||
B_TANGO_ACCORDION,
|
|
||||||
|
|
||||||
/* Guitars */
|
|
||||||
B_ACOUSTIC_GUITAR_NYLON,
|
|
||||||
B_ACOUSTIC_GUITAR_STEEL,
|
|
||||||
B_ELECTRIC_GUITAR_JAZZ,
|
|
||||||
B_ELECTRIC_GUITAR_CLEAN,
|
|
||||||
B_ELECTRIC_GUITAR_MUTED,
|
|
||||||
B_OVERDRIVEN_GUITAR,
|
|
||||||
B_DISTORTION_GUITAR,
|
|
||||||
B_GUITAR_HARMONICS,
|
|
||||||
|
|
||||||
/* Basses */
|
|
||||||
B_ACOUSTIC_BASS,
|
|
||||||
B_ELECTRIC_BASS_FINGER,
|
|
||||||
B_ELECTRIC_BASS_PICK,
|
|
||||||
B_FRETLESS_BASS,
|
|
||||||
B_SLAP_BASS_1,
|
|
||||||
B_SLAP_BASS_2,
|
|
||||||
B_SYNTH_BASS_1,
|
|
||||||
B_SYNTH_BASS_2,
|
|
||||||
|
|
||||||
/* Strings */
|
|
||||||
B_VIOLIN,
|
|
||||||
B_VIOLA,
|
|
||||||
B_CELLO,
|
|
||||||
B_CONTRABASS,
|
|
||||||
B_TREMOLO_STRINGS,
|
|
||||||
B_PIZZICATO_STRINGS,
|
|
||||||
B_ORCHESTRAL_STRINGS,
|
|
||||||
B_TIMPANI,
|
|
||||||
|
|
||||||
/* Ensemble strings and voices */
|
|
||||||
B_STRING_ENSEMBLE_1,
|
|
||||||
B_STRING_ENSEMBLE_2,
|
|
||||||
B_SYNTH_STRINGS_1,
|
|
||||||
B_SYNTH_STRINGS_2,
|
|
||||||
B_VOICE_AAH,
|
|
||||||
B_VOICE_OOH,
|
|
||||||
B_SYNTH_VOICE,
|
|
||||||
B_ORCHESTRA_HIT,
|
|
||||||
|
|
||||||
/* Brass */
|
|
||||||
B_TRUMPET,
|
|
||||||
B_TROMBONE,
|
|
||||||
B_TUBA,
|
|
||||||
B_MUTED_TRUMPET,
|
|
||||||
B_FRENCH_HORN,
|
|
||||||
B_BRASS_SECTION,
|
|
||||||
B_SYNTH_BRASS_1,
|
|
||||||
B_SYNTH_BRASS_2,
|
|
||||||
|
|
||||||
/* Reeds */
|
|
||||||
B_SOPRANO_SAX,
|
|
||||||
B_ALTO_SAX,
|
|
||||||
B_TENOR_SAX,
|
|
||||||
B_BARITONE_SAX,
|
|
||||||
B_OBOE,
|
|
||||||
B_ENGLISH_HORN,
|
|
||||||
B_BASSOON,
|
|
||||||
B_CLARINET,
|
|
||||||
|
|
||||||
/* Pipes */
|
|
||||||
B_PICCOLO,
|
|
||||||
B_FLUTE,
|
|
||||||
B_RECORDER,
|
|
||||||
B_PAN_FLUTE,
|
|
||||||
B_BLOWN_BOTTLE,
|
|
||||||
B_SHAKUHACHI,
|
|
||||||
B_WHISTLE,
|
|
||||||
B_OCARINA,
|
|
||||||
|
|
||||||
/* Synth Leads*/
|
|
||||||
B_LEAD_1,
|
|
||||||
B_SQUARE_WAVE = B_LEAD_1,
|
|
||||||
B_LEAD_2,
|
|
||||||
B_SAWTOOTH_WAVE = B_LEAD_2,
|
|
||||||
B_LEAD_3,
|
|
||||||
B_CALLIOPE = B_LEAD_3,
|
|
||||||
B_LEAD_4,
|
|
||||||
B_CHIFF = B_LEAD_4,
|
|
||||||
B_LEAD_5,
|
|
||||||
B_CHARANG = B_LEAD_5,
|
|
||||||
B_LEAD_6,
|
|
||||||
B_VOICE = B_LEAD_6,
|
|
||||||
B_LEAD_7,
|
|
||||||
B_FIFTHS = B_LEAD_7,
|
|
||||||
B_LEAD_8,
|
|
||||||
B_BASS_LEAD = B_LEAD_8,
|
|
||||||
|
|
||||||
/* Synth Pads */
|
|
||||||
B_PAD_1,
|
|
||||||
B_NEW_AGE = B_PAD_1,
|
|
||||||
B_PAD_2,
|
|
||||||
B_WARM = B_PAD_2,
|
|
||||||
B_PAD_3,
|
|
||||||
B_POLYSYNTH = B_PAD_3,
|
|
||||||
B_PAD_4,
|
|
||||||
B_CHOIR = B_PAD_4,
|
|
||||||
B_PAD_5,
|
|
||||||
B_BOWED = B_PAD_5,
|
|
||||||
B_PAD_6,
|
|
||||||
B_METALLIC = B_PAD_6,
|
|
||||||
B_PAD_7,
|
|
||||||
B_HALO = B_PAD_7,
|
|
||||||
B_PAD_8,
|
|
||||||
B_SWEEP = B_PAD_8,
|
|
||||||
|
|
||||||
/* Effects */
|
|
||||||
B_FX_1,
|
|
||||||
B_FX_2,
|
|
||||||
B_FX_3,
|
|
||||||
B_FX_4,
|
|
||||||
B_FX_5,
|
|
||||||
B_FX_6,
|
|
||||||
B_FX_7,
|
|
||||||
B_FX_8,
|
|
||||||
|
|
||||||
/* Ethnic */
|
|
||||||
B_SITAR,
|
|
||||||
B_BANJO,
|
|
||||||
B_SHAMISEN,
|
|
||||||
B_KOTO,
|
|
||||||
B_KALIMBA,
|
|
||||||
B_BAGPIPE,
|
|
||||||
B_FIDDLE,
|
|
||||||
B_SHANAI,
|
|
||||||
|
|
||||||
/* Percussion */
|
|
||||||
B_TINKLE_BELL,
|
|
||||||
B_AGOGO,
|
|
||||||
B_STEEL_DRUMS,
|
|
||||||
B_WOODBLOCK,
|
|
||||||
B_TAIKO_DRUMS,
|
|
||||||
B_MELODIC_TOM,
|
|
||||||
B_SYNTH_DRUM,
|
|
||||||
B_REVERSE_CYMBAL,
|
|
||||||
|
|
||||||
/* Sound Effects */
|
|
||||||
B_FRET_NOISE,
|
|
||||||
B_BREATH_NOISE,
|
|
||||||
B_SEASHORE,
|
|
||||||
B_BIRD_TWEET,
|
|
||||||
B_TELEPHONE,
|
|
||||||
B_HELICOPTER,
|
|
||||||
B_APPLAUSE,
|
|
||||||
B_GUNSHOT
|
|
||||||
}
|
|
||||||
midi_axe;
|
|
||||||
|
|
||||||
#endif // _MIDI_DEFS_H
|
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
|
|
||||||
#ifndef _MIDI_PORT_H
|
|
||||||
#define _MIDI_PORT_H
|
|
||||||
|
|
||||||
#include <Midi.h>
|
|
||||||
|
|
||||||
namespace BPrivate { class BMidiPortGlue; }
|
|
||||||
|
|
||||||
class BMidiPort : public BMidi
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
BMidiPort(const char* name = NULL);
|
|
||||||
~BMidiPort();
|
|
||||||
|
|
||||||
status_t InitCheck() const;
|
|
||||||
status_t Open(const char* name);
|
|
||||||
void Close();
|
|
||||||
|
|
||||||
const char* PortName() const;
|
|
||||||
|
|
||||||
virtual void NoteOff(
|
|
||||||
uchar channel, uchar note, uchar velocity, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void NoteOn(
|
|
||||||
uchar channel, uchar note, uchar velocity, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void KeyPressure(
|
|
||||||
uchar channel, uchar note, uchar pressure, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void ControlChange(
|
|
||||||
uchar channel, uchar controlNumber, uchar controlValue,
|
|
||||||
uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void ProgramChange(
|
|
||||||
uchar channel, uchar programNumber, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void ChannelPressure(
|
|
||||||
uchar channel, uchar pressure, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void PitchBend(
|
|
||||||
uchar channel, uchar lsb, uchar msb, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void SystemExclusive(
|
|
||||||
void* data, size_t length, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void SystemCommon(
|
|
||||||
uchar status, uchar data0, uchar data2, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void SystemRealTime(uchar status, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual status_t Start();
|
|
||||||
virtual void Stop();
|
|
||||||
|
|
||||||
int32 CountDevices();
|
|
||||||
|
|
||||||
status_t GetDeviceName(
|
|
||||||
int32 n, char* name, size_t bufSize = B_OS_NAME_LENGTH);
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
typedef BMidi super;
|
|
||||||
|
|
||||||
friend class BPrivate::BMidiPortGlue;
|
|
||||||
|
|
||||||
virtual void _ReservedMidiPort1();
|
|
||||||
virtual void _ReservedMidiPort2();
|
|
||||||
virtual void _ReservedMidiPort3();
|
|
||||||
|
|
||||||
virtual void Run();
|
|
||||||
|
|
||||||
void ScanDevices();
|
|
||||||
void EmptyDeviceList();
|
|
||||||
|
|
||||||
BMidiLocalProducer* localSource;
|
|
||||||
BMidiLocalConsumer* localSink;
|
|
||||||
BMidiProducer* remoteSource;
|
|
||||||
BMidiConsumer* remoteSink;
|
|
||||||
|
|
||||||
char* portName;
|
|
||||||
status_t status;
|
|
||||||
BList* devices;
|
|
||||||
|
|
||||||
uint32 _reserved[1];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _MIDI_PORT_H
|
|
||||||
@@ -1,134 +0,0 @@
|
|||||||
|
|
||||||
#ifndef _MIDI_STORE_H
|
|
||||||
#define _MIDI_STORE_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
#include <Midi.h>
|
|
||||||
#include <MidiSynthFile.h>
|
|
||||||
|
|
||||||
struct entry_ref;
|
|
||||||
|
|
||||||
class BFile;
|
|
||||||
class BList;
|
|
||||||
class BMidiEvent;
|
|
||||||
|
|
||||||
class BMidiStore : public BMidi
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
BMidiStore();
|
|
||||||
virtual ~BMidiStore();
|
|
||||||
|
|
||||||
virtual void NoteOff(
|
|
||||||
uchar channel, uchar note, uchar velocity, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void NoteOn(
|
|
||||||
uchar channel, uchar note, uchar velocity, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void KeyPressure(
|
|
||||||
uchar channel, uchar note, uchar pressure, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void ControlChange(
|
|
||||||
uchar channel, uchar controlNumber, uchar controlValue,
|
|
||||||
uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void ProgramChange(
|
|
||||||
uchar channel, uchar programNumber, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void ChannelPressure(
|
|
||||||
uchar channel, uchar pressure, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void PitchBend(
|
|
||||||
uchar channel, uchar lsb, uchar msb, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void SystemExclusive(
|
|
||||||
void* data, size_t length, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void SystemCommon(
|
|
||||||
uchar status, uchar data1, uchar data2, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void SystemRealTime(uchar status, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void TempoChange(int32 beatsPerMinute, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
status_t Import(const entry_ref* ref);
|
|
||||||
status_t Export(const entry_ref* ref, int32 format);
|
|
||||||
|
|
||||||
void SortEvents(bool force = false);
|
|
||||||
uint32 CountEvents() const;
|
|
||||||
|
|
||||||
uint32 CurrentEvent() const;
|
|
||||||
void SetCurrentEvent(uint32 eventNumber);
|
|
||||||
|
|
||||||
uint32 DeltaOfEvent(uint32 eventNumber) const;
|
|
||||||
uint32 EventAtDelta(uint32 time) const;
|
|
||||||
|
|
||||||
uint32 BeginTime() const;
|
|
||||||
|
|
||||||
void SetTempo(int32 beatsPerMinute);
|
|
||||||
int32 Tempo() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
friend class BMidiSynthFile;
|
|
||||||
|
|
||||||
virtual void _ReservedMidiStore1();
|
|
||||||
virtual void _ReservedMidiStore2();
|
|
||||||
virtual void _ReservedMidiStore3();
|
|
||||||
|
|
||||||
virtual void Run();
|
|
||||||
|
|
||||||
void AddEvent(BMidiEvent* event);
|
|
||||||
void SprayEvent(const BMidiEvent* event, uint32 time);
|
|
||||||
BMidiEvent* EventAt(int32 index) const;
|
|
||||||
uint32 GetEventTime(const BMidiEvent* event) const;
|
|
||||||
uint32 TicksToMilliseconds(uint32 ticks) const;
|
|
||||||
uint32 MillisecondsToTicks(uint32 ms) const;
|
|
||||||
|
|
||||||
BList* events;
|
|
||||||
int32 currentEvent;
|
|
||||||
uint32 startTime;
|
|
||||||
int32 beatsPerMinute;
|
|
||||||
int16 ticksPerBeat;
|
|
||||||
bool needsSorting;
|
|
||||||
|
|
||||||
void ReadFourCC(char* fourcc);
|
|
||||||
uint32 Read32Bit();
|
|
||||||
uint16 Read16Bit();
|
|
||||||
uint8 PeekByte();
|
|
||||||
uint8 NextByte();
|
|
||||||
void SkipBytes(uint32 length);
|
|
||||||
uint32 ReadVarLength();
|
|
||||||
void ReadChunk();
|
|
||||||
void ReadTrack();
|
|
||||||
void ReadSystemExclusive();
|
|
||||||
void ReadMetaEvent();
|
|
||||||
|
|
||||||
void WriteFourCC(char a, char b, char c, char d);
|
|
||||||
void Write32Bit(uint32 val);
|
|
||||||
void Write16Bit(uint16 val);
|
|
||||||
void WriteByte(uint8 val);
|
|
||||||
void WriteVarLength(uint32 val);
|
|
||||||
void WriteTrack();
|
|
||||||
void WriteMetaEvent(BMidiEvent* event);
|
|
||||||
|
|
||||||
BFile* file;
|
|
||||||
uint32 byteCount;
|
|
||||||
uint32 totalTicks;
|
|
||||||
uint16 numTracks;
|
|
||||||
uint16 currTrack;
|
|
||||||
uint16 format;
|
|
||||||
|
|
||||||
uint16 _reserved1[1];
|
|
||||||
|
|
||||||
bool* instruments;
|
|
||||||
synth_file_hook hookFunc;
|
|
||||||
int32 hookArg;
|
|
||||||
bool looping;
|
|
||||||
bool paused;
|
|
||||||
bool finished;
|
|
||||||
|
|
||||||
uint32 _reserved2[12];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _MIDI_STORE_H
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
|
|
||||||
#ifndef _MIDI_SYNTH_H
|
|
||||||
#define _MIDI_SYNTH_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
#include <Midi.h>
|
|
||||||
#include <Synth.h>
|
|
||||||
#include <MidiDefs.h>
|
|
||||||
|
|
||||||
class BMidiSynth : public BMidi
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
BMidiSynth();
|
|
||||||
virtual ~BMidiSynth();
|
|
||||||
|
|
||||||
status_t EnableInput(bool enable, bool loadInstruments);
|
|
||||||
bool IsInputEnabled(void) const;
|
|
||||||
|
|
||||||
void SetVolume(double volume);
|
|
||||||
double Volume(void) const;
|
|
||||||
|
|
||||||
void SetTransposition(int16 offset);
|
|
||||||
int16 Transposition(void) const;
|
|
||||||
|
|
||||||
void MuteChannel(int16 channel, bool do_mute);
|
|
||||||
void GetMuteMap(char* pChannels) const;
|
|
||||||
|
|
||||||
void SoloChannel(int16 channel, bool do_solo);
|
|
||||||
void GetSoloMap(char* pChannels) const;
|
|
||||||
|
|
||||||
status_t LoadInstrument(int16 instrument);
|
|
||||||
status_t UnloadInstrument(int16 instrument);
|
|
||||||
status_t RemapInstrument(int16 from, int16 to);
|
|
||||||
|
|
||||||
void FlushInstrumentCache(bool startStopCache);
|
|
||||||
|
|
||||||
uint32 Tick(void) const;
|
|
||||||
|
|
||||||
virtual void NoteOff(
|
|
||||||
uchar channel, uchar note, uchar velocity, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void NoteOn(
|
|
||||||
uchar channel, uchar note, uchar velocity, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void KeyPressure(
|
|
||||||
uchar channel, uchar note, uchar pressure, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void ControlChange(
|
|
||||||
uchar channel, uchar controlNumber, uchar controlValue,
|
|
||||||
uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void ProgramChange(
|
|
||||||
uchar channel, uchar programNumber, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void ChannelPressure(
|
|
||||||
uchar channel, uchar pressure, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void PitchBend(
|
|
||||||
uchar channel, uchar lsb, uchar msb, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void AllNotesOff(bool justChannel, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
void* fSongVariables;
|
|
||||||
void* fPerformanceVariables;
|
|
||||||
bool fMidiQueue;
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
friend class BSynth;
|
|
||||||
|
|
||||||
virtual void _ReservedMidiSynth1();
|
|
||||||
virtual void _ReservedMidiSynth2();
|
|
||||||
virtual void _ReservedMidiSynth3();
|
|
||||||
virtual void _ReservedMidiSynth4();
|
|
||||||
|
|
||||||
virtual void Run();
|
|
||||||
|
|
||||||
bigtime_t creationTime;
|
|
||||||
int16 transpose;
|
|
||||||
bool inputEnabled;
|
|
||||||
|
|
||||||
uint32 _reserved;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _MIDI_SYNTH_H
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
|
|
||||||
#ifndef _MIDI_SYNTH_FILE_H
|
|
||||||
#define _MIDI_SYNTH_FILE_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
#include <MidiSynth.h>
|
|
||||||
#include <Entry.h>
|
|
||||||
|
|
||||||
typedef void (*synth_file_hook)(int32 arg);
|
|
||||||
|
|
||||||
class BMidiStore;
|
|
||||||
|
|
||||||
class BMidiSynthFile : public BMidiSynth
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
BMidiSynthFile();
|
|
||||||
~BMidiSynthFile();
|
|
||||||
|
|
||||||
status_t LoadFile(const entry_ref* midi_entry_ref);
|
|
||||||
void UnloadFile(void);
|
|
||||||
|
|
||||||
virtual status_t Start(void);
|
|
||||||
virtual void Stop(void);
|
|
||||||
|
|
||||||
void Fade(void);
|
|
||||||
void Pause(void);
|
|
||||||
void Resume(void);
|
|
||||||
|
|
||||||
int32 Duration(void) const;
|
|
||||||
int32 Position(int32 ticks) const;
|
|
||||||
int32 Seek();
|
|
||||||
|
|
||||||
status_t GetPatches(int16* pArray768, int16* pReturnedCount) const;
|
|
||||||
|
|
||||||
void SetFileHook(synth_file_hook pSongHook, int32 arg);
|
|
||||||
|
|
||||||
bool IsFinished(void) const;
|
|
||||||
|
|
||||||
void ScaleTempoBy(double tempoFactor);
|
|
||||||
void SetTempo(int32 newTempoBPM);
|
|
||||||
int32 Tempo(void) const;
|
|
||||||
|
|
||||||
void EnableLooping(bool loop);
|
|
||||||
|
|
||||||
void MuteTrack(int16 track, bool do_mute);
|
|
||||||
void GetMuteMap(char* pTracks) const;
|
|
||||||
|
|
||||||
void SoloTrack(int16 track, bool do_solo);
|
|
||||||
void GetSoloMap(char* pTracks) const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
friend class BSynth;
|
|
||||||
|
|
||||||
virtual void _ReservedMidiSynthFile1();
|
|
||||||
virtual void _ReservedMidiSynthFile2();
|
|
||||||
virtual void _ReservedMidiSynthFile3();
|
|
||||||
|
|
||||||
BMidiStore* store;
|
|
||||||
|
|
||||||
int32 _reserved[3];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _MIDI_SYNTH_FILE
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
|
|
||||||
#ifndef _MIDI_TEXT_H
|
|
||||||
#define _MIDI_TEXT_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
#include <Midi.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
class BMidiText : public BMidi
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
BMidiText();
|
|
||||||
virtual ~BMidiText();
|
|
||||||
|
|
||||||
virtual void NoteOff(
|
|
||||||
uchar channel, uchar note, uchar velocity, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void NoteOn(
|
|
||||||
uchar channel, uchar note, uchar velocity, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void KeyPressure(
|
|
||||||
uchar channel, uchar note, uchar pressure, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void ControlChange(
|
|
||||||
uchar channel, uchar controlNumber, uchar controlValue,
|
|
||||||
uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void ProgramChange(
|
|
||||||
uchar channel, uchar programNumber, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void ChannelPressure(
|
|
||||||
uchar channel, uchar pressure, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void PitchBend(
|
|
||||||
uchar channel, uchar lsb, uchar msb, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void SystemExclusive(
|
|
||||||
void* data, size_t length, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void SystemCommon(
|
|
||||||
uchar status, uchar data1, uchar data2, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
virtual void SystemRealTime(uchar status, uint32 time = B_NOW);
|
|
||||||
|
|
||||||
void ResetTimer(bool start = false);
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
virtual void _ReservedMidiText1();
|
|
||||||
virtual void _ReservedMidiText2();
|
|
||||||
virtual void _ReservedMidiText3();
|
|
||||||
|
|
||||||
virtual void Run();
|
|
||||||
|
|
||||||
void WaitAndPrint(uint32 time);
|
|
||||||
|
|
||||||
uint32 startTime;
|
|
||||||
uint32 _reserved[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _MIDI_TEXT_H
|
|
||||||
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
|
|
||||||
#ifndef _SAMPLES_H
|
|
||||||
#define _SAMPLES_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
#include <Entry.h>
|
|
||||||
|
|
||||||
typedef void (*sample_exit_hook)(int32 arg);
|
|
||||||
typedef bool (*sample_loop_hook)(int32 arg);
|
|
||||||
|
|
||||||
class BSamples
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
BSamples();
|
|
||||||
virtual ~BSamples();
|
|
||||||
|
|
||||||
void Start(
|
|
||||||
void* sampleData, int32 frames, int16 bytes_per_sample,
|
|
||||||
int16 channel_count, double pitch, int32 loopStart, int32 loopEnd,
|
|
||||||
double sampleVolume, double stereoPosition, int32 hook_arg,
|
|
||||||
sample_loop_hook pLoopContinueProc, sample_exit_hook pDoneProc);
|
|
||||||
|
|
||||||
bool IsPaused(void) const;
|
|
||||||
void Pause(void);
|
|
||||||
void Resume(void);
|
|
||||||
void Stop(void);
|
|
||||||
bool IsPlaying(void) const;
|
|
||||||
|
|
||||||
void SetVolume(double newVolume);
|
|
||||||
double Volume(void) const;
|
|
||||||
|
|
||||||
void SetSamplingRate(double newRate);
|
|
||||||
double SamplingRate(void) const;
|
|
||||||
|
|
||||||
void SetPlacement(double stereoPosition);
|
|
||||||
double Placement(void) const;
|
|
||||||
|
|
||||||
void EnableReverb(bool useReverb);
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
virtual void _ReservedSamples1();
|
|
||||||
virtual void _ReservedSamples2();
|
|
||||||
virtual void _ReservedSamples3();
|
|
||||||
|
|
||||||
uint32 _reserved[8];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _SAMPLES_H
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
|
|
||||||
#ifndef _SYNTH_H
|
|
||||||
#define _SYNTH_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
#include <Entry.h>
|
|
||||||
#include <MidiDefs.h>
|
|
||||||
#include <OS.h>
|
|
||||||
|
|
||||||
typedef enum interpolation_mode
|
|
||||||
{
|
|
||||||
B_DROP_SAMPLE = 0,
|
|
||||||
B_2_POINT_INTERPOLATION,
|
|
||||||
B_LINEAR_INTERPOLATION
|
|
||||||
}
|
|
||||||
interpolation_mode;
|
|
||||||
|
|
||||||
typedef enum reverb_mode
|
|
||||||
{
|
|
||||||
B_REVERB_NONE = 1,
|
|
||||||
B_REVERB_CLOSET,
|
|
||||||
B_REVERB_GARAGE,
|
|
||||||
B_REVERB_BALLROOM,
|
|
||||||
B_REVERB_CAVERN,
|
|
||||||
B_REVERB_DUNGEON
|
|
||||||
}
|
|
||||||
reverb_mode;
|
|
||||||
|
|
||||||
typedef void (*synth_controller_hook) (
|
|
||||||
int16 channel, int16 controller, int16 value);
|
|
||||||
|
|
||||||
class BMidiSynth;
|
|
||||||
class BMidiSynthFile;
|
|
||||||
|
|
||||||
namespace BPrivate { class BSoftSynth; }
|
|
||||||
|
|
||||||
class BSynth
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
BSynth();
|
|
||||||
BSynth(synth_mode synth);
|
|
||||||
virtual ~BSynth();
|
|
||||||
|
|
||||||
status_t LoadSynthData(entry_ref* instrumentsFile);
|
|
||||||
status_t LoadSynthData(synth_mode synth);
|
|
||||||
synth_mode SynthMode(void);
|
|
||||||
|
|
||||||
void Unload(void);
|
|
||||||
bool IsLoaded(void) const;
|
|
||||||
|
|
||||||
status_t SetSamplingRate(int32 sample_rate);
|
|
||||||
int32 SamplingRate() const;
|
|
||||||
|
|
||||||
status_t SetInterpolation(interpolation_mode interp_mode);
|
|
||||||
interpolation_mode Interpolation() const;
|
|
||||||
|
|
||||||
void SetReverb(reverb_mode rev_mode);
|
|
||||||
reverb_mode Reverb() const;
|
|
||||||
|
|
||||||
status_t EnableReverb(bool reverb_enabled);
|
|
||||||
bool IsReverbEnabled() const;
|
|
||||||
|
|
||||||
status_t SetVoiceLimits(
|
|
||||||
int16 maxSynthVoices, int16 maxSampleVoices,
|
|
||||||
int16 limiterThreshhold);
|
|
||||||
|
|
||||||
int16 MaxSynthVoices(void) const;
|
|
||||||
int16 MaxSampleVoices(void) const;
|
|
||||||
int16 LimiterThreshhold(void) const;
|
|
||||||
|
|
||||||
void SetSynthVolume(double theVolume);
|
|
||||||
double SynthVolume(void) const;
|
|
||||||
|
|
||||||
void SetSampleVolume(double theVolume);
|
|
||||||
double SampleVolume(void) const;
|
|
||||||
|
|
||||||
status_t GetAudio(
|
|
||||||
int16* pLeft, int16* pRight, int32 max_samples) const;
|
|
||||||
|
|
||||||
void Pause(void);
|
|
||||||
void Resume(void);
|
|
||||||
|
|
||||||
void SetControllerHook(int16 controller, synth_controller_hook cback);
|
|
||||||
|
|
||||||
int32 CountClients(void) const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
friend BMidiSynth;
|
|
||||||
friend BMidiSynthFile;
|
|
||||||
|
|
||||||
virtual void _ReservedSynth1();
|
|
||||||
virtual void _ReservedSynth2();
|
|
||||||
virtual void _ReservedSynth3();
|
|
||||||
virtual void _ReservedSynth4();
|
|
||||||
|
|
||||||
void Init();
|
|
||||||
|
|
||||||
BPrivate::BSoftSynth* synth;
|
|
||||||
synth_mode synthMode;
|
|
||||||
int32 clientCount;
|
|
||||||
|
|
||||||
uint32 _reserved[10];
|
|
||||||
};
|
|
||||||
|
|
||||||
extern _IMPEXP_MIDI BSynth* be_synth;
|
|
||||||
|
|
||||||
#endif // _SYNTH_H
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
|
|
||||||
#ifndef _MIDI2_DEFS_H
|
|
||||||
#define _MIDI2_DEFS_H
|
|
||||||
|
|
||||||
#include <OS.h>
|
|
||||||
#include <Errors.h>
|
|
||||||
|
|
||||||
#ifndef _MIDI_CONSTANTS_
|
|
||||||
#define _MIDI_CONSTANTS_
|
|
||||||
|
|
||||||
/* Channel Message Masks */
|
|
||||||
const uchar B_NOTE_OFF = 0x80;
|
|
||||||
const uchar B_NOTE_ON = 0x90;
|
|
||||||
const uchar B_KEY_PRESSURE = 0xa0;
|
|
||||||
const uchar B_CONTROL_CHANGE = 0xb0;
|
|
||||||
const uchar B_PROGRAM_CHANGE = 0xc0;
|
|
||||||
const uchar B_CHANNEL_PRESSURE = 0xd0;
|
|
||||||
const uchar B_PITCH_BEND = 0xe0;
|
|
||||||
|
|
||||||
/* System Messages */
|
|
||||||
const uchar B_SYS_EX_START = 0xf0;
|
|
||||||
const uchar B_MIDI_TIME_CODE = 0xf1;
|
|
||||||
const uchar B_SONG_POSITION = 0xf2;
|
|
||||||
const uchar B_SONG_SELECT = 0xf3;
|
|
||||||
const uchar B_CABLE_MESSAGE = 0xf5;
|
|
||||||
const uchar B_TUNE_REQUEST = 0xf6;
|
|
||||||
const uchar B_SYS_EX_END = 0xf7;
|
|
||||||
const uchar B_TIMING_CLOCK = 0xf8;
|
|
||||||
const uchar B_START = 0xfa;
|
|
||||||
const uchar B_CONTINUE = 0xfb;
|
|
||||||
const uchar B_STOP = 0xfc;
|
|
||||||
const uchar B_ACTIVE_SENSING = 0xfe;
|
|
||||||
const uchar B_SYSTEM_RESET = 0xff;
|
|
||||||
|
|
||||||
/* Controller Numbers */
|
|
||||||
const uchar B_MODULATION = 0x01;
|
|
||||||
const uchar B_BREATH_CONTROLLER = 0x02;
|
|
||||||
const uchar B_FOOT_CONTROLLER = 0x04;
|
|
||||||
const uchar B_PORTAMENTO_TIME = 0x05;
|
|
||||||
const uchar B_DATA_ENTRY = 0x06;
|
|
||||||
const uchar B_MAIN_VOLUME = 0x07;
|
|
||||||
const uchar B_MIDI_BALANCE = 0x08;
|
|
||||||
const uchar B_PAN = 0x0a;
|
|
||||||
const uchar B_EXPRESSION_CTRL = 0x0b;
|
|
||||||
const uchar B_GENERAL_CTRL_1 = 0x10;
|
|
||||||
const uchar B_GENERAL_CTRL_2 = 0x11;
|
|
||||||
const uchar B_GENERAL_CTRL_3 = 0x12;
|
|
||||||
const uchar B_GENERAL_CTRL_4 = 0x13;
|
|
||||||
const uchar B_SUSTAIN_PEDAL = 0x40;
|
|
||||||
const uchar B_PORTAMENTO = 0x41;
|
|
||||||
const uchar B_SOSTENUTO = 0x42;
|
|
||||||
const uchar B_SOFT_PEDAL = 0x43;
|
|
||||||
const uchar B_HOLD_2 = 0x45;
|
|
||||||
const uchar B_GENERAL_CTRL_5 = 0x50;
|
|
||||||
const uchar B_GENERAL_CTRL_6 = 0x51;
|
|
||||||
const uchar B_TEMPO_CHANGE = 0x51;
|
|
||||||
const uchar B_GENERAL_CTRL_7 = 0x52;
|
|
||||||
const uchar B_GENERAL_CTRL_8 = 0x53;
|
|
||||||
const uchar B_EFFECTS_DEPTH = 0x5b;
|
|
||||||
const uchar B_TREMOLO_DEPTH = 0x5c;
|
|
||||||
const uchar B_CHORUS_DEPTH = 0x5d;
|
|
||||||
const uchar B_CELESTE_DEPTH = 0x5e;
|
|
||||||
const uchar B_PHASER_DEPTH = 0x5f;
|
|
||||||
const uchar B_DATA_INCREMENT = 0x60;
|
|
||||||
const uchar B_DATA_DECREMENT = 0x61;
|
|
||||||
const uchar B_RESET_ALL_CONTROLLERS = 0x79;
|
|
||||||
const uchar B_LOCAL_CONTROL = 0x7a;
|
|
||||||
const uchar B_ALL_NOTES_OFF = 0x7b;
|
|
||||||
const uchar B_OMNI_MODE_OFF = 0x7c;
|
|
||||||
const uchar B_OMNI_MODE_ON = 0x7d;
|
|
||||||
const uchar B_MONO_MODE_ON = 0x7e;
|
|
||||||
const uchar B_POLY_MODE_ON = 0x7f;
|
|
||||||
|
|
||||||
#endif // _MIDI_CONSTANTS_
|
|
||||||
|
|
||||||
#endif // _MIDI2_DEFS_H
|
|
||||||
@@ -1,117 +0,0 @@
|
|||||||
|
|
||||||
#ifndef _MIDI_CONSUMER_H
|
|
||||||
#define _MIDI_CONSUMER_H
|
|
||||||
|
|
||||||
#include <MidiEndpoint.h>
|
|
||||||
|
|
||||||
namespace BPrivate { class BMidiRosterLooper; }
|
|
||||||
|
|
||||||
class BMidiConsumer : public BMidiEndpoint
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
bigtime_t Latency() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
friend class BMidiLocalConsumer;
|
|
||||||
friend class BMidiLocalProducer;
|
|
||||||
friend class BMidiRoster;
|
|
||||||
friend class BPrivate::BMidiRosterLooper;
|
|
||||||
|
|
||||||
BMidiConsumer(const char* name = NULL);
|
|
||||||
virtual ~BMidiConsumer();
|
|
||||||
|
|
||||||
virtual void _Reserved1();
|
|
||||||
virtual void _Reserved2();
|
|
||||||
virtual void _Reserved3();
|
|
||||||
virtual void _Reserved4();
|
|
||||||
virtual void _Reserved5();
|
|
||||||
virtual void _Reserved6();
|
|
||||||
virtual void _Reserved7();
|
|
||||||
virtual void _Reserved8();
|
|
||||||
|
|
||||||
port_id port;
|
|
||||||
bigtime_t latency;
|
|
||||||
|
|
||||||
uint32 _reserved[2];
|
|
||||||
};
|
|
||||||
|
|
||||||
class BMidiLocalConsumer : public BMidiConsumer
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
BMidiLocalConsumer(const char* name = NULL);
|
|
||||||
|
|
||||||
void SetLatency(bigtime_t latency);
|
|
||||||
int32 GetProducerID(void);
|
|
||||||
|
|
||||||
void SetTimeout(bigtime_t when, void* data);
|
|
||||||
virtual void Timeout(void* data);
|
|
||||||
|
|
||||||
virtual void Data(
|
|
||||||
uchar* data, size_t length, bool atomic, bigtime_t time);
|
|
||||||
|
|
||||||
virtual void NoteOff(
|
|
||||||
uchar channel, uchar note, uchar velocity, bigtime_t time);
|
|
||||||
|
|
||||||
virtual void NoteOn(
|
|
||||||
uchar channel, uchar note, uchar velocity, bigtime_t time);
|
|
||||||
|
|
||||||
virtual void KeyPressure(
|
|
||||||
uchar channel, uchar note, uchar pressure, bigtime_t time);
|
|
||||||
|
|
||||||
virtual void ControlChange(
|
|
||||||
uchar channel, uchar controlNumber, uchar controlValue,
|
|
||||||
bigtime_t time);
|
|
||||||
|
|
||||||
virtual void ProgramChange(
|
|
||||||
uchar channel, uchar programNumber, bigtime_t time);
|
|
||||||
|
|
||||||
virtual void ChannelPressure(
|
|
||||||
uchar channel, uchar pressure, bigtime_t time);
|
|
||||||
|
|
||||||
virtual void PitchBend(
|
|
||||||
uchar channel, uchar lsb, uchar msb, bigtime_t time);
|
|
||||||
|
|
||||||
virtual void SystemExclusive(
|
|
||||||
void* data, size_t length, bigtime_t time);
|
|
||||||
|
|
||||||
virtual void SystemCommon(
|
|
||||||
uchar status, uchar data1, uchar data2, bigtime_t time);
|
|
||||||
|
|
||||||
virtual void SystemRealTime(uchar status, bigtime_t time);
|
|
||||||
|
|
||||||
virtual void TempoChange(int32 beatsPerMinute, bigtime_t time);
|
|
||||||
|
|
||||||
virtual void AllNotesOff(bool justChannel, bigtime_t time);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
~BMidiLocalConsumer();
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
friend class BMidiRoster;
|
|
||||||
friend int32 _midi_event_thread(void*);
|
|
||||||
|
|
||||||
virtual void _Reserved1();
|
|
||||||
virtual void _Reserved2();
|
|
||||||
virtual void _Reserved3();
|
|
||||||
virtual void _Reserved4();
|
|
||||||
virtual void _Reserved5();
|
|
||||||
virtual void _Reserved6();
|
|
||||||
virtual void _Reserved7();
|
|
||||||
virtual void _Reserved8();
|
|
||||||
|
|
||||||
int32 EventThread();
|
|
||||||
|
|
||||||
bigtime_t timeout;
|
|
||||||
void* timeoutData;
|
|
||||||
int32 currentProducer;
|
|
||||||
thread_id thread;
|
|
||||||
|
|
||||||
uint32 _reserved[1];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _MIDI_CONSUMER_H
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
|
|
||||||
#ifndef _MIDI_ENDPOINT_H
|
|
||||||
#define _MIDI_ENDPOINT_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
#include <Midi2Defs.h>
|
|
||||||
#include <OS.h>
|
|
||||||
#include <String.h>
|
|
||||||
|
|
||||||
class BMidiProducer;
|
|
||||||
class BMidiConsumer;
|
|
||||||
|
|
||||||
namespace BPrivate { class BMidiRosterLooper; }
|
|
||||||
|
|
||||||
class BMidiEndpoint
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
const char* Name() const;
|
|
||||||
void SetName(const char* name);
|
|
||||||
|
|
||||||
int32 ID() const;
|
|
||||||
|
|
||||||
bool IsProducer() const;
|
|
||||||
bool IsConsumer() const;
|
|
||||||
bool IsRemote() const;
|
|
||||||
bool IsLocal() const;
|
|
||||||
bool IsPersistent() const;
|
|
||||||
bool IsValid() const;
|
|
||||||
|
|
||||||
status_t Release();
|
|
||||||
status_t Acquire();
|
|
||||||
|
|
||||||
status_t SetProperties(const BMessage* properties);
|
|
||||||
status_t GetProperties(BMessage* properties) const;
|
|
||||||
|
|
||||||
status_t Register(void);
|
|
||||||
status_t Unregister(void);
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
friend class BMidiConsumer;
|
|
||||||
friend class BMidiLocalConsumer;
|
|
||||||
friend class BMidiLocalProducer;
|
|
||||||
friend class BMidiProducer;
|
|
||||||
friend class BMidiRoster;
|
|
||||||
friend class BPrivate::BMidiRosterLooper;
|
|
||||||
|
|
||||||
BMidiEndpoint(const char* name);
|
|
||||||
virtual ~BMidiEndpoint();
|
|
||||||
|
|
||||||
virtual void _Reserved1();
|
|
||||||
virtual void _Reserved2();
|
|
||||||
virtual void _Reserved3();
|
|
||||||
virtual void _Reserved4();
|
|
||||||
virtual void _Reserved5();
|
|
||||||
virtual void _Reserved6();
|
|
||||||
virtual void _Reserved7();
|
|
||||||
virtual void _Reserved8();
|
|
||||||
|
|
||||||
status_t SendRegisterRequest(bool);
|
|
||||||
status_t SendChangeRequest(BMessage*);
|
|
||||||
|
|
||||||
bool IsRegistered() const;
|
|
||||||
bool LockLooper() const;
|
|
||||||
void UnlockLooper() const;
|
|
||||||
|
|
||||||
int32 id;
|
|
||||||
BString name;
|
|
||||||
int32 refCount;
|
|
||||||
BMessage* properties;
|
|
||||||
bool isLocal;
|
|
||||||
bool isConsumer;
|
|
||||||
bool isRegistered;
|
|
||||||
bool isAlive;
|
|
||||||
|
|
||||||
uint32 _reserved[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _MIDI_ENDPOINT_H
|
|
||||||
@@ -1,127 +0,0 @@
|
|||||||
|
|
||||||
#ifndef _MIDI_PRODUCER_H
|
|
||||||
#define _MIDI_PRODUCER_H
|
|
||||||
|
|
||||||
#include <Locker.h>
|
|
||||||
#include <MidiEndpoint.h>
|
|
||||||
|
|
||||||
class BList;
|
|
||||||
|
|
||||||
namespace BPrivate { class BMidiRosterLooper; }
|
|
||||||
|
|
||||||
class BMidiProducer : public BMidiEndpoint
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
status_t Connect(BMidiConsumer* cons);
|
|
||||||
status_t Disconnect(BMidiConsumer* cons);
|
|
||||||
bool IsConnected(BMidiConsumer* cons) const;
|
|
||||||
BList* Connections() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
friend class BMidiLocalProducer;
|
|
||||||
friend class BMidiRoster;
|
|
||||||
friend class BPrivate::BMidiRosterLooper;
|
|
||||||
|
|
||||||
BMidiProducer(const char* name = NULL);
|
|
||||||
virtual ~BMidiProducer();
|
|
||||||
|
|
||||||
virtual void _Reserved1();
|
|
||||||
virtual void _Reserved2();
|
|
||||||
virtual void _Reserved3();
|
|
||||||
virtual void _Reserved4();
|
|
||||||
virtual void _Reserved5();
|
|
||||||
virtual void _Reserved6();
|
|
||||||
virtual void _Reserved7();
|
|
||||||
virtual void _Reserved8();
|
|
||||||
|
|
||||||
status_t SendConnectRequest(BMidiConsumer*, bool);
|
|
||||||
void ConnectionMade(BMidiConsumer*);
|
|
||||||
bool ConnectionBroken(BMidiConsumer*);
|
|
||||||
|
|
||||||
int32 CountConsumers() const;
|
|
||||||
BMidiConsumer* ConsumerAt(int32) const;
|
|
||||||
|
|
||||||
bool LockProducer() const;
|
|
||||||
void UnlockProducer() const;
|
|
||||||
|
|
||||||
BList* connections;
|
|
||||||
BLocker* locker;
|
|
||||||
|
|
||||||
uint32 _reserved[10];
|
|
||||||
};
|
|
||||||
|
|
||||||
class BMidiLocalProducer : public BMidiProducer
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
BMidiLocalProducer(const char* name = NULL);
|
|
||||||
|
|
||||||
virtual void Connected(BMidiConsumer* cons);
|
|
||||||
virtual void Disconnected(BMidiConsumer* cons);
|
|
||||||
|
|
||||||
void SprayData(
|
|
||||||
void* data, size_t length, bool atomic = false,
|
|
||||||
bigtime_t time = 0) const;
|
|
||||||
|
|
||||||
void SprayNoteOff(
|
|
||||||
uchar channel, uchar note, uchar velocity,
|
|
||||||
bigtime_t time = 0) const;
|
|
||||||
|
|
||||||
void SprayNoteOn(
|
|
||||||
uchar channel, uchar note, uchar velocity,
|
|
||||||
bigtime_t time = 0) const;
|
|
||||||
|
|
||||||
void SprayKeyPressure(
|
|
||||||
uchar channel, uchar note, uchar pressure,
|
|
||||||
bigtime_t time = 0) const;
|
|
||||||
|
|
||||||
void SprayControlChange(
|
|
||||||
uchar channel, uchar controlNumber, uchar controlValue,
|
|
||||||
bigtime_t time = 0) const;
|
|
||||||
|
|
||||||
void SprayProgramChange(
|
|
||||||
uchar channel, uchar programNumber, bigtime_t time = 0) const;
|
|
||||||
|
|
||||||
void SprayChannelPressure(
|
|
||||||
uchar channel, uchar pressure, bigtime_t time = 0) const;
|
|
||||||
|
|
||||||
void SprayPitchBend(
|
|
||||||
uchar channel, uchar lsb, uchar msb, bigtime_t time = 0) const;
|
|
||||||
|
|
||||||
void SpraySystemExclusive(
|
|
||||||
void* data, size_t length, bigtime_t time = 0) const;
|
|
||||||
|
|
||||||
void SpraySystemCommon(
|
|
||||||
uchar status, uchar data1, uchar data2, bigtime_t time = 0) const;
|
|
||||||
|
|
||||||
void SpraySystemRealTime(
|
|
||||||
uchar status, bigtime_t time = 0) const;
|
|
||||||
|
|
||||||
void SprayTempoChange(
|
|
||||||
int32 beatsPerMinute, bigtime_t time = 0) const;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
~BMidiLocalProducer();
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
void SprayEvent(
|
|
||||||
const void* data, size_t length, bool atomic, bigtime_t time,
|
|
||||||
bool sysex = false) const;
|
|
||||||
|
|
||||||
virtual void _Reserved1();
|
|
||||||
virtual void _Reserved2();
|
|
||||||
virtual void _Reserved3();
|
|
||||||
virtual void _Reserved4();
|
|
||||||
virtual void _Reserved5();
|
|
||||||
virtual void _Reserved6();
|
|
||||||
virtual void _Reserved7();
|
|
||||||
virtual void _Reserved8();
|
|
||||||
|
|
||||||
uint32 _reserved[2];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _MIDI_PRODUCER_H
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
|
|
||||||
#ifndef _MIDI_ROSTER_H
|
|
||||||
#define _MIDI_ROSTER_H
|
|
||||||
|
|
||||||
#include <Application.h>
|
|
||||||
#include <MidiEndpoint.h>
|
|
||||||
|
|
||||||
enum BMidiOp
|
|
||||||
{
|
|
||||||
B_MIDI_NO_OP,
|
|
||||||
B_MIDI_REGISTERED,
|
|
||||||
B_MIDI_UNREGISTERED,
|
|
||||||
B_MIDI_CONNECTED,
|
|
||||||
B_MIDI_DISCONNECTED,
|
|
||||||
B_MIDI_CHANGED_NAME,
|
|
||||||
B_MIDI_CHANGED_LATENCY,
|
|
||||||
B_MIDI_CHANGED_PROPERTIES
|
|
||||||
};
|
|
||||||
|
|
||||||
#define B_MIDI_EVENT 'MIDI'
|
|
||||||
|
|
||||||
class BMidiProducer;
|
|
||||||
class BMidiConsumer;
|
|
||||||
|
|
||||||
namespace BPrivate
|
|
||||||
{
|
|
||||||
class BMidiRosterLooper;
|
|
||||||
struct BMidiRosterKiller;
|
|
||||||
}
|
|
||||||
|
|
||||||
class BMidiRoster
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
static BMidiEndpoint* NextEndpoint(int32* id);
|
|
||||||
static BMidiProducer* NextProducer(int32* id);
|
|
||||||
static BMidiConsumer* NextConsumer(int32* id);
|
|
||||||
|
|
||||||
static BMidiEndpoint* FindEndpoint(int32 id, bool localOnly = false);
|
|
||||||
static BMidiProducer* FindProducer(int32 id, bool localOnly = false);
|
|
||||||
static BMidiConsumer* FindConsumer(int32 id, bool localOnly = false);
|
|
||||||
|
|
||||||
static void StartWatching(const BMessenger* msngr);
|
|
||||||
static void StopWatching();
|
|
||||||
|
|
||||||
static status_t Register(BMidiEndpoint* endp);
|
|
||||||
static status_t Unregister(BMidiEndpoint* endp);
|
|
||||||
|
|
||||||
static BMidiRoster* MidiRoster();
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
friend class BMidiConsumer;
|
|
||||||
friend class BMidiEndpoint;
|
|
||||||
friend class BMidiLocalProducer;
|
|
||||||
friend class BMidiLocalConsumer;
|
|
||||||
friend class BMidiProducer;
|
|
||||||
friend class BPrivate::BMidiRosterLooper;
|
|
||||||
friend struct BPrivate::BMidiRosterKiller;
|
|
||||||
|
|
||||||
BMidiRoster();
|
|
||||||
virtual ~BMidiRoster();
|
|
||||||
|
|
||||||
virtual void _Reserved1();
|
|
||||||
virtual void _Reserved2();
|
|
||||||
virtual void _Reserved3();
|
|
||||||
virtual void _Reserved4();
|
|
||||||
virtual void _Reserved5();
|
|
||||||
virtual void _Reserved6();
|
|
||||||
virtual void _Reserved7();
|
|
||||||
virtual void _Reserved8();
|
|
||||||
|
|
||||||
void CreateLocal(BMidiEndpoint*);
|
|
||||||
void DeleteLocal(BMidiEndpoint*);
|
|
||||||
|
|
||||||
status_t SendRequest(BMessage*, BMessage*);
|
|
||||||
|
|
||||||
BPrivate::BMidiRosterLooper* looper;
|
|
||||||
BMessenger* server;
|
|
||||||
|
|
||||||
uint32 _reserved[16];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _MIDI_ROSTER_H
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
/*=--------------------------------------------------------------------------=*
|
|
||||||
* NetAddress.h -- Interface definition for the BNetAddress class.
|
|
||||||
*
|
|
||||||
* Written by S.T. Mansfield ([email protected])
|
|
||||||
*=--------------------------------------------------------------------------=*
|
|
||||||
* Copyright (c) 2002, The OpenBeOS project.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*=--------------------------------------------------------------------------=*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _NETADDRESS_H
|
|
||||||
#define _NETADDRESS_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
#include <SupportDefs.h>
|
|
||||||
#include <Archivable.h>
|
|
||||||
#include <socket.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Empty forward declaration to satisfy the GetImpl method.
|
|
||||||
*/
|
|
||||||
class NLAddress;
|
|
||||||
|
|
||||||
class BNetAddress : public BArchivable
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BNetAddress( BMessage* archive );
|
|
||||||
virtual ~BNetAddress();
|
|
||||||
|
|
||||||
virtual status_t Archive( BMessage* into, bool deep = true ) const;
|
|
||||||
static BArchivable* Instantiate( BMessage* archive );
|
|
||||||
|
|
||||||
BNetAddress( const char* hostname = 0, unsigned short port = 0 );
|
|
||||||
BNetAddress( const struct sockaddr_in& sa );
|
|
||||||
BNetAddress( in_addr addr, int port = 0 );
|
|
||||||
BNetAddress( uint32 addr, int port = 0 );
|
|
||||||
BNetAddress( const BNetAddress& refparam );
|
|
||||||
BNetAddress( const char* hostname, const char* protocol, const char* service );
|
|
||||||
|
|
||||||
BNetAddress& operator=( const BNetAddress& );
|
|
||||||
|
|
||||||
status_t InitCheck();
|
|
||||||
|
|
||||||
status_t SetTo( const char* hostname, const char* protocol, const char* service );
|
|
||||||
status_t SetTo( const char* hostname = NULL, unsigned short port = 0 );
|
|
||||||
status_t SetTo( const struct sockaddr_in& sa );
|
|
||||||
status_t SetTo( in_addr addr, int port = 0 );
|
|
||||||
status_t SetTo( uint32 addr = INADDR_ANY, int port = 0 );
|
|
||||||
|
|
||||||
status_t GetAddr( char* hostname = NULL, unsigned short* port = NULL ) const;
|
|
||||||
status_t GetAddr( struct sockaddr_in& sa ) const;
|
|
||||||
status_t GetAddr( in_addr& addr, unsigned short* port = NULL ) const;
|
|
||||||
|
|
||||||
inline NLAddress *GetImpl() const;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
status_t m_init;
|
|
||||||
|
|
||||||
private:
|
|
||||||
virtual void _ReservedBNetAddressFBCCruft1();
|
|
||||||
virtual void _ReservedBNetAddressFBCCruft2();
|
|
||||||
virtual void _ReservedBNetAddressFBCCruft3();
|
|
||||||
virtual void _ReservedBNetAddressFBCCruft4();
|
|
||||||
virtual void _ReservedBNetAddressFBCCruft5();
|
|
||||||
virtual void _ReservedBNetAddressFBCCruft6();
|
|
||||||
|
|
||||||
// Private copy helper.
|
|
||||||
status_t clone( const BNetAddress& RefParam );
|
|
||||||
|
|
||||||
int32 fFamily; // Encapsulation of sockaddr::sin_family
|
|
||||||
int32 fPort; // Encapsulation of sockaddr::sin_port
|
|
||||||
int32 fAddress; // Encapsulation of sockaddr::sin_addr.s_addr
|
|
||||||
|
|
||||||
// Not used, here to maintain R5 binary compatiblilty.
|
|
||||||
int32 fPrivateData[6];
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
inline NLAddress* BNetAddress::GetImpl( void ) const
|
|
||||||
{
|
|
||||||
return NULL; // No Nettle backward compatibility
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // <-- #ifndef _NETADDRESS_H
|
|
||||||
|
|
||||||
|
|
||||||
/*=------------------------------------------------------------------- End -=*/
|
|
||||||
|
|
||||||
@@ -1,128 +0,0 @@
|
|||||||
/*=--------------------------------------------------------------------------=*
|
|
||||||
* NetBuffer.h -- Interface definition for the BNetBuffer class.
|
|
||||||
*
|
|
||||||
* Written by S.T. Mansfield ([email protected])
|
|
||||||
*=--------------------------------------------------------------------------=*
|
|
||||||
* Copyright (c) 2002, The OpenBeOS project.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*=--------------------------------------------------------------------------=*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _NETBUFFER_H
|
|
||||||
#define _NETBUFFER_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
#include <SupportDefs.h>
|
|
||||||
#include <Archivable.h>
|
|
||||||
#include <socket.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Empty forward declaration to satisfy the GetImpl method.
|
|
||||||
*/
|
|
||||||
class NLPacket;
|
|
||||||
|
|
||||||
class BNetBuffer : public BArchivable
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BNetBuffer(size_t size = 0);
|
|
||||||
virtual ~BNetBuffer();
|
|
||||||
|
|
||||||
status_t InitCheck();
|
|
||||||
|
|
||||||
BNetBuffer(BMessage *archive);
|
|
||||||
virtual status_t Archive(BMessage *into, bool deep = true) const;
|
|
||||||
static BArchivable *Instantiate(BMessage *archive);
|
|
||||||
|
|
||||||
BNetBuffer(const BNetBuffer &);
|
|
||||||
BNetBuffer& operator=(const BNetBuffer &);
|
|
||||||
|
|
||||||
// Mutators.
|
|
||||||
status_t AppendInt8(int8);
|
|
||||||
status_t AppendUint8(uint8);
|
|
||||||
status_t AppendInt16(int16);
|
|
||||||
status_t AppendUint16(uint16);
|
|
||||||
status_t AppendInt32(int32);
|
|
||||||
status_t AppendUint32(uint32);
|
|
||||||
status_t AppendFloat(float);
|
|
||||||
status_t AppendDouble(double);
|
|
||||||
status_t AppendString(const char *);
|
|
||||||
status_t AppendData(const void *, size_t);
|
|
||||||
status_t AppendMessage(const BMessage &);
|
|
||||||
status_t AppendInt64(int64);
|
|
||||||
status_t AppendUint64(uint64);
|
|
||||||
|
|
||||||
status_t RemoveInt8(int8 &);
|
|
||||||
status_t RemoveUint8(uint8 &);
|
|
||||||
status_t RemoveInt16(int16 &);
|
|
||||||
status_t RemoveUint16(uint16 &);
|
|
||||||
status_t RemoveInt32(int32 &);
|
|
||||||
status_t RemoveUint32(uint32 &);
|
|
||||||
status_t RemoveFloat(float &);
|
|
||||||
status_t RemoveDouble(double &);
|
|
||||||
status_t RemoveString(char *, size_t);
|
|
||||||
status_t RemoveData(void *, size_t);
|
|
||||||
status_t RemoveMessage(BMessage &);
|
|
||||||
status_t RemoveInt64(int64 &);
|
|
||||||
status_t RemoveUint64(uint64 &);
|
|
||||||
|
|
||||||
// Accessors.
|
|
||||||
unsigned char *Data() const;
|
|
||||||
size_t Size() const;
|
|
||||||
size_t BytesRemaining() const;
|
|
||||||
|
|
||||||
inline NLPacket *GetImpl() const;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// Attributes.
|
|
||||||
status_t m_init;
|
|
||||||
|
|
||||||
private:
|
|
||||||
virtual void _ReservedBNetBufferFBCCruft1();
|
|
||||||
virtual void _ReservedBNetBufferFBCCruft2();
|
|
||||||
virtual void _ReservedBNetBufferFBCCruft3();
|
|
||||||
virtual void _ReservedBNetBufferFBCCruft4();
|
|
||||||
virtual void _ReservedBNetBufferFBCCruft5();
|
|
||||||
virtual void _ReservedBNetBufferFBCCruft6();
|
|
||||||
|
|
||||||
unsigned char* fData;
|
|
||||||
int32 fDataSize;
|
|
||||||
int32 fStackSize;
|
|
||||||
int32 fCapacity;
|
|
||||||
|
|
||||||
// Not used, here to maintain R5 binary compatiblilty.
|
|
||||||
int32 fPrivateData[5];
|
|
||||||
|
|
||||||
// Private class helpers.
|
|
||||||
status_t clone( const BNetBuffer& );
|
|
||||||
status_t dpop( int32, int32, void* );
|
|
||||||
status_t dpush( int32, int32, const void* );
|
|
||||||
status_t resize( int32 NewSize, bool RegenStack = false );
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
inline NLPacket* BNetBuffer::GetImpl( void ) const
|
|
||||||
{
|
|
||||||
return NULL; // No Nettle backward compatibility
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // <-- #ifndef _NETBUFFER_H
|
|
||||||
|
|
||||||
/*=------------------------------------------------------------------- End -=*/
|
|
||||||
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
/*=--------------------------------------------------------------------------=*
|
|
||||||
* NetDebug.h -- Interface definition for the BNetDebug class.
|
|
||||||
*
|
|
||||||
* Written by S.T. Mansfield ([email protected])
|
|
||||||
*=--------------------------------------------------------------------------=*
|
|
||||||
* Copyright (c) 2002, The OpenBeOS project.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*=--------------------------------------------------------------------------=*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _NETDEBUG_H
|
|
||||||
#define _NETDEBUG_H
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Net debugging class
|
|
||||||
*
|
|
||||||
* Use this class to print informative messages and dump data
|
|
||||||
* to stderr and provide control over whether debug messages
|
|
||||||
* get printed or not.
|
|
||||||
*/
|
|
||||||
|
|
||||||
class BNetDebug
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// turn debugging message output on or off
|
|
||||||
static void Enable(bool);
|
|
||||||
|
|
||||||
// test debugging message output state
|
|
||||||
static bool IsEnabled();
|
|
||||||
|
|
||||||
// print a debugging message
|
|
||||||
static void Print(const char *msg);
|
|
||||||
|
|
||||||
// dump raw data in a nice hd-like format
|
|
||||||
static void Dump(const char *data, size_t size, const char *title);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // <-- #ifndef _NETDEBUG_H
|
|
||||||
|
|
||||||
/*=------------------------------------------------------------------- End -=*/
|
|
||||||
|
|
||||||
@@ -1,283 +0,0 @@
|
|||||||
//------------------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2001-2004, Haiku
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
|
||||||
// to deal in the Software without restriction, including without limitation
|
|
||||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
// and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
// DEALINGS IN THE SOFTWARE.
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#ifndef _NETENDPOINT_H
|
|
||||||
#define _NETENDPOINT_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
#include <SupportDefs.h>
|
|
||||||
#include <Archivable.h>
|
|
||||||
|
|
||||||
#include <sys/socket.h>
|
|
||||||
|
|
||||||
#include <NetAddress.h>
|
|
||||||
#include <NetBuffer.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BNetEndpoint
|
|
||||||
*
|
|
||||||
* BNetEndpoint is an object that implements a networking endpoint abstraction.
|
|
||||||
* Think of it as an object-oriented socket. BNetEndpoint provides
|
|
||||||
* various ways to send and receive data, establish network connections, bind
|
|
||||||
* to local addresses, and listen for and accept new connections.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Nettle forward declarations
|
|
||||||
class NLEndpoint;
|
|
||||||
|
|
||||||
|
|
||||||
class BNetEndpoint : public BArchivable
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
BNetEndpoint(int type = SOCK_STREAM);
|
|
||||||
BNetEndpoint(int family, int type, int protocol);
|
|
||||||
BNetEndpoint(const BNetEndpoint &);
|
|
||||||
BNetEndpoint(BMessage *archive);
|
|
||||||
|
|
||||||
BNetEndpoint & operator=(const BNetEndpoint &);
|
|
||||||
|
|
||||||
virtual ~BNetEndpoint();
|
|
||||||
|
|
||||||
/*
|
|
||||||
* It is important to call InitCheck() after creating an instance of this class.
|
|
||||||
*/
|
|
||||||
status_t InitCheck();
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* When a BNetEndpoint is archived, it saves various state information
|
|
||||||
* which will allow reinstantiation later. For example, if a BNetEndpoint
|
|
||||||
* that is connected to a remote FTP server is archived, when the archive
|
|
||||||
* is later instantiated the connection to the FTP server will be reopened
|
|
||||||
* automatically.
|
|
||||||
*/
|
|
||||||
virtual status_t Archive(BMessage *into, bool deep = true) const;
|
|
||||||
static BArchivable * Instantiate(BMessage *archive);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BNetEndpoint::SetProtocol()
|
|
||||||
*
|
|
||||||
* allows the protocol type to be changed from stream
|
|
||||||
* to datagram and vice-versa. The current connection (if any) is closed and
|
|
||||||
* the BNetEndpoint's state is reset.
|
|
||||||
*
|
|
||||||
* Returns B_OK if successful, B_ERROR otherwise.
|
|
||||||
*/
|
|
||||||
|
|
||||||
status_t SetProtocol(int proto);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* These functions allow various options to be set for data communications.
|
|
||||||
* The first allows any option to be set; the latter two turn nonblocking
|
|
||||||
* I/O on or off, and toggle reuseaddr respectively. The default is for
|
|
||||||
* *blocking* I/O and for reuseaddr to be OFF.
|
|
||||||
*
|
|
||||||
* Returns 0 if successful, -1 otherwise.
|
|
||||||
*/
|
|
||||||
int SetOption(int32 opt, int32 lev, const void *data, unsigned int datasize);
|
|
||||||
int SetNonBlocking(bool on = true);
|
|
||||||
int SetReuseAddr(bool on = true);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* LocalAddr() returns a BNetAddress corresponding to the local address used by this
|
|
||||||
* BNetEndpoint. RemoteAddr() returns a BNetAddress corresponding to the address of
|
|
||||||
* the remote peer we are connected to, if using a connected stream protocol.
|
|
||||||
*/
|
|
||||||
const BNetAddress & LocalAddr();
|
|
||||||
const BNetAddress & RemoteAddr();
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BNetEndpoint::Socket() returns the actual socket used for data communications.
|
|
||||||
*/
|
|
||||||
int Socket() const;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BNetEndpoint::Close()
|
|
||||||
*
|
|
||||||
* Close the current BNetEndpoint, terminating any existing connection (if any)
|
|
||||||
* and discarding unread data.
|
|
||||||
*/
|
|
||||||
|
|
||||||
virtual void Close();
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BNetEndpoint::Bind()
|
|
||||||
*
|
|
||||||
* Bind this BNetEndpoint to a local address. Calling bind() without specifying
|
|
||||||
* a BNetAddress or port number binds to a random local port. The actual port
|
|
||||||
* bound to can be determined by a subsequent call to BNetEndpoint::LocalAddr().
|
|
||||||
*
|
|
||||||
* Returns B_OK if successful, B_ERROR otherwise.
|
|
||||||
*/
|
|
||||||
virtual status_t Bind(const BNetAddress &addr);
|
|
||||||
virtual status_t Bind(int port = 0);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BNetEndpoint::Connect()
|
|
||||||
*
|
|
||||||
* Connect this BNetEndpoint to a remote address. The first version takes
|
|
||||||
* a BNetAddress already set to the remote address as an argument; the other
|
|
||||||
* one internally constructs a BNetAddress from the passed-in hostname and port
|
|
||||||
* number.
|
|
||||||
*
|
|
||||||
* Returns B_OK if successful, B_ERROR otherwise.
|
|
||||||
*/
|
|
||||||
virtual status_t Connect(const BNetAddress &addr);
|
|
||||||
virtual status_t Connect(const char *addr, int port);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BNetEndpoint::Listen()
|
|
||||||
*
|
|
||||||
* Specify the number of pending incoming connection attemps to queue.
|
|
||||||
* This is the number of connection requests that will be allowed in between
|
|
||||||
* calls to BNetEndpoint::accept(). When this number is exceeded, new
|
|
||||||
* connection attempts are refused until BNetEndpoint::accept() is called.
|
|
||||||
*
|
|
||||||
* Returns B_OK if successful, B_ERROR otherwise.
|
|
||||||
*/
|
|
||||||
|
|
||||||
virtual status_t Listen(int backlog = 5);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BNetEndpoint::Accept()
|
|
||||||
*
|
|
||||||
* Accepts new connections to a bound stream protocol BNetEndpoint.
|
|
||||||
* Blocks for timeout milleseconds (defaults to forever) waiting for
|
|
||||||
* new connections. Returns a BNetEndpoint with the same characteristics
|
|
||||||
* as the one calling BNetEndpoint::Accept(), the new one representing the new
|
|
||||||
* connection. This returned BNetEndpoint is ready for communication and
|
|
||||||
* must be deleted at a later time using delete.
|
|
||||||
*/
|
|
||||||
|
|
||||||
virtual BNetEndpoint *Accept(int32 timeout = -1);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BNetEndpoint::Error() will return the integer error code (set by the OS)
|
|
||||||
* for the last send/recv error. Likewise, BNetEndpoint::ErrorStr() returns
|
|
||||||
* a string describing the error.
|
|
||||||
*/
|
|
||||||
int Error() const;
|
|
||||||
char *ErrorStr() const;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BNetEndpoint::Send()
|
|
||||||
*
|
|
||||||
* Send data to the remote end of the connection. If not connected, fails.
|
|
||||||
* If using a datagram protocol, fails unless BNetEndpoint::Connect()
|
|
||||||
* has been called, which caches the address we are sending to. The first
|
|
||||||
* version sends an arbitrary buffer of size size; the second sends the
|
|
||||||
* contents of a BNetBuffer. Both return the number of bytes actually
|
|
||||||
* sent, or -1 on failure.
|
|
||||||
*/
|
|
||||||
virtual int32 Send(const void *buf, size_t size, int flags = 0);
|
|
||||||
virtual int32 Send(BNetBuffer &pack, int flags = 0);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BNetEndpoint::SendTo()
|
|
||||||
*
|
|
||||||
* Send data to the address specified by the passed-in BNetAddress object.
|
|
||||||
* Fails if not using a datagram protocol. The first version sends
|
|
||||||
* an arbitrary buffer of size size; the second sends the contents of a
|
|
||||||
* BNetBuffer. Both return the number of bytes actually sent,
|
|
||||||
* and return -1 on failure.
|
|
||||||
*/
|
|
||||||
|
|
||||||
virtual int32 SendTo(const void *buf, size_t size, const BNetAddress &to, int flags = 0);
|
|
||||||
virtual int32 SendTo(BNetBuffer &pack, const BNetAddress &to, int flags = 0);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BNetEndpoint::SetTimeout()
|
|
||||||
*
|
|
||||||
* Sets an optional timeout (in microseconds) for calls to BNetEndpoint::Receive()
|
|
||||||
* and BNetEndpoint::ReceiveFrom(). Causes these calls to time out after the specified
|
|
||||||
* number of microseconds when in blocking mode.
|
|
||||||
*/
|
|
||||||
void SetTimeout(bigtime_t usec);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BNetEndpoint::Receive()
|
|
||||||
*
|
|
||||||
* Receive data pending on the BNetEndpoint's connection. If in the default
|
|
||||||
* blocking mode, blocks until data is available or a timeout (set by
|
|
||||||
* BNetEndpoint::SetTimeout). The first call receives into a preallocated buffer
|
|
||||||
* of the specified size; the second call receives (at most) size bytes into
|
|
||||||
* an BNetBuffer. The data is appended to the end of the BNetBuffer; this allows
|
|
||||||
* a BNetBuffer to be used in a loop to buffer incoming data read in chunks
|
|
||||||
* until a certain size is read. Both return the number of bytes actually
|
|
||||||
* received, and return -1 on error.
|
|
||||||
*/
|
|
||||||
virtual int32 Receive(void *buf, size_t size, int flags = 0);
|
|
||||||
virtual int32 Receive(BNetBuffer &pack, size_t size, int flags = 0);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BNetEndpoint::ReceiveFrom()
|
|
||||||
*
|
|
||||||
* Receive datagrams from an arbitrary source and fill in the passed-in BNetAddress
|
|
||||||
* with the address from whence the datagram came. As usual, both return the
|
|
||||||
* actual number of bytes read. In the BNetBuffer version, the data is appended
|
|
||||||
* to the end of the BNetBuffer; this allows a BNetBuffer to be used in a loop to
|
|
||||||
* buffer incoming data read in chunks until a certain amount is read.
|
|
||||||
*/
|
|
||||||
virtual int32 ReceiveFrom(void *buf, size_t size, BNetAddress &from, int flags = 0);
|
|
||||||
virtual int32 ReceiveFrom(BNetBuffer &pack, size_t size, BNetAddress &from, int flags = 0);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BNetEndpoint::IsDataPending()
|
|
||||||
*
|
|
||||||
* Returns true if there is data waiting to be received on this BNetEndpoint.
|
|
||||||
* Will block for usec_timeout microseconds if specified, waiting for data.
|
|
||||||
*/
|
|
||||||
virtual bool IsDataPending(bigtime_t usec_timeout = 0);
|
|
||||||
|
|
||||||
inline NLEndpoint *GetImpl() const;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
status_t m_init;
|
|
||||||
|
|
||||||
private:
|
|
||||||
virtual void _ReservedBNetEndpointFBCCruft1();
|
|
||||||
virtual void _ReservedBNetEndpointFBCCruft2();
|
|
||||||
virtual void _ReservedBNetEndpointFBCCruft3();
|
|
||||||
virtual void _ReservedBNetEndpointFBCCruft4();
|
|
||||||
virtual void _ReservedBNetEndpointFBCCruft5();
|
|
||||||
virtual void _ReservedBNetEndpointFBCCruft6();
|
|
||||||
|
|
||||||
int m_socket;
|
|
||||||
bigtime_t m_timeout;
|
|
||||||
int m_last_error;
|
|
||||||
BNetAddress m_addr;
|
|
||||||
BNetAddress m_peer;
|
|
||||||
BNetAddress m_conaddr;
|
|
||||||
|
|
||||||
int32 __ReservedBNetEndpointFBCCruftData[6];
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
inline NLEndpoint *BNetEndpoint::GetImpl() const
|
|
||||||
{
|
|
||||||
return NULL; // No Nettle backward compatibility
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // _NETENDPOINT_H
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
/*******************************************************************************
|
|
||||||
/
|
|
||||||
/ File: net_settings.h
|
|
||||||
/
|
|
||||||
/ Description: Network preferences settings.
|
|
||||||
/
|
|
||||||
/ Copyright 1993-98, Be Incorporated, All Rights Reserved.
|
|
||||||
/
|
|
||||||
*******************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _NET_SETTINGS_H
|
|
||||||
#define _NET_SETTINGS_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
#include <SupportDefs.h>
|
|
||||||
|
|
||||||
#if __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Private types
|
|
||||||
*/
|
|
||||||
typedef struct _ns_entry {
|
|
||||||
const char *key;
|
|
||||||
const char *value;
|
|
||||||
} _ns_entry_t;
|
|
||||||
|
|
||||||
typedef struct _ns_section {
|
|
||||||
const char *heading;
|
|
||||||
unsigned nentries;
|
|
||||||
_ns_entry_t *entries;
|
|
||||||
} _ns_section_t;
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Public type, but the data members are private
|
|
||||||
*/
|
|
||||||
typedef struct _net_settings {
|
|
||||||
int _dirty;
|
|
||||||
unsigned _nsections;
|
|
||||||
_ns_section_t *_sections;
|
|
||||||
char _fname[64];
|
|
||||||
} net_settings;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* For finding and setting network preferences
|
|
||||||
*/
|
|
||||||
extern _IMPEXP_NET
|
|
||||||
char *find_net_setting(net_settings *ncw,
|
|
||||||
const char *heading, const char *name, char *value,
|
|
||||||
unsigned nbytes);
|
|
||||||
extern _IMPEXP_NET
|
|
||||||
status_t set_net_setting(net_settings *ncw,
|
|
||||||
const char *heading, const char *name,
|
|
||||||
const char *value);
|
|
||||||
|
|
||||||
#if __cplusplus
|
|
||||||
}
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
#endif /* _NET_SETTINGS_H */
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
#ifndef _NET_NETDB_H
|
|
||||||
#define _NET_NETDB_H
|
|
||||||
|
|
||||||
#include <netdb.h> /* should include the posix netdb.h */
|
|
||||||
|
|
||||||
#endif /* _NET_NETDB_H */
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
#ifndef _NET_SOCKET_H
|
|
||||||
#define _NET_SOCKET_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
|
|
||||||
#include <netinet/in.h> /* in_addr, sockaddr_in */
|
|
||||||
#include <sys/socket.h> /* sockaddr */
|
|
||||||
#include <sys/select.h>
|
|
||||||
|
|
||||||
#define OBOS_NET_STACK_VERSION 0x0100 /* 1.0 */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Be extension
|
|
||||||
*/
|
|
||||||
#define B_UDP_MAX_SIZE (65536 - 1024)
|
|
||||||
|
|
||||||
#endif /* _NET_SOCKET_H */
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,349 +0,0 @@
|
|||||||
/*
|
|
||||||
* SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
|
|
||||||
* Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice including the dates of first publication and
|
|
||||||
* either this permission notice or a reference to
|
|
||||||
* http://oss.sgi.com/projects/FreeB/
|
|
||||||
* shall be included in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
||||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
||||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
* SOFTWARE.
|
|
||||||
*
|
|
||||||
* Except as contained in this notice, the name of Silicon Graphics, Inc.
|
|
||||||
* shall not be used in advertising or otherwise to promote the sale, use or
|
|
||||||
* other dealings in this Software without prior written authorization from
|
|
||||||
* Silicon Graphics, Inc.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __glu_h__
|
|
||||||
#define __glu_h__
|
|
||||||
|
|
||||||
#if defined(USE_MGL_NAMESPACE)
|
|
||||||
#include "glu_mangle.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <GL/gl.h>
|
|
||||||
|
|
||||||
#ifndef GLAPIENTRY
|
|
||||||
#define GLAPIENTRY
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef GLAPIENTRYP
|
|
||||||
#define GLAPIENTRYP GLAPIENTRY *
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GLU32)
|
|
||||||
# undef GLAPI
|
|
||||||
# define GLAPI __declspec(dllexport)
|
|
||||||
#elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL)
|
|
||||||
/* tag specifying we're building for DLL runtime support */
|
|
||||||
# undef GLAPI
|
|
||||||
# define GLAPI __declspec(dllimport)
|
|
||||||
#elif !defined(GLAPI)
|
|
||||||
/* for use with static link lib build of Win32 edition only */
|
|
||||||
# define GLAPI extern
|
|
||||||
#endif /* _STATIC_MESA support */
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*************************************************************/
|
|
||||||
|
|
||||||
/* Extensions */
|
|
||||||
#define GLU_EXT_object_space_tess 1
|
|
||||||
#define GLU_EXT_nurbs_tessellator 1
|
|
||||||
|
|
||||||
/* Boolean */
|
|
||||||
#define GLU_FALSE 0
|
|
||||||
#define GLU_TRUE 1
|
|
||||||
|
|
||||||
/* Version */
|
|
||||||
#define GLU_VERSION_1_1 1
|
|
||||||
#define GLU_VERSION_1_2 1
|
|
||||||
#define GLU_VERSION_1_3 1
|
|
||||||
|
|
||||||
/* StringName */
|
|
||||||
#define GLU_VERSION 100800
|
|
||||||
#define GLU_EXTENSIONS 100801
|
|
||||||
|
|
||||||
/* ErrorCode */
|
|
||||||
#define GLU_INVALID_ENUM 100900
|
|
||||||
#define GLU_INVALID_VALUE 100901
|
|
||||||
#define GLU_OUT_OF_MEMORY 100902
|
|
||||||
#define GLU_INCOMPATIBLE_GL_VERSION 100903
|
|
||||||
#define GLU_INVALID_OPERATION 100904
|
|
||||||
|
|
||||||
/* NurbsDisplay */
|
|
||||||
/* GLU_FILL */
|
|
||||||
#define GLU_OUTLINE_POLYGON 100240
|
|
||||||
#define GLU_OUTLINE_PATCH 100241
|
|
||||||
|
|
||||||
/* NurbsCallback */
|
|
||||||
#define GLU_NURBS_ERROR 100103
|
|
||||||
#define GLU_ERROR 100103
|
|
||||||
#define GLU_NURBS_BEGIN 100164
|
|
||||||
#define GLU_NURBS_BEGIN_EXT 100164
|
|
||||||
#define GLU_NURBS_VERTEX 100165
|
|
||||||
#define GLU_NURBS_VERTEX_EXT 100165
|
|
||||||
#define GLU_NURBS_NORMAL 100166
|
|
||||||
#define GLU_NURBS_NORMAL_EXT 100166
|
|
||||||
#define GLU_NURBS_COLOR 100167
|
|
||||||
#define GLU_NURBS_COLOR_EXT 100167
|
|
||||||
#define GLU_NURBS_TEXTURE_COORD 100168
|
|
||||||
#define GLU_NURBS_TEX_COORD_EXT 100168
|
|
||||||
#define GLU_NURBS_END 100169
|
|
||||||
#define GLU_NURBS_END_EXT 100169
|
|
||||||
#define GLU_NURBS_BEGIN_DATA 100170
|
|
||||||
#define GLU_NURBS_BEGIN_DATA_EXT 100170
|
|
||||||
#define GLU_NURBS_VERTEX_DATA 100171
|
|
||||||
#define GLU_NURBS_VERTEX_DATA_EXT 100171
|
|
||||||
#define GLU_NURBS_NORMAL_DATA 100172
|
|
||||||
#define GLU_NURBS_NORMAL_DATA_EXT 100172
|
|
||||||
#define GLU_NURBS_COLOR_DATA 100173
|
|
||||||
#define GLU_NURBS_COLOR_DATA_EXT 100173
|
|
||||||
#define GLU_NURBS_TEXTURE_COORD_DATA 100174
|
|
||||||
#define GLU_NURBS_TEX_COORD_DATA_EXT 100174
|
|
||||||
#define GLU_NURBS_END_DATA 100175
|
|
||||||
#define GLU_NURBS_END_DATA_EXT 100175
|
|
||||||
|
|
||||||
/* NurbsError */
|
|
||||||
#define GLU_NURBS_ERROR1 100251
|
|
||||||
#define GLU_NURBS_ERROR2 100252
|
|
||||||
#define GLU_NURBS_ERROR3 100253
|
|
||||||
#define GLU_NURBS_ERROR4 100254
|
|
||||||
#define GLU_NURBS_ERROR5 100255
|
|
||||||
#define GLU_NURBS_ERROR6 100256
|
|
||||||
#define GLU_NURBS_ERROR7 100257
|
|
||||||
#define GLU_NURBS_ERROR8 100258
|
|
||||||
#define GLU_NURBS_ERROR9 100259
|
|
||||||
#define GLU_NURBS_ERROR10 100260
|
|
||||||
#define GLU_NURBS_ERROR11 100261
|
|
||||||
#define GLU_NURBS_ERROR12 100262
|
|
||||||
#define GLU_NURBS_ERROR13 100263
|
|
||||||
#define GLU_NURBS_ERROR14 100264
|
|
||||||
#define GLU_NURBS_ERROR15 100265
|
|
||||||
#define GLU_NURBS_ERROR16 100266
|
|
||||||
#define GLU_NURBS_ERROR17 100267
|
|
||||||
#define GLU_NURBS_ERROR18 100268
|
|
||||||
#define GLU_NURBS_ERROR19 100269
|
|
||||||
#define GLU_NURBS_ERROR20 100270
|
|
||||||
#define GLU_NURBS_ERROR21 100271
|
|
||||||
#define GLU_NURBS_ERROR22 100272
|
|
||||||
#define GLU_NURBS_ERROR23 100273
|
|
||||||
#define GLU_NURBS_ERROR24 100274
|
|
||||||
#define GLU_NURBS_ERROR25 100275
|
|
||||||
#define GLU_NURBS_ERROR26 100276
|
|
||||||
#define GLU_NURBS_ERROR27 100277
|
|
||||||
#define GLU_NURBS_ERROR28 100278
|
|
||||||
#define GLU_NURBS_ERROR29 100279
|
|
||||||
#define GLU_NURBS_ERROR30 100280
|
|
||||||
#define GLU_NURBS_ERROR31 100281
|
|
||||||
#define GLU_NURBS_ERROR32 100282
|
|
||||||
#define GLU_NURBS_ERROR33 100283
|
|
||||||
#define GLU_NURBS_ERROR34 100284
|
|
||||||
#define GLU_NURBS_ERROR35 100285
|
|
||||||
#define GLU_NURBS_ERROR36 100286
|
|
||||||
#define GLU_NURBS_ERROR37 100287
|
|
||||||
|
|
||||||
/* NurbsProperty */
|
|
||||||
#define GLU_AUTO_LOAD_MATRIX 100200
|
|
||||||
#define GLU_CULLING 100201
|
|
||||||
#define GLU_SAMPLING_TOLERANCE 100203
|
|
||||||
#define GLU_DISPLAY_MODE 100204
|
|
||||||
#define GLU_PARAMETRIC_TOLERANCE 100202
|
|
||||||
#define GLU_SAMPLING_METHOD 100205
|
|
||||||
#define GLU_U_STEP 100206
|
|
||||||
#define GLU_V_STEP 100207
|
|
||||||
#define GLU_NURBS_MODE 100160
|
|
||||||
#define GLU_NURBS_MODE_EXT 100160
|
|
||||||
#define GLU_NURBS_TESSELLATOR 100161
|
|
||||||
#define GLU_NURBS_TESSELLATOR_EXT 100161
|
|
||||||
#define GLU_NURBS_RENDERER 100162
|
|
||||||
#define GLU_NURBS_RENDERER_EXT 100162
|
|
||||||
|
|
||||||
/* NurbsSampling */
|
|
||||||
#define GLU_OBJECT_PARAMETRIC_ERROR 100208
|
|
||||||
#define GLU_OBJECT_PARAMETRIC_ERROR_EXT 100208
|
|
||||||
#define GLU_OBJECT_PATH_LENGTH 100209
|
|
||||||
#define GLU_OBJECT_PATH_LENGTH_EXT 100209
|
|
||||||
#define GLU_PATH_LENGTH 100215
|
|
||||||
#define GLU_PARAMETRIC_ERROR 100216
|
|
||||||
#define GLU_DOMAIN_DISTANCE 100217
|
|
||||||
|
|
||||||
/* NurbsTrim */
|
|
||||||
#define GLU_MAP1_TRIM_2 100210
|
|
||||||
#define GLU_MAP1_TRIM_3 100211
|
|
||||||
|
|
||||||
/* QuadricDrawStyle */
|
|
||||||
#define GLU_POINT 100010
|
|
||||||
#define GLU_LINE 100011
|
|
||||||
#define GLU_FILL 100012
|
|
||||||
#define GLU_SILHOUETTE 100013
|
|
||||||
|
|
||||||
/* QuadricCallback */
|
|
||||||
/* GLU_ERROR */
|
|
||||||
|
|
||||||
/* QuadricNormal */
|
|
||||||
#define GLU_SMOOTH 100000
|
|
||||||
#define GLU_FLAT 100001
|
|
||||||
#define GLU_NONE 100002
|
|
||||||
|
|
||||||
/* QuadricOrientation */
|
|
||||||
#define GLU_OUTSIDE 100020
|
|
||||||
#define GLU_INSIDE 100021
|
|
||||||
|
|
||||||
/* TessCallback */
|
|
||||||
#define GLU_TESS_BEGIN 100100
|
|
||||||
#define GLU_BEGIN 100100
|
|
||||||
#define GLU_TESS_VERTEX 100101
|
|
||||||
#define GLU_VERTEX 100101
|
|
||||||
#define GLU_TESS_END 100102
|
|
||||||
#define GLU_END 100102
|
|
||||||
#define GLU_TESS_ERROR 100103
|
|
||||||
#define GLU_TESS_EDGE_FLAG 100104
|
|
||||||
#define GLU_EDGE_FLAG 100104
|
|
||||||
#define GLU_TESS_COMBINE 100105
|
|
||||||
#define GLU_TESS_BEGIN_DATA 100106
|
|
||||||
#define GLU_TESS_VERTEX_DATA 100107
|
|
||||||
#define GLU_TESS_END_DATA 100108
|
|
||||||
#define GLU_TESS_ERROR_DATA 100109
|
|
||||||
#define GLU_TESS_EDGE_FLAG_DATA 100110
|
|
||||||
#define GLU_TESS_COMBINE_DATA 100111
|
|
||||||
|
|
||||||
/* TessContour */
|
|
||||||
#define GLU_CW 100120
|
|
||||||
#define GLU_CCW 100121
|
|
||||||
#define GLU_INTERIOR 100122
|
|
||||||
#define GLU_EXTERIOR 100123
|
|
||||||
#define GLU_UNKNOWN 100124
|
|
||||||
|
|
||||||
/* TessProperty */
|
|
||||||
#define GLU_TESS_WINDING_RULE 100140
|
|
||||||
#define GLU_TESS_BOUNDARY_ONLY 100141
|
|
||||||
#define GLU_TESS_TOLERANCE 100142
|
|
||||||
|
|
||||||
/* TessError */
|
|
||||||
#define GLU_TESS_ERROR1 100151
|
|
||||||
#define GLU_TESS_ERROR2 100152
|
|
||||||
#define GLU_TESS_ERROR3 100153
|
|
||||||
#define GLU_TESS_ERROR4 100154
|
|
||||||
#define GLU_TESS_ERROR5 100155
|
|
||||||
#define GLU_TESS_ERROR6 100156
|
|
||||||
#define GLU_TESS_ERROR7 100157
|
|
||||||
#define GLU_TESS_ERROR8 100158
|
|
||||||
#define GLU_TESS_MISSING_BEGIN_POLYGON 100151
|
|
||||||
#define GLU_TESS_MISSING_BEGIN_CONTOUR 100152
|
|
||||||
#define GLU_TESS_MISSING_END_POLYGON 100153
|
|
||||||
#define GLU_TESS_MISSING_END_CONTOUR 100154
|
|
||||||
#define GLU_TESS_COORD_TOO_LARGE 100155
|
|
||||||
#define GLU_TESS_NEED_COMBINE_CALLBACK 100156
|
|
||||||
|
|
||||||
/* TessWinding */
|
|
||||||
#define GLU_TESS_WINDING_ODD 100130
|
|
||||||
#define GLU_TESS_WINDING_NONZERO 100131
|
|
||||||
#define GLU_TESS_WINDING_POSITIVE 100132
|
|
||||||
#define GLU_TESS_WINDING_NEGATIVE 100133
|
|
||||||
#define GLU_TESS_WINDING_ABS_GEQ_TWO 100134
|
|
||||||
|
|
||||||
/*************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
class GLUnurbs;
|
|
||||||
class GLUquadric;
|
|
||||||
class GLUtesselator;
|
|
||||||
#else
|
|
||||||
typedef struct GLUnurbs GLUnurbs;
|
|
||||||
typedef struct GLUquadric GLUquadric;
|
|
||||||
typedef struct GLUtesselator GLUtesselator;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef GLUnurbs GLUnurbsObj;
|
|
||||||
typedef GLUquadric GLUquadricObj;
|
|
||||||
typedef GLUtesselator GLUtesselatorObj;
|
|
||||||
typedef GLUtesselator GLUtriangulatorObj;
|
|
||||||
|
|
||||||
#define GLU_TESS_MAX_COORD 1.0e150
|
|
||||||
|
|
||||||
/* Internal convenience typedefs */
|
|
||||||
typedef void (GLAPIENTRYP _GLUfuncptr)();
|
|
||||||
|
|
||||||
GLAPI void GLAPIENTRY gluBeginCurve (GLUnurbs* nurb);
|
|
||||||
GLAPI void GLAPIENTRY gluBeginPolygon (GLUtesselator* tess);
|
|
||||||
GLAPI void GLAPIENTRY gluBeginSurface (GLUnurbs* nurb);
|
|
||||||
GLAPI void GLAPIENTRY gluBeginTrim (GLUnurbs* nurb);
|
|
||||||
GLAPI GLint GLAPIENTRY gluBuild1DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data);
|
|
||||||
GLAPI GLint GLAPIENTRY gluBuild1DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data);
|
|
||||||
GLAPI GLint GLAPIENTRY gluBuild2DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data);
|
|
||||||
GLAPI GLint GLAPIENTRY gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data);
|
|
||||||
GLAPI GLint GLAPIENTRY gluBuild3DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data);
|
|
||||||
GLAPI GLint GLAPIENTRY gluBuild3DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
|
|
||||||
GLAPI GLboolean GLAPIENTRY gluCheckExtension (const GLubyte *extName, const GLubyte *extString);
|
|
||||||
GLAPI void GLAPIENTRY gluCylinder (GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks);
|
|
||||||
GLAPI void GLAPIENTRY gluDeleteNurbsRenderer (GLUnurbs* nurb);
|
|
||||||
GLAPI void GLAPIENTRY gluDeleteQuadric (GLUquadric* quad);
|
|
||||||
GLAPI void GLAPIENTRY gluDeleteTess (GLUtesselator* tess);
|
|
||||||
GLAPI void GLAPIENTRY gluDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops);
|
|
||||||
GLAPI void GLAPIENTRY gluEndCurve (GLUnurbs* nurb);
|
|
||||||
GLAPI void GLAPIENTRY gluEndPolygon (GLUtesselator* tess);
|
|
||||||
GLAPI void GLAPIENTRY gluEndSurface (GLUnurbs* nurb);
|
|
||||||
GLAPI void GLAPIENTRY gluEndTrim (GLUnurbs* nurb);
|
|
||||||
GLAPI const GLubyte * GLAPIENTRY gluErrorString (GLenum error);
|
|
||||||
GLAPI void GLAPIENTRY gluGetNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat* data);
|
|
||||||
GLAPI const GLubyte * GLAPIENTRY gluGetString (GLenum name);
|
|
||||||
GLAPI void GLAPIENTRY gluGetTessProperty (GLUtesselator* tess, GLenum which, GLdouble* data);
|
|
||||||
GLAPI void GLAPIENTRY gluLoadSamplingMatrices (GLUnurbs* nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view);
|
|
||||||
GLAPI void GLAPIENTRY gluLookAt (GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ);
|
|
||||||
GLAPI GLUnurbs* GLAPIENTRY gluNewNurbsRenderer (void);
|
|
||||||
GLAPI GLUquadric* GLAPIENTRY gluNewQuadric (void);
|
|
||||||
GLAPI GLUtesselator* GLAPIENTRY gluNewTess (void);
|
|
||||||
GLAPI void GLAPIENTRY gluNextContour (GLUtesselator* tess, GLenum type);
|
|
||||||
GLAPI void GLAPIENTRY gluNurbsCallback (GLUnurbs* nurb, GLenum which, _GLUfuncptr CallBackFunc);
|
|
||||||
GLAPI void GLAPIENTRY gluNurbsCallbackData (GLUnurbs* nurb, GLvoid* userData);
|
|
||||||
GLAPI void GLAPIENTRY gluNurbsCallbackDataEXT (GLUnurbs* nurb, GLvoid* userData);
|
|
||||||
GLAPI void GLAPIENTRY gluNurbsCurve (GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type);
|
|
||||||
GLAPI void GLAPIENTRY gluNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat value);
|
|
||||||
GLAPI void GLAPIENTRY gluNurbsSurface (GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type);
|
|
||||||
GLAPI void GLAPIENTRY gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top);
|
|
||||||
GLAPI void GLAPIENTRY gluPartialDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep);
|
|
||||||
GLAPI void GLAPIENTRY gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
|
|
||||||
GLAPI void GLAPIENTRY gluPickMatrix (GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport);
|
|
||||||
GLAPI GLint GLAPIENTRY gluProject (GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* winX, GLdouble* winY, GLdouble* winZ);
|
|
||||||
GLAPI void GLAPIENTRY gluPwlCurve (GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type);
|
|
||||||
GLAPI void GLAPIENTRY gluQuadricCallback (GLUquadric* quad, GLenum which, _GLUfuncptr CallBackFunc);
|
|
||||||
GLAPI void GLAPIENTRY gluQuadricDrawStyle (GLUquadric* quad, GLenum draw);
|
|
||||||
GLAPI void GLAPIENTRY gluQuadricNormals (GLUquadric* quad, GLenum normal);
|
|
||||||
GLAPI void GLAPIENTRY gluQuadricOrientation (GLUquadric* quad, GLenum orientation);
|
|
||||||
GLAPI void GLAPIENTRY gluQuadricTexture (GLUquadric* quad, GLboolean texture);
|
|
||||||
GLAPI GLint GLAPIENTRY gluScaleImage (GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut);
|
|
||||||
GLAPI void GLAPIENTRY gluSphere (GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks);
|
|
||||||
GLAPI void GLAPIENTRY gluTessBeginContour (GLUtesselator* tess);
|
|
||||||
GLAPI void GLAPIENTRY gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data);
|
|
||||||
GLAPI void GLAPIENTRY gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc);
|
|
||||||
GLAPI void GLAPIENTRY gluTessEndContour (GLUtesselator* tess);
|
|
||||||
GLAPI void GLAPIENTRY gluTessEndPolygon (GLUtesselator* tess);
|
|
||||||
GLAPI void GLAPIENTRY gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ);
|
|
||||||
GLAPI void GLAPIENTRY gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data);
|
|
||||||
GLAPI void GLAPIENTRY gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data);
|
|
||||||
GLAPI GLint GLAPIENTRY gluUnProject (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ);
|
|
||||||
GLAPI GLint GLAPIENTRY gluUnProject4 (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __glu_h__ */
|
|
||||||
@@ -1,755 +0,0 @@
|
|||||||
#ifndef __glut_h__
|
|
||||||
#define __glut_h__
|
|
||||||
|
|
||||||
/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */
|
|
||||||
|
|
||||||
/* This program is freely distributable without licensing fees and is
|
|
||||||
provided without guarantee or warrantee expressed or implied. This
|
|
||||||
program is -not- in the public domain. */
|
|
||||||
|
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glu.h>
|
|
||||||
|
|
||||||
#if defined(__MINGW32__)
|
|
||||||
#include <GL/mesa_wgl.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(_WIN32)
|
|
||||||
|
|
||||||
/* GLUT 3.7 now tries to avoid including <windows.h>
|
|
||||||
to avoid name space pollution, but Win32's <GL/gl.h>
|
|
||||||
needs APIENTRY and WINGDIAPI defined properly.
|
|
||||||
|
|
||||||
tjump@spgs.com contributes:
|
|
||||||
If users are building glut code on MS Windows, then they should
|
|
||||||
make sure they include windows.h early, let's not get into a
|
|
||||||
header definitions war since MS has proven it's capability to
|
|
||||||
change header dependencies w/o publishing they have done so.
|
|
||||||
|
|
||||||
So, let's not include windows.h here, as it's not really required and
|
|
||||||
MS own gl/gl.h *should* include it if the dependency is there. */
|
|
||||||
|
|
||||||
/* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA
|
|
||||||
in your compile preprocessor options. */
|
|
||||||
# if !defined(GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA)
|
|
||||||
# pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */
|
|
||||||
/* To enable automatic SGI OpenGL for Windows library usage for GLUT,
|
|
||||||
define GLUT_USE_SGI_OPENGL in your compile preprocessor options. */
|
|
||||||
# ifdef GLUT_USE_SGI_OPENGL
|
|
||||||
# pragma comment (lib, "opengl.lib") /* link with SGI OpenGL for Windows lib */
|
|
||||||
# pragma comment (lib, "glu.lib") /* link with SGI OpenGL Utility lib */
|
|
||||||
# pragma comment (lib, "glut.lib") /* link with Win32 GLUT for SGI OpenGL lib */
|
|
||||||
# else
|
|
||||||
# pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */
|
|
||||||
# pragma comment (lib, "glu32.lib") /* link with Microsoft OpenGL Utility lib */
|
|
||||||
# pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/* To disable supression of annoying warnings about floats being promoted
|
|
||||||
to doubles, define GLUT_NO_WARNING_DISABLE in your compile preprocessor
|
|
||||||
options. */
|
|
||||||
# ifndef GLUT_NO_WARNING_DISABLE
|
|
||||||
# pragma warning (disable:4244) /* Disable bogus VC++ 4.2 conversion warnings. */
|
|
||||||
# pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/* Win32 has an annoying issue where there are multiple C run-time
|
|
||||||
libraries (CRTs). If the executable is linked with a different CRT
|
|
||||||
from the GLUT DLL, the GLUT DLL will not share the same CRT static
|
|
||||||
data seen by the executable. In particular, atexit callbacks registered
|
|
||||||
in the executable will not be called if GLUT calls its (different)
|
|
||||||
exit routine). GLUT is typically built with the
|
|
||||||
"/MD" option (the CRT with multithreading DLL support), but the Visual
|
|
||||||
C++ linker default is "/ML" (the single threaded CRT).
|
|
||||||
|
|
||||||
One workaround to this issue is requiring users to always link with
|
|
||||||
the same CRT as GLUT is compiled with. That requires users supply a
|
|
||||||
non-standard option. GLUT 3.7 has its own built-in workaround where
|
|
||||||
the executable's "exit" function pointer is covertly passed to GLUT.
|
|
||||||
GLUT then calls the executable's exit function pointer to ensure that
|
|
||||||
any "atexit" calls registered by the application are called if GLUT
|
|
||||||
needs to exit.
|
|
||||||
|
|
||||||
Note that the __glut*WithExit routines should NEVER be called directly.
|
|
||||||
To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */
|
|
||||||
|
|
||||||
/* XXX This is from Win32's <process.h> */
|
|
||||||
# if !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(__cdecl)
|
|
||||||
/* Define __cdecl for non-Microsoft compilers. */
|
|
||||||
# define __cdecl
|
|
||||||
# define GLUT_DEFINED___CDECL
|
|
||||||
# endif
|
|
||||||
# ifndef _CRTIMP
|
|
||||||
# ifdef _NTSDK
|
|
||||||
/* Definition compatible with NT SDK */
|
|
||||||
# define _CRTIMP
|
|
||||||
# else
|
|
||||||
/* Current definition */
|
|
||||||
# ifdef _DLL
|
|
||||||
# define _CRTIMP __declspec(dllimport)
|
|
||||||
# else
|
|
||||||
# define _CRTIMP
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# define GLUT_DEFINED__CRTIMP
|
|
||||||
# endif
|
|
||||||
# ifndef GLUT_BUILDING_LIB
|
|
||||||
extern _CRTIMP void __cdecl exit(int);
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/* GLUT callback calling convention for Win32. */
|
|
||||||
# define GLUTCALLBACK __cdecl
|
|
||||||
|
|
||||||
/* for callback/function pointer defs */
|
|
||||||
# define GLUTAPIENTRYV __cdecl
|
|
||||||
|
|
||||||
/* glut-win32 specific macros, defined to prevent collision with
|
|
||||||
and redifinition of Windows system defs, also removes requirement of
|
|
||||||
pretty much any standard windows header from this file */
|
|
||||||
|
|
||||||
#if (_MSC_VER >= 800) || defined(__MINGW32__) || defined(_STDCALL_SUPPORTED) || defined(__CYGWIN32__)
|
|
||||||
# define GLUTAPIENTRY __stdcall
|
|
||||||
#else
|
|
||||||
# define GLUTAPIENTRY
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* GLUT API entry point declarations for Win32. */
|
|
||||||
#if (defined(BUILD_GLUT32) || defined(GLUT_BUILDING_LIB)) && defined(_DLL)
|
|
||||||
# define GLUTAPI __declspec(dllexport)
|
|
||||||
#elif defined(_DLL)
|
|
||||||
# define GLUTAPI __declspec(dllimport)
|
|
||||||
#else
|
|
||||||
# define GLUTAPI extern
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(_WIN32) && !defined(_WINDEF_) && !defined(MESA)
|
|
||||||
# if !defined(MESA_MINWARN)
|
|
||||||
# pragma message( "note: WINDOWS.H not included, providing Mesa definition of CALLBACK macro" )
|
|
||||||
# pragma message( "----: and PROC typedef. If you receive compiler warnings about either ")
|
|
||||||
# pragma message( "----: being multiply defined you should include WINDOWS.H priot to gl/glut.h" )
|
|
||||||
# endif
|
|
||||||
# define CALLBACK __stdcall
|
|
||||||
|
|
||||||
#if !defined(__MINGW32__)
|
|
||||||
typedef int (GLUTAPIENTRY *PROC)();
|
|
||||||
typedef void *HGLRC;
|
|
||||||
typedef void *HDC;
|
|
||||||
#endif
|
|
||||||
typedef unsigned long COLORREF;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(_WIN32) && !defined(_WINGDI_) && !defined(MESA)
|
|
||||||
# if !defined(MESA_MINWARN)
|
|
||||||
# pragma message( "note: WINDOWS.H not included, providing Mesa definition of wgl functions" )
|
|
||||||
# pragma message( "----: and macros. If you receive compiler warnings about any being multiply ")
|
|
||||||
# pragma message( "----: defined you should include WINDOWS.H priot to gl/glut.h" )
|
|
||||||
# endif
|
|
||||||
# define WGL_FONT_LINES 0
|
|
||||||
# define WGL_FONT_POLYGONS 1
|
|
||||||
# ifdef UNICODE
|
|
||||||
# define wglUseFontBitmaps wglUseFontBitmapsW
|
|
||||||
# define wglUseFontOutlines wglUseFontOutlinesW
|
|
||||||
# else
|
|
||||||
# define wglUseFontBitmaps wglUseFontBitmapsA
|
|
||||||
# define wglUseFontOutlines wglUseFontOutlinesA
|
|
||||||
# endif /* !UNICODE */
|
|
||||||
typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR;
|
|
||||||
typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT;
|
|
||||||
# pragma warning( push )
|
|
||||||
# pragma warning( disable : 4273 ) /* 'function' : inconsistent DLL linkage. dllexport assumed. */
|
|
||||||
# define WGLAPI __declspec(dllimport)
|
|
||||||
WGLAPI int GLAPIENTRY wglDeleteContext(HGLRC);
|
|
||||||
WGLAPI int GLAPIENTRY wglMakeCurrent(HDC,HGLRC);
|
|
||||||
WGLAPI int GLAPIENTRY wglSetPixelFormat(HDC, int, const PIXELFORMATDESCRIPTOR *);
|
|
||||||
WGLAPI int GLAPIENTRY wglSwapBuffers(HDC hdc);
|
|
||||||
WGLAPI HDC GLAPIENTRY wglGetCurrentDC(void);
|
|
||||||
WGLAPI HGLRC GLAPIENTRY wglCreateContext(HDC);
|
|
||||||
WGLAPI HGLRC GLAPIENTRY wglCreateLayerContext(HDC,int);
|
|
||||||
WGLAPI HGLRC GLAPIENTRY wglGetCurrentContext(void);
|
|
||||||
WGLAPI PROC GLAPIENTRY wglGetProcAddress(const char*);
|
|
||||||
WGLAPI int GLAPIENTRY wglChoosePixelFormat(HDC, const PIXELFORMATDESCRIPTOR *);
|
|
||||||
WGLAPI int GLAPIENTRY wglCopyContext(HGLRC, HGLRC, unsigned int);
|
|
||||||
WGLAPI int GLAPIENTRY wglDeleteContext(HGLRC);
|
|
||||||
WGLAPI int GLAPIENTRY wglDescribeLayerPlane(HDC, int, int, unsigned int,LPLAYERPLANEDESCRIPTOR);
|
|
||||||
WGLAPI int GLAPIENTRY wglDescribePixelFormat(HDC,int, unsigned int, LPPIXELFORMATDESCRIPTOR);
|
|
||||||
WGLAPI int GLAPIENTRY wglGetLayerPaletteEntries(HDC, int, int, int,COLORREF *);
|
|
||||||
WGLAPI int GLAPIENTRY wglGetPixelFormat(HDC hdc);
|
|
||||||
WGLAPI int GLAPIENTRY wglMakeCurrent(HDC, HGLRC);
|
|
||||||
WGLAPI int GLAPIENTRY wglRealizeLayerPalette(HDC, int, int);
|
|
||||||
WGLAPI int GLAPIENTRY wglSetLayerPaletteEntries(HDC, int, int, int,const COLORREF *);
|
|
||||||
WGLAPI int GLAPIENTRY wglShareLists(HGLRC, HGLRC);
|
|
||||||
WGLAPI int GLAPIENTRY wglSwapLayerBuffers(HDC, unsigned int);
|
|
||||||
WGLAPI int GLAPIENTRY wglUseFontBitmapsA(HDC, unsigned long, unsigned long, unsigned long);
|
|
||||||
WGLAPI int GLAPIENTRY wglUseFontBitmapsW(HDC, unsigned long, unsigned long, unsigned long);
|
|
||||||
WGLAPI int GLAPIENTRY wglUseFontOutlinesA(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT);
|
|
||||||
WGLAPI int GLAPIENTRY wglUseFontOutlinesW(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT);
|
|
||||||
WGLAPI int GLAPIENTRY SwapBuffers(HDC);
|
|
||||||
WGLAPI int GLAPIENTRY ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR *);
|
|
||||||
WGLAPI int GLAPIENTRY DescribePixelFormat(HDC,int,unsigned int,LPPIXELFORMATDESCRIPTOR);
|
|
||||||
WGLAPI int GLAPIENTRY GetPixelFormat(HDC);
|
|
||||||
WGLAPI int GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *);
|
|
||||||
# undef WGLAPI
|
|
||||||
# pragma warning( pop )
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#else /* _WIN32 not defined */
|
|
||||||
|
|
||||||
/* Define GLUTAPIENTRY and GLUTCALLBACK to nothing if we aren't on Win32. */
|
|
||||||
# define GLUTAPIENTRY GLAPIENTRY
|
|
||||||
# define GLUTAPIENTRYV
|
|
||||||
# define GLUTCALLBACK
|
|
||||||
# define GLUTAPI extern
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
GLUT API revision history:
|
|
||||||
|
|
||||||
GLUT_API_VERSION is updated to reflect incompatible GLUT
|
|
||||||
API changes (interface changes, semantic changes, deletions,
|
|
||||||
or additions).
|
|
||||||
|
|
||||||
GLUT_API_VERSION=1 First public release of GLUT. 11/29/94
|
|
||||||
|
|
||||||
GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling,
|
|
||||||
extension. Supports new input devices like tablet, dial and button
|
|
||||||
box, and Spaceball. Easy to query OpenGL extensions.
|
|
||||||
|
|
||||||
GLUT_API_VERSION=3 glutMenuStatus added.
|
|
||||||
|
|
||||||
GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer,
|
|
||||||
glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic
|
|
||||||
video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc,
|
|
||||||
glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat,
|
|
||||||
glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!).
|
|
||||||
|
|
||||||
GLUT_API_VERSION=5 glutGetProcAddress (added by BrianP)
|
|
||||||
**/
|
|
||||||
#ifndef GLUT_API_VERSION /* allow this to be overriden */
|
|
||||||
#define GLUT_API_VERSION 5
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
GLUT implementation revision history:
|
|
||||||
|
|
||||||
GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT
|
|
||||||
API revisions and implementation revisions (ie, bug fixes).
|
|
||||||
|
|
||||||
GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of
|
|
||||||
GLUT Xlib-based implementation. 11/29/94
|
|
||||||
|
|
||||||
GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of
|
|
||||||
GLUT Xlib-based implementation providing GLUT version 2
|
|
||||||
interfaces.
|
|
||||||
|
|
||||||
GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95
|
|
||||||
|
|
||||||
GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95
|
|
||||||
|
|
||||||
GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95
|
|
||||||
|
|
||||||
GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96
|
|
||||||
|
|
||||||
GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner
|
|
||||||
and video resize. 1/3/97
|
|
||||||
|
|
||||||
GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines.
|
|
||||||
|
|
||||||
GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release.
|
|
||||||
|
|
||||||
GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling.
|
|
||||||
|
|
||||||
GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support.
|
|
||||||
|
|
||||||
GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface.
|
|
||||||
|
|
||||||
GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa <GL/glut.h>
|
|
||||||
**/
|
|
||||||
#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */
|
|
||||||
#define GLUT_XLIB_IMPLEMENTATION 15
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Display mode bit masks. */
|
|
||||||
#define GLUT_RGB 0
|
|
||||||
#define GLUT_RGBA GLUT_RGB
|
|
||||||
#define GLUT_INDEX 1
|
|
||||||
#define GLUT_SINGLE 0
|
|
||||||
#define GLUT_DOUBLE 2
|
|
||||||
#define GLUT_ACCUM 4
|
|
||||||
#define GLUT_ALPHA 8
|
|
||||||
#define GLUT_DEPTH 16
|
|
||||||
#define GLUT_STENCIL 32
|
|
||||||
#if (GLUT_API_VERSION >= 2)
|
|
||||||
#define GLUT_MULTISAMPLE 128
|
|
||||||
#define GLUT_STEREO 256
|
|
||||||
#endif
|
|
||||||
#if (GLUT_API_VERSION >= 3)
|
|
||||||
#define GLUT_LUMINANCE 512
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Mouse buttons. */
|
|
||||||
#define GLUT_LEFT_BUTTON 0
|
|
||||||
#define GLUT_MIDDLE_BUTTON 1
|
|
||||||
#define GLUT_RIGHT_BUTTON 2
|
|
||||||
|
|
||||||
/* Mouse button state. */
|
|
||||||
#define GLUT_DOWN 0
|
|
||||||
#define GLUT_UP 1
|
|
||||||
|
|
||||||
#if (GLUT_API_VERSION >= 2)
|
|
||||||
/* function keys */
|
|
||||||
#define GLUT_KEY_F1 1
|
|
||||||
#define GLUT_KEY_F2 2
|
|
||||||
#define GLUT_KEY_F3 3
|
|
||||||
#define GLUT_KEY_F4 4
|
|
||||||
#define GLUT_KEY_F5 5
|
|
||||||
#define GLUT_KEY_F6 6
|
|
||||||
#define GLUT_KEY_F7 7
|
|
||||||
#define GLUT_KEY_F8 8
|
|
||||||
#define GLUT_KEY_F9 9
|
|
||||||
#define GLUT_KEY_F10 10
|
|
||||||
#define GLUT_KEY_F11 11
|
|
||||||
#define GLUT_KEY_F12 12
|
|
||||||
/* directional keys */
|
|
||||||
#define GLUT_KEY_LEFT 100
|
|
||||||
#define GLUT_KEY_UP 101
|
|
||||||
#define GLUT_KEY_RIGHT 102
|
|
||||||
#define GLUT_KEY_DOWN 103
|
|
||||||
#define GLUT_KEY_PAGE_UP 104
|
|
||||||
#define GLUT_KEY_PAGE_DOWN 105
|
|
||||||
#define GLUT_KEY_HOME 106
|
|
||||||
#define GLUT_KEY_END 107
|
|
||||||
#define GLUT_KEY_INSERT 108
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Entry/exit state. */
|
|
||||||
#define GLUT_LEFT 0
|
|
||||||
#define GLUT_ENTERED 1
|
|
||||||
|
|
||||||
/* Menu usage state. */
|
|
||||||
#define GLUT_MENU_NOT_IN_USE 0
|
|
||||||
#define GLUT_MENU_IN_USE 1
|
|
||||||
|
|
||||||
/* Visibility state. */
|
|
||||||
#define GLUT_NOT_VISIBLE 0
|
|
||||||
#define GLUT_VISIBLE 1
|
|
||||||
|
|
||||||
/* Window status state. */
|
|
||||||
#define GLUT_HIDDEN 0
|
|
||||||
#define GLUT_FULLY_RETAINED 1
|
|
||||||
#define GLUT_PARTIALLY_RETAINED 2
|
|
||||||
#define GLUT_FULLY_COVERED 3
|
|
||||||
|
|
||||||
/* Color index component selection values. */
|
|
||||||
#define GLUT_RED 0
|
|
||||||
#define GLUT_GREEN 1
|
|
||||||
#define GLUT_BLUE 2
|
|
||||||
|
|
||||||
/* Layers for use. */
|
|
||||||
#define GLUT_NORMAL 0
|
|
||||||
#define GLUT_OVERLAY 1
|
|
||||||
|
|
||||||
#if defined(_WIN32) || defined (GLUT_IMPORT_LIB)
|
|
||||||
/* Stroke font constants (use these in GLUT program). */
|
|
||||||
#define GLUT_STROKE_ROMAN ((void*)0)
|
|
||||||
#define GLUT_STROKE_MONO_ROMAN ((void*)1)
|
|
||||||
|
|
||||||
/* Bitmap font constants (use these in GLUT program). */
|
|
||||||
#define GLUT_BITMAP_9_BY_15 ((void*)2)
|
|
||||||
#define GLUT_BITMAP_8_BY_13 ((void*)3)
|
|
||||||
#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4)
|
|
||||||
#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5)
|
|
||||||
#if (GLUT_API_VERSION >= 3)
|
|
||||||
#define GLUT_BITMAP_HELVETICA_10 ((void*)6)
|
|
||||||
#define GLUT_BITMAP_HELVETICA_12 ((void*)7)
|
|
||||||
#define GLUT_BITMAP_HELVETICA_18 ((void*)8)
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
/* Stroke font opaque addresses (use constants instead in source code). */
|
|
||||||
GLUTAPI void *glutStrokeRoman;
|
|
||||||
GLUTAPI void *glutStrokeMonoRoman;
|
|
||||||
|
|
||||||
/* Stroke font constants (use these in GLUT program). */
|
|
||||||
#define GLUT_STROKE_ROMAN (&glutStrokeRoman)
|
|
||||||
#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman)
|
|
||||||
|
|
||||||
/* Bitmap font opaque addresses (use constants instead in source code). */
|
|
||||||
GLUTAPI void *glutBitmap9By15;
|
|
||||||
GLUTAPI void *glutBitmap8By13;
|
|
||||||
GLUTAPI void *glutBitmapTimesRoman10;
|
|
||||||
GLUTAPI void *glutBitmapTimesRoman24;
|
|
||||||
GLUTAPI void *glutBitmapHelvetica10;
|
|
||||||
GLUTAPI void *glutBitmapHelvetica12;
|
|
||||||
GLUTAPI void *glutBitmapHelvetica18;
|
|
||||||
|
|
||||||
/* Bitmap font constants (use these in GLUT program). */
|
|
||||||
#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15)
|
|
||||||
#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13)
|
|
||||||
#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10)
|
|
||||||
#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24)
|
|
||||||
#if (GLUT_API_VERSION >= 3)
|
|
||||||
#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10)
|
|
||||||
#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12)
|
|
||||||
#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* glutGet parameters. */
|
|
||||||
#define GLUT_WINDOW_X 100
|
|
||||||
#define GLUT_WINDOW_Y 101
|
|
||||||
#define GLUT_WINDOW_WIDTH 102
|
|
||||||
#define GLUT_WINDOW_HEIGHT 103
|
|
||||||
#define GLUT_WINDOW_BUFFER_SIZE 104
|
|
||||||
#define GLUT_WINDOW_STENCIL_SIZE 105
|
|
||||||
#define GLUT_WINDOW_DEPTH_SIZE 106
|
|
||||||
#define GLUT_WINDOW_RED_SIZE 107
|
|
||||||
#define GLUT_WINDOW_GREEN_SIZE 108
|
|
||||||
#define GLUT_WINDOW_BLUE_SIZE 109
|
|
||||||
#define GLUT_WINDOW_ALPHA_SIZE 110
|
|
||||||
#define GLUT_WINDOW_ACCUM_RED_SIZE 111
|
|
||||||
#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112
|
|
||||||
#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113
|
|
||||||
#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114
|
|
||||||
#define GLUT_WINDOW_DOUBLEBUFFER 115
|
|
||||||
#define GLUT_WINDOW_RGBA 116
|
|
||||||
#define GLUT_WINDOW_PARENT 117
|
|
||||||
#define GLUT_WINDOW_NUM_CHILDREN 118
|
|
||||||
#define GLUT_WINDOW_COLORMAP_SIZE 119
|
|
||||||
#if (GLUT_API_VERSION >= 2)
|
|
||||||
#define GLUT_WINDOW_NUM_SAMPLES 120
|
|
||||||
#define GLUT_WINDOW_STEREO 121
|
|
||||||
#endif
|
|
||||||
#if (GLUT_API_VERSION >= 3)
|
|
||||||
#define GLUT_WINDOW_CURSOR 122
|
|
||||||
#endif
|
|
||||||
#define GLUT_SCREEN_WIDTH 200
|
|
||||||
#define GLUT_SCREEN_HEIGHT 201
|
|
||||||
#define GLUT_SCREEN_WIDTH_MM 202
|
|
||||||
#define GLUT_SCREEN_HEIGHT_MM 203
|
|
||||||
#define GLUT_MENU_NUM_ITEMS 300
|
|
||||||
#define GLUT_DISPLAY_MODE_POSSIBLE 400
|
|
||||||
#define GLUT_INIT_WINDOW_X 500
|
|
||||||
#define GLUT_INIT_WINDOW_Y 501
|
|
||||||
#define GLUT_INIT_WINDOW_WIDTH 502
|
|
||||||
#define GLUT_INIT_WINDOW_HEIGHT 503
|
|
||||||
#define GLUT_INIT_DISPLAY_MODE 504
|
|
||||||
#if (GLUT_API_VERSION >= 2)
|
|
||||||
#define GLUT_ELAPSED_TIME 700
|
|
||||||
#endif
|
|
||||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
|
|
||||||
#define GLUT_WINDOW_FORMAT_ID 123
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (GLUT_API_VERSION >= 2)
|
|
||||||
/* glutDeviceGet parameters. */
|
|
||||||
#define GLUT_HAS_KEYBOARD 600
|
|
||||||
#define GLUT_HAS_MOUSE 601
|
|
||||||
#define GLUT_HAS_SPACEBALL 602
|
|
||||||
#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603
|
|
||||||
#define GLUT_HAS_TABLET 604
|
|
||||||
#define GLUT_NUM_MOUSE_BUTTONS 605
|
|
||||||
#define GLUT_NUM_SPACEBALL_BUTTONS 606
|
|
||||||
#define GLUT_NUM_BUTTON_BOX_BUTTONS 607
|
|
||||||
#define GLUT_NUM_DIALS 608
|
|
||||||
#define GLUT_NUM_TABLET_BUTTONS 609
|
|
||||||
#endif
|
|
||||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
|
|
||||||
#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610
|
|
||||||
#define GLUT_DEVICE_KEY_REPEAT 611
|
|
||||||
#define GLUT_HAS_JOYSTICK 612
|
|
||||||
#define GLUT_OWNS_JOYSTICK 613
|
|
||||||
#define GLUT_JOYSTICK_BUTTONS 614
|
|
||||||
#define GLUT_JOYSTICK_AXES 615
|
|
||||||
#define GLUT_JOYSTICK_POLL_RATE 616
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (GLUT_API_VERSION >= 3)
|
|
||||||
/* glutLayerGet parameters. */
|
|
||||||
#define GLUT_OVERLAY_POSSIBLE 800
|
|
||||||
#define GLUT_LAYER_IN_USE 801
|
|
||||||
#define GLUT_HAS_OVERLAY 802
|
|
||||||
#define GLUT_TRANSPARENT_INDEX 803
|
|
||||||
#define GLUT_NORMAL_DAMAGED 804
|
|
||||||
#define GLUT_OVERLAY_DAMAGED 805
|
|
||||||
|
|
||||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
|
|
||||||
/* glutVideoResizeGet parameters. */
|
|
||||||
#define GLUT_VIDEO_RESIZE_POSSIBLE 900
|
|
||||||
#define GLUT_VIDEO_RESIZE_IN_USE 901
|
|
||||||
#define GLUT_VIDEO_RESIZE_X_DELTA 902
|
|
||||||
#define GLUT_VIDEO_RESIZE_Y_DELTA 903
|
|
||||||
#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904
|
|
||||||
#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905
|
|
||||||
#define GLUT_VIDEO_RESIZE_X 906
|
|
||||||
#define GLUT_VIDEO_RESIZE_Y 907
|
|
||||||
#define GLUT_VIDEO_RESIZE_WIDTH 908
|
|
||||||
#define GLUT_VIDEO_RESIZE_HEIGHT 909
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* glutUseLayer parameters. */
|
|
||||||
#define GLUT_NORMAL 0
|
|
||||||
#define GLUT_OVERLAY 1
|
|
||||||
|
|
||||||
/* glutGetModifiers return mask. */
|
|
||||||
#define GLUT_ACTIVE_SHIFT 1
|
|
||||||
#define GLUT_ACTIVE_CTRL 2
|
|
||||||
#define GLUT_ACTIVE_ALT 4
|
|
||||||
|
|
||||||
/* glutSetCursor parameters. */
|
|
||||||
/* Basic arrows. */
|
|
||||||
#define GLUT_CURSOR_RIGHT_ARROW 0
|
|
||||||
#define GLUT_CURSOR_LEFT_ARROW 1
|
|
||||||
/* Symbolic cursor shapes. */
|
|
||||||
#define GLUT_CURSOR_INFO 2
|
|
||||||
#define GLUT_CURSOR_DESTROY 3
|
|
||||||
#define GLUT_CURSOR_HELP 4
|
|
||||||
#define GLUT_CURSOR_CYCLE 5
|
|
||||||
#define GLUT_CURSOR_SPRAY 6
|
|
||||||
#define GLUT_CURSOR_WAIT 7
|
|
||||||
#define GLUT_CURSOR_TEXT 8
|
|
||||||
#define GLUT_CURSOR_CROSSHAIR 9
|
|
||||||
/* Directional cursors. */
|
|
||||||
#define GLUT_CURSOR_UP_DOWN 10
|
|
||||||
#define GLUT_CURSOR_LEFT_RIGHT 11
|
|
||||||
/* Sizing cursors. */
|
|
||||||
#define GLUT_CURSOR_TOP_SIDE 12
|
|
||||||
#define GLUT_CURSOR_BOTTOM_SIDE 13
|
|
||||||
#define GLUT_CURSOR_LEFT_SIDE 14
|
|
||||||
#define GLUT_CURSOR_RIGHT_SIDE 15
|
|
||||||
#define GLUT_CURSOR_TOP_LEFT_CORNER 16
|
|
||||||
#define GLUT_CURSOR_TOP_RIGHT_CORNER 17
|
|
||||||
#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18
|
|
||||||
#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19
|
|
||||||
/* Inherit from parent window. */
|
|
||||||
#define GLUT_CURSOR_INHERIT 100
|
|
||||||
/* Blank cursor. */
|
|
||||||
#define GLUT_CURSOR_NONE 101
|
|
||||||
/* Fullscreen crosshair (if available). */
|
|
||||||
#define GLUT_CURSOR_FULL_CROSSHAIR 102
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* GLUT initialization sub-API. */
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutInit(int *argcp, char **argv);
|
|
||||||
#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
|
|
||||||
GLUTAPI void GLUTAPIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int));
|
|
||||||
#ifndef GLUT_BUILDING_LIB
|
|
||||||
static void GLUTAPIENTRY glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); }
|
|
||||||
#define glutInit glutInit_ATEXIT_HACK
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutInitDisplayMode(unsigned int mode);
|
|
||||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutInitDisplayString(const char *string);
|
|
||||||
#endif
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutInitWindowPosition(int x, int y);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutInitWindowSize(int width, int height);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutMainLoop(void);
|
|
||||||
|
|
||||||
/* GLUT window sub-API. */
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutCreateWindow(const char *title);
|
|
||||||
#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
|
|
||||||
GLUTAPI int GLUTAPIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int));
|
|
||||||
#ifndef GLUT_BUILDING_LIB
|
|
||||||
static int GLUTAPIENTRY glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); }
|
|
||||||
#define glutCreateWindow glutCreateWindow_ATEXIT_HACK
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutDestroyWindow(int win);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutPostRedisplay(void);
|
|
||||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutPostWindowRedisplay(int win);
|
|
||||||
#endif
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSwapBuffers(void);
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutGetWindow(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSetWindow(int win);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSetWindowTitle(const char *title);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSetIconTitle(const char *title);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutPositionWindow(int x, int y);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutReshapeWindow(int width, int height);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutPopWindow(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutPushWindow(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutIconifyWindow(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutShowWindow(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutHideWindow(void);
|
|
||||||
#if (GLUT_API_VERSION >= 3)
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutFullScreen(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSetCursor(int cursor);
|
|
||||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutWarpPointer(int x, int y);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* GLUT overlay sub-API. */
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutEstablishOverlay(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutRemoveOverlay(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutUseLayer(GLenum layer);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutPostOverlayRedisplay(void);
|
|
||||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutPostWindowOverlayRedisplay(int win);
|
|
||||||
#endif
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutShowOverlay(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutHideOverlay(void);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* GLUT menu sub-API. */
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutCreateMenu(void (GLUTCALLBACK *func)(int));
|
|
||||||
#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
|
|
||||||
GLUTAPI int GLUTAPIENTRY __glutCreateMenuWithExit(void (GLUTCALLBACK *func)(int), void (__cdecl *exitfunc)(int));
|
|
||||||
#ifndef GLUT_BUILDING_LIB
|
|
||||||
static int GLUTAPIENTRY glutCreateMenu_ATEXIT_HACK(void (GLUTCALLBACK *func)(int)) { return __glutCreateMenuWithExit(func, exit); }
|
|
||||||
#define glutCreateMenu glutCreateMenu_ATEXIT_HACK
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutDestroyMenu(int menu);
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutGetMenu(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSetMenu(int menu);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutAddMenuEntry(const char *label, int value);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutAddSubMenu(const char *label, int submenu);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutChangeToMenuEntry(int item, const char *label, int value);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutChangeToSubMenu(int item, const char *label, int submenu);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutRemoveMenuItem(int item);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutAttachMenu(int button);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutDetachMenu(int button);
|
|
||||||
|
|
||||||
/* GLUT window callback sub-API. */
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutDisplayFunc(void (GLUTCALLBACK *func)(void));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutReshapeFunc(void (GLUTCALLBACK *func)(int width, int height));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutKeyboardFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutMotionFunc(void (GLUTCALLBACK *func)(int x, int y));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK *func)(int x, int y));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutEntryFunc(void (GLUTCALLBACK *func)(int state));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutVisibilityFunc(void (GLUTCALLBACK *func)(int state));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutIdleFunc(void (GLUTCALLBACK *func)(void));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK *func)(int value), int value);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutMenuStateFunc(void (GLUTCALLBACK *func)(int state));
|
|
||||||
#if (GLUT_API_VERSION >= 2)
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSpecialFunc(void (GLUTCALLBACK *func)(int key, int x, int y));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK *func)(int x, int y, int z));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK *func)(int x, int y, int z));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK *func)(int button, int state));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutButtonBoxFunc(void (GLUTCALLBACK *func)(int button, int state));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutDialsFunc(void (GLUTCALLBACK *func)(int dial, int value));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutTabletMotionFunc(void (GLUTCALLBACK *func)(int x, int y));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutTabletButtonFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y));
|
|
||||||
#if (GLUT_API_VERSION >= 3)
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutMenuStatusFunc(void (GLUTCALLBACK *func)(int status, int x, int y));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK *func)(void));
|
|
||||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutWindowStatusFunc(void (GLUTCALLBACK *func)(int state));
|
|
||||||
#endif
|
|
||||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutKeyboardUpFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSpecialUpFunc(void (GLUTCALLBACK *func)(int key, int x, int y));
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutJoystickFunc(void (GLUTCALLBACK *func)(unsigned int buttonMask, int x, int y, int z), int pollInterval);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* GLUT color index sub-API. */
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSetColor(int ndx, GLfloat red, GLfloat green, GLfloat blue);
|
|
||||||
GLUTAPI GLfloat GLUTAPIENTRY glutGetColor(int ndx, int component);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutCopyColormap(int win);
|
|
||||||
|
|
||||||
/* GLUT state retrieval sub-API. */
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutGet(GLenum type);
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutDeviceGet(GLenum type);
|
|
||||||
#if (GLUT_API_VERSION >= 2)
|
|
||||||
/* GLUT extension support sub-API */
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutExtensionSupported(const char *name);
|
|
||||||
#endif
|
|
||||||
#if (GLUT_API_VERSION >= 3)
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutGetModifiers(void);
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutLayerGet(GLenum type);
|
|
||||||
#endif
|
|
||||||
#if (GLUT_API_VERSION >= 5)
|
|
||||||
typedef void (*GLUTproc)();
|
|
||||||
GLUTAPI GLUTproc GLUTAPIENTRY glutGetProcAddress(const char *procName);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* GLUT font sub-API */
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutBitmapCharacter(void *font, int character);
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutBitmapWidth(void *font, int character);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutStrokeCharacter(void *font, int character);
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutStrokeWidth(void *font, int character);
|
|
||||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutBitmapLength(void *font, const unsigned char *string);
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutStrokeLength(void *font, const unsigned char *string);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* GLUT pre-built models sub-API */
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutWireCube(GLdouble size);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSolidCube(GLdouble size);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutWireDodecahedron(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSolidDodecahedron(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutWireTeapot(GLdouble size);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSolidTeapot(GLdouble size);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutWireOctahedron(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSolidOctahedron(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutWireTetrahedron(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSolidTetrahedron(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutWireIcosahedron(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSolidIcosahedron(void);
|
|
||||||
|
|
||||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
|
|
||||||
/* GLUT video resize sub-API. */
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutVideoResizeGet(GLenum param);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSetupVideoResizing(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutStopVideoResizing(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutVideoResize(int x, int y, int width, int height);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutVideoPan(int x, int y, int width, int height);
|
|
||||||
|
|
||||||
/* GLUT debugging sub-API. */
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutReportErrors(void);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
|
|
||||||
/* GLUT device control sub-API. */
|
|
||||||
/* glutSetKeyRepeat modes. */
|
|
||||||
#define GLUT_KEY_REPEAT_OFF 0
|
|
||||||
#define GLUT_KEY_REPEAT_ON 1
|
|
||||||
#define GLUT_KEY_REPEAT_DEFAULT 2
|
|
||||||
|
|
||||||
/* Joystick button masks. */
|
|
||||||
#define GLUT_JOYSTICK_BUTTON_A 1
|
|
||||||
#define GLUT_JOYSTICK_BUTTON_B 2
|
|
||||||
#define GLUT_JOYSTICK_BUTTON_C 4
|
|
||||||
#define GLUT_JOYSTICK_BUTTON_D 8
|
|
||||||
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutIgnoreKeyRepeat(int ignore);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutSetKeyRepeat(int repeatMode);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutForceJoystickFunc(void);
|
|
||||||
|
|
||||||
/* GLUT game mode sub-API. */
|
|
||||||
/* glutGameModeGet. */
|
|
||||||
#define GLUT_GAME_MODE_ACTIVE 0
|
|
||||||
#define GLUT_GAME_MODE_POSSIBLE 1
|
|
||||||
#define GLUT_GAME_MODE_WIDTH 2
|
|
||||||
#define GLUT_GAME_MODE_HEIGHT 3
|
|
||||||
#define GLUT_GAME_MODE_PIXEL_DEPTH 4
|
|
||||||
#define GLUT_GAME_MODE_REFRESH_RATE 5
|
|
||||||
#define GLUT_GAME_MODE_DISPLAY_CHANGED 6
|
|
||||||
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutGameModeString(const char *string);
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutEnterGameMode(void);
|
|
||||||
GLUTAPI void GLUTAPIENTRY glutLeaveGameMode(void);
|
|
||||||
GLUTAPI int GLUTAPIENTRY glutGameModeGet(GLenum mode);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __glut_h__ */
|
|
||||||
@@ -1,192 +0,0 @@
|
|||||||
/*******************************************************************************
|
|
||||||
/
|
|
||||||
/ File: GLView.h
|
|
||||||
/
|
|
||||||
/ Copyright 1993-98, Be Incorporated, All Rights Reserved.
|
|
||||||
/
|
|
||||||
*******************************************************************************/
|
|
||||||
|
|
||||||
#ifndef BGLVIEW_H
|
|
||||||
#define BGLVIEW_H
|
|
||||||
|
|
||||||
#include <GL/gl.h>
|
|
||||||
|
|
||||||
#define BGL_RGB 0
|
|
||||||
#define BGL_INDEX 1
|
|
||||||
#define BGL_SINGLE 0
|
|
||||||
#define BGL_DOUBLE 2
|
|
||||||
#define BGL_DIRECT 0
|
|
||||||
#define BGL_INDIRECT 4
|
|
||||||
#define BGL_ACCUM 8
|
|
||||||
#define BGL_ALPHA 16
|
|
||||||
#define BGL_DEPTH 32
|
|
||||||
#define BGL_OVERLAY 64
|
|
||||||
#define BGL_UNDERLAY 128
|
|
||||||
#define BGL_STENCIL 512
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
|
|
||||||
|
|
||||||
#include <AppKit.h>
|
|
||||||
#include <interface/Window.h>
|
|
||||||
#include <interface/View.h>
|
|
||||||
#include <interface/Bitmap.h>
|
|
||||||
#include <game/WindowScreen.h>
|
|
||||||
#include <game/DirectWindow.h>
|
|
||||||
|
|
||||||
class BGLView : public BView {
|
|
||||||
public:
|
|
||||||
|
|
||||||
BGLView(BRect rect, char *name,
|
|
||||||
ulong resizingMode, ulong mode,
|
|
||||||
ulong options);
|
|
||||||
virtual ~BGLView();
|
|
||||||
|
|
||||||
void LockGL();
|
|
||||||
void UnlockGL();
|
|
||||||
void SwapBuffers();
|
|
||||||
void SwapBuffers( bool vSync );
|
|
||||||
BView * EmbeddedView();
|
|
||||||
status_t CopyPixelsOut(BPoint source, BBitmap *dest);
|
|
||||||
status_t CopyPixelsIn(BBitmap *source, BPoint dest);
|
|
||||||
virtual void ErrorCallback(unsigned long errorCode); // Mesa's GLenum is uint where Be's ones was ulong!
|
|
||||||
|
|
||||||
virtual void Draw(BRect updateRect);
|
|
||||||
|
|
||||||
virtual void AttachedToWindow();
|
|
||||||
virtual void AllAttached();
|
|
||||||
virtual void DetachedFromWindow();
|
|
||||||
virtual void AllDetached();
|
|
||||||
|
|
||||||
virtual void FrameResized(float width, float height);
|
|
||||||
virtual status_t Perform(perform_code d, void *arg);
|
|
||||||
|
|
||||||
/* The public methods below, for the moment,
|
|
||||||
are just pass-throughs to BView */
|
|
||||||
|
|
||||||
virtual status_t Archive(BMessage *data, bool deep = true) const;
|
|
||||||
|
|
||||||
virtual void MessageReceived(BMessage *msg);
|
|
||||||
virtual void SetResizingMode(uint32 mode);
|
|
||||||
|
|
||||||
virtual void Show();
|
|
||||||
virtual void Hide();
|
|
||||||
|
|
||||||
virtual BHandler *ResolveSpecifier(BMessage *msg, int32 index,
|
|
||||||
BMessage *specifier, int32 form,
|
|
||||||
const char *property);
|
|
||||||
virtual status_t GetSupportedSuites(BMessage *data);
|
|
||||||
|
|
||||||
/* New public functions */
|
|
||||||
void DirectConnected( direct_buffer_info *info );
|
|
||||||
void EnableDirectMode( bool enabled );
|
|
||||||
|
|
||||||
void * getGC() { return m_gc; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
virtual void _ReservedGLView1();
|
|
||||||
virtual void _ReservedGLView2();
|
|
||||||
virtual void _ReservedGLView3();
|
|
||||||
virtual void _ReservedGLView4();
|
|
||||||
virtual void _ReservedGLView5();
|
|
||||||
virtual void _ReservedGLView6();
|
|
||||||
virtual void _ReservedGLView7();
|
|
||||||
virtual void _ReservedGLView8();
|
|
||||||
|
|
||||||
BGLView(const BGLView &);
|
|
||||||
BGLView &operator=(const BGLView &);
|
|
||||||
|
|
||||||
void dither_front();
|
|
||||||
bool confirm_dither();
|
|
||||||
void draw(BRect r);
|
|
||||||
|
|
||||||
void * m_gc;
|
|
||||||
uint32 m_options;
|
|
||||||
uint32 m_ditherCount;
|
|
||||||
BLocker m_drawLock;
|
|
||||||
BLocker m_displayLock;
|
|
||||||
void * m_clip_info;
|
|
||||||
void * _Unused1;
|
|
||||||
|
|
||||||
BBitmap * m_ditherMap;
|
|
||||||
BRect m_bounds;
|
|
||||||
int16 * m_errorBuffer[2];
|
|
||||||
uint64 _reserved[8];
|
|
||||||
|
|
||||||
/* Direct Window stuff */
|
|
||||||
private:
|
|
||||||
void drawScanline( int x1, int x2, int y, void *data );
|
|
||||||
static void scanlineHandler(struct rasStateRec *state, GLint x1, GLint x2);
|
|
||||||
|
|
||||||
void lock_draw();
|
|
||||||
void unlock_draw();
|
|
||||||
bool validateView();
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class BGLScreen : public BWindowScreen {
|
|
||||||
public:
|
|
||||||
BGLScreen(char *name,
|
|
||||||
ulong screenMode, ulong options,
|
|
||||||
status_t *error, bool debug=false);
|
|
||||||
~BGLScreen();
|
|
||||||
|
|
||||||
void LockGL();
|
|
||||||
void UnlockGL();
|
|
||||||
void SwapBuffers();
|
|
||||||
virtual void ErrorCallback(unsigned long errorCode); // Mesa's GLenum is uint where Be's ones was ulong!
|
|
||||||
|
|
||||||
virtual void ScreenConnected(bool connected);
|
|
||||||
virtual void FrameResized(float width, float height);
|
|
||||||
virtual status_t Perform(perform_code d, void *arg);
|
|
||||||
|
|
||||||
/* The public methods below, for the moment,
|
|
||||||
are just pass-throughs to BWindowScreen */
|
|
||||||
|
|
||||||
virtual status_t Archive(BMessage *data, bool deep = true) const;
|
|
||||||
virtual void MessageReceived(BMessage *msg);
|
|
||||||
|
|
||||||
virtual void Show();
|
|
||||||
virtual void Hide();
|
|
||||||
|
|
||||||
virtual BHandler *ResolveSpecifier(BMessage *msg,
|
|
||||||
int32 index,
|
|
||||||
BMessage *specifier,
|
|
||||||
int32 form,
|
|
||||||
const char *property);
|
|
||||||
virtual status_t GetSupportedSuites(BMessage *data);
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
virtual void _ReservedGLScreen1();
|
|
||||||
virtual void _ReservedGLScreen2();
|
|
||||||
virtual void _ReservedGLScreen3();
|
|
||||||
virtual void _ReservedGLScreen4();
|
|
||||||
virtual void _ReservedGLScreen5();
|
|
||||||
virtual void _ReservedGLScreen6();
|
|
||||||
virtual void _ReservedGLScreen7();
|
|
||||||
virtual void _ReservedGLScreen8();
|
|
||||||
|
|
||||||
BGLScreen(const BGLScreen &);
|
|
||||||
BGLScreen &operator=(const BGLScreen &);
|
|
||||||
|
|
||||||
void * m_gc;
|
|
||||||
long m_options;
|
|
||||||
BLocker m_drawLock;
|
|
||||||
|
|
||||||
int32 m_colorSpace;
|
|
||||||
uint32 m_screen_mode;
|
|
||||||
|
|
||||||
uint64 _reserved[7];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // __cplusplus
|
|
||||||
|
|
||||||
#endif // BGLVIEW_H
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,113 +0,0 @@
|
|||||||
/*****************************************************************************/
|
|
||||||
// File: BitmapStream.h
|
|
||||||
// Class: BBitmapStream
|
|
||||||
// Reimplemented by: Travis Smith, Michael Wilber, Translation Kit Team
|
|
||||||
// Reimplementation: 2002-04
|
|
||||||
//
|
|
||||||
// Description: BPositionIO based object to read/write bitmap format to/from
|
|
||||||
// a BBitmap object.
|
|
||||||
//
|
|
||||||
// The BTranslationUtils class uses this object and makes it
|
|
||||||
// easy for users to load bitmaps.
|
|
||||||
//
|
|
||||||
// Copyright (c) 2002 OpenBeOS Project
|
|
||||||
//
|
|
||||||
// Original Version: Copyright 1998, Be Incorporated, All Rights Reserved.
|
|
||||||
// Copyright 1995-1997, Jon Watte
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
|
||||||
// to deal in the Software without restriction, including without limitation
|
|
||||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
// and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included
|
|
||||||
// in all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
||||||
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
// DEALINGS IN THE SOFTWARE.
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(_BITMAP_STREAM_H)
|
|
||||||
#define _BITMAP_STREAM_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
#include <TranslationDefs.h>
|
|
||||||
#include <DataIO.h>
|
|
||||||
#include <TranslatorFormats.h>
|
|
||||||
#include <ByteOrder.h>
|
|
||||||
|
|
||||||
class BBitmap;
|
|
||||||
|
|
||||||
class BBitmapStream : public BPositionIO {
|
|
||||||
public:
|
|
||||||
BBitmapStream(BBitmap *bitmap = NULL);
|
|
||||||
// Initializes the stream to use map as the bitmap for stream
|
|
||||||
// operations. If map is null, a BBitmap is created when properly
|
|
||||||
// formatted data is written to the stream.
|
|
||||||
|
|
||||||
~BBitmapStream();
|
|
||||||
// Destroys the BBitmap held by this object if it has not been
|
|
||||||
// detached and frees fpBigEndianHeader
|
|
||||||
|
|
||||||
// Overrides from BPositionIO
|
|
||||||
ssize_t ReadAt(off_t pos, void *buffer, size_t size);
|
|
||||||
// reads data from the bitmap into buffer
|
|
||||||
ssize_t WriteAt(off_t pos, const void *data, size_t size);
|
|
||||||
// writes the data from data into this bitmap
|
|
||||||
// (if the data is properly formatted)
|
|
||||||
off_t Seek(off_t position, uint32 whence);
|
|
||||||
// sets the stream position member
|
|
||||||
off_t Position() const;
|
|
||||||
// returns the current stream position
|
|
||||||
off_t Size() const;
|
|
||||||
// returns the size of the data
|
|
||||||
status_t SetSize(off_t size);
|
|
||||||
// sets the amount of memory to be used by this object
|
|
||||||
|
|
||||||
status_t DetachBitmap(BBitmap **outMap);
|
|
||||||
// "Detaches" the bitmap used by this stream and returns it
|
|
||||||
// to the user through outMap. This allows the user to
|
|
||||||
// use the bitmap even after the BBitmapStream that it
|
|
||||||
// came from has been deleted.
|
|
||||||
|
|
||||||
protected:
|
|
||||||
TranslatorBitmap fHeader;
|
|
||||||
// stores the bitmap header information in the
|
|
||||||
// host format, used to determine the format of
|
|
||||||
// the bitmap data and to see if the data is valid
|
|
||||||
BBitmap *fBitmap;
|
|
||||||
// the actual bitmap used by this object
|
|
||||||
size_t fPosition;
|
|
||||||
// current data position
|
|
||||||
size_t fSize;
|
|
||||||
// size of the data stored
|
|
||||||
bool fDetached;
|
|
||||||
// true if the bitmap has been detached, false if not
|
|
||||||
|
|
||||||
void SwapHeader(const TranslatorBitmap *source,
|
|
||||||
TranslatorBitmap *destination);
|
|
||||||
// swaps the byte order of source, no matter what the
|
|
||||||
// byte order of source is, and copies the result to
|
|
||||||
// destination
|
|
||||||
|
|
||||||
private:
|
|
||||||
TranslatorBitmap *fpBigEndianHeader;
|
|
||||||
// same data as in fHeader, but in Big Endian format
|
|
||||||
// (Intel machines are Little Endian)
|
|
||||||
|
|
||||||
// For maintaining binary compatibility with past and future
|
|
||||||
// versions of this object
|
|
||||||
long fUnused[5];
|
|
||||||
virtual void _ReservedBitmapStream1();
|
|
||||||
virtual void _ReservedBitmapStream2();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* _BITMAP_STREAM_H */
|
|
||||||
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
/********************************************************************************
|
|
||||||
/
|
|
||||||
/ File: TranslationDefs.h
|
|
||||||
/
|
|
||||||
/ Description: Miscellaneous basic definitions for the Translation Kit
|
|
||||||
/
|
|
||||||
/ Copyright 1998, Be Incorporated, All Rights Reserved.
|
|
||||||
/ Copyright 1995-1997, Jon Watte
|
|
||||||
/
|
|
||||||
/ 2002 - translation_data struct added by Michael Wilber, OBOS TransKit Team
|
|
||||||
********************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(_TRANSLATION_DEFS_H)
|
|
||||||
#define _TRANSLATION_DEFS_H
|
|
||||||
|
|
||||||
#include <BeBuild.h>
|
|
||||||
#include <SupportDefs.h>
|
|
||||||
#include <TranslationErrors.h>
|
|
||||||
|
|
||||||
|
|
||||||
typedef unsigned long translator_id;
|
|
||||||
|
|
||||||
|
|
||||||
/* when you export this struct, end with an empty */
|
|
||||||
/* record that has 0 for "type" */
|
|
||||||
|
|
||||||
|
|
||||||
/* These are defines, because they reflect the state at which the app was compiled */
|
|
||||||
#define B_TRANSLATION_CURRENT_VERSION B_BEOS_VERSION
|
|
||||||
#define B_TRANSLATION_MIN_VERSION 161
|
|
||||||
|
|
||||||
extern const char * B_TRANSLATOR_MIME_TYPE;
|
|
||||||
|
|
||||||
struct translation_format {
|
|
||||||
uint32 type; /* B_ASCII_TYPE, ...*/
|
|
||||||
uint32 group; /* B_TRANSLATOR_BITMAP, B_TRANSLATOR_TEXT, ...*/
|
|
||||||
float quality; /* ability of the format to retain the data of its group (0.0-1.0) */
|
|
||||||
float capability; /* ability of the translator to decode the format (0.0-1.0) */
|
|
||||||
char MIME[251]; /* MIME string*/
|
|
||||||
char name[251]; /* only descriptive */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/* This struct is different from the format struct for a reason: */
|
|
||||||
/* to separate the notion of formats from the notion of translations */
|
|
||||||
|
|
||||||
struct translator_info { /* Info about a specific translation*/
|
|
||||||
uint32 type; /* B_ASCII_TYPE, ...*/
|
|
||||||
translator_id translator; /* Filled in by BTranslationRoster*/
|
|
||||||
uint32 group; /* B_TRANSLATOR_BITMAP, B_TRANSLATOR_TEXT, ...*/
|
|
||||||
float quality; /* ability of the format to retain the data of its group (0.0-1.0) */
|
|
||||||
float capability; /* ability of the translator to decode the format (0.0-1.0) */
|
|
||||||
char name[251];
|
|
||||||
char MIME[251];
|
|
||||||
};
|
|
||||||
|
|
||||||
// BEGIN: Haiku R1 Extensions
|
|
||||||
|
|
||||||
#define B_TRANSLATION_MAKE_VERSION(major,minor,revision) ((major << 8) | ((minor << 4) & 0xf0) | (revision & 0x0f))
|
|
||||||
#define B_TRANSLATION_MAJOR_VERSION(v) (v >> 8)
|
|
||||||
#define B_TRANSLATION_MINOR_VERSION(v) ((v >> 4) & 0xf)
|
|
||||||
#define B_TRANSLATION_REVISION_VERSION(v) (v & 0xf)
|
|
||||||
|
|
||||||
// END: Haiku R1 Extensions
|
|
||||||
|
|
||||||
#endif /* _TRANSLATION_DEFS_H */
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
/********************************************************************************
|
|
||||||
/
|
|
||||||
/ File: TranslationErrors.h
|
|
||||||
/
|
|
||||||
/ Description: Error codes for the Translation Kit
|
|
||||||
/
|
|
||||||
/ Copyright 1998, Be Incorporated, All Rights Reserved.
|
|
||||||
/ Copyright 1995-1997, Jon Watte
|
|
||||||
/
|
|
||||||
********************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(_TRANSLATION_ERRORS_H)
|
|
||||||
#define _TRANSLATION_ERRORS_H
|
|
||||||
|
|
||||||
#include <Errors.h>
|
|
||||||
|
|
||||||
|
|
||||||
enum B_TRANSLATION_ERROR {
|
|
||||||
B_TRANSLATION_BASE_ERROR = B_TRANSLATION_ERROR_BASE,
|
|
||||||
B_NO_TRANSLATOR = B_TRANSLATION_BASE_ERROR, /* no translator exists for data */
|
|
||||||
B_ILLEGAL_DATA, /* data is not what it said it was */
|
|
||||||
/* aliases */
|
|
||||||
B_NOT_INITIALIZED = B_NO_INIT
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* _TRANSLATION_ERRORS_H */
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
/***************************************************************
|
|
||||||
/
|
|
||||||
/ File: TranslationKit.h
|
|
||||||
/
|
|
||||||
/ Copyright 1998, Be Incorporated.
|
|
||||||
/
|
|
||||||
***************************************************************/
|
|
||||||
|
|
||||||
#include <BitmapStream.h>
|
|
||||||
#include <TranslationDefs.h>
|
|
||||||
#include <TranslationErrors.h>
|
|
||||||
#include <TranslationUtils.h>
|
|
||||||
#include <TranslatorFormats.h>
|
|
||||||
#include <TranslatorRoster.h>
|
|
||||||
#include <Translator.h>
|
|
||||||
|
|
||||||
/* we do not include TranslatorAddOn.h because it's only used when building an add-on */
|
|
||||||
|
|
||||||
@@ -1,126 +0,0 @@
|
|||||||
/*****************************************************************************/
|
|
||||||
// File: TranslationUtils.h
|
|
||||||
// Class: BTranslationUtils
|
|
||||||
// Reimplemented by: Michael Wilber, Translation Kit Team
|
|
||||||
// Reimplementation: 2002-04
|
|
||||||
//
|
|
||||||
// Description: Utility functions for the Translation Kit
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// Copyright (c) 2002 OpenBeOS Project
|
|
||||||
//
|
|
||||||
// Original Version: Copyright 1998, Be Incorporated, All Rights Reserved.
|
|
||||||
// Copyright 1995-1997, Jon Watte
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
|
||||||
// to deal in the Software without restriction, including without limitation
|
|
||||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
// and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included
|
|
||||||
// in all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
||||||
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
// DEALINGS IN THE SOFTWARE.
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(_TRANSLATION_UTILS_H)
|
|
||||||
#define _TRANSLATION_UTILS_H
|
|
||||||
|
|
||||||
#include <TranslationDefs.h>
|
|
||||||
#include <SupportDefs.h>
|
|
||||||
|
|
||||||
class BBitmap;
|
|
||||||
class BTranslatorRoster;
|
|
||||||
class BPositionIO;
|
|
||||||
class BMenu;
|
|
||||||
|
|
||||||
// This class is a little different from many other classes.
|
|
||||||
// You don't create an instance of it; you just call its various
|
|
||||||
// static member functions for utility-like operations.
|
|
||||||
class BTranslationUtils {
|
|
||||||
BTranslationUtils();
|
|
||||||
~BTranslationUtils();
|
|
||||||
BTranslationUtils(const BTranslationUtils &);
|
|
||||||
BTranslationUtils & operator=(const BTranslationUtils &);
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
// BITMAP getters - allocate the BBitmap; you call delete on it!
|
|
||||||
|
|
||||||
static BBitmap *GetBitmap(const char *kName, BTranslatorRoster *roster = NULL);
|
|
||||||
// Get bitmap - first try as file name, then as B_TRANSLATOR_BITMAP
|
|
||||||
// resource type from app file -- can be of any kind for which a
|
|
||||||
// translator is installed (TGA, etc)
|
|
||||||
|
|
||||||
static BBitmap *GetBitmap(uint32 type, int32 id,
|
|
||||||
BTranslatorRoster *roster = NULL);
|
|
||||||
// Get bitmap - from app resource by id
|
|
||||||
|
|
||||||
static BBitmap *GetBitmap(uint32 type, const char *kName,
|
|
||||||
BTranslatorRoster *roster = NULL);
|
|
||||||
// Get Bitmap - from app resource by name
|
|
||||||
|
|
||||||
static BBitmap *GetBitmapFile(const char *kName,
|
|
||||||
BTranslatorRoster *roster = NULL);
|
|
||||||
// Get bitmap - from file only
|
|
||||||
|
|
||||||
static BBitmap *GetBitmap(const entry_ref *kRef,
|
|
||||||
BTranslatorRoster *roster = NULL);
|
|
||||||
// Get bitmap - from open file (or BMemoryIO)
|
|
||||||
|
|
||||||
static BBitmap *GetBitmap(BPositionIO *stream,
|
|
||||||
BTranslatorRoster *roster = NULL);
|
|
||||||
// Get bitmap - from open file or IO type object
|
|
||||||
// This function does the real work for the other GetBitmap functions
|
|
||||||
|
|
||||||
static status_t GetStyledText(BPositionIO *fromStream, BTextView *intoView,
|
|
||||||
BTranslatorRoster *roster = NULL);
|
|
||||||
// For styled text, we can translate from a stream
|
|
||||||
// directly into a BTextView
|
|
||||||
|
|
||||||
static status_t PutStyledText(BTextView *fromView, BPositionIO *intoStream,
|
|
||||||
BTranslatorRoster *roster = NULL);
|
|
||||||
// Saving is slightly different -- given the BTextView, a
|
|
||||||
// B_STYLED_TEXT_FORMAT stream is written to intoStream. You can then call
|
|
||||||
// Translate() yourself to translate that stream into something else if
|
|
||||||
// you want, if it is a temp file or a BMallocIO. It's also OK to write
|
|
||||||
// the B_STYLED_TEXT_FORMAT to a file, although the StyledEdit format
|
|
||||||
// (TEXT file + style attributes) is preferred. This convenience function
|
|
||||||
// is only marginally part of the Translation Kit, but what the hey :-)
|
|
||||||
|
|
||||||
static status_t WriteStyledEditFile(BTextView *fromView, BFile *intoFile);
|
|
||||||
// Writes the styled text data from fromView to intoFile
|
|
||||||
|
|
||||||
static BMessage *GetDefaultSettings(translator_id forTranslator,
|
|
||||||
BTranslatorRoster *roster = NULL);
|
|
||||||
// Get default settings for the translator with the id forTranslator
|
|
||||||
|
|
||||||
static BMessage *GetDefaultSettings(const char *kTranslatorName,
|
|
||||||
int32 translatorVersion);
|
|
||||||
// Get default settings for the translator with the name kTranslatorName
|
|
||||||
|
|
||||||
// Envious of that "Save As" menu in ShowImage? Well, you can have your own!
|
|
||||||
// AddTranslationItems will add menu items for all translations from the
|
|
||||||
// basic format you specify (B_TRANSLATOR_BITMAP, B_TRANSLATOR_TEXT etc).
|
|
||||||
// The translator ID and format constant chosen will be added to the message
|
|
||||||
// that is sent to you when the menu item is selected.
|
|
||||||
enum {
|
|
||||||
B_TRANSLATION_MENU = 'BTMN'
|
|
||||||
};
|
|
||||||
static status_t AddTranslationItems(BMenu *intoMenu, uint32 fromType,
|
|
||||||
const BMessage *kModel = NULL, // default B_TRANSLATION_MENU
|
|
||||||
const char *kTranslatorIdName = NULL, // default "be:translator"
|
|
||||||
const char *kTranslatorTypeName = NULL, // default "be:type"
|
|
||||||
BTranslatorRoster *roster = NULL);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* _TRANSLATION_UTILS_H */
|
|
||||||
|
|
||||||
@@ -1,137 +0,0 @@
|
|||||||
/*****************************************************************************/
|
|
||||||
// File: Translator.h
|
|
||||||
// Class: BTranslator
|
|
||||||
// Reimplemented by: Michael Wilber, Translation Kit Team
|
|
||||||
// Reimplementation: 2002-06-15
|
|
||||||
//
|
|
||||||
// Description: This file contains the BTranslator class, the base class for
|
|
||||||
// all translators that don't use the BeOS R4/R4.5 add-on method.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// Copyright (c) 2002 OpenBeOS Project
|
|
||||||
//
|
|
||||||
// Original Version: Copyright 1998, Be Incorporated, All Rights Reserved.
|
|
||||||
// Copyright 1995-1997, Jon Watte
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
|
||||||
// to deal in the Software without restriction, including without limitation
|
|
||||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
// and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included
|
|
||||||
// in all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
||||||
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
// DEALINGS IN THE SOFTWARE.
|
|
||||||
/*****************************************************************************/
|
|
||||||
#ifndef _TRANSLATOR_H
|
|
||||||
#define _TRANSLATOR_H
|
|
||||||
|
|
||||||
#include <TranslationDefs.h>
|
|
||||||
#include <Archivable.h>
|
|
||||||
|
|
||||||
class BTranslator : public BArchivable {
|
|
||||||
public:
|
|
||||||
BTranslator();
|
|
||||||
// Sets refcount to 1 (the object is initially Acquired()'d once)
|
|
||||||
|
|
||||||
BTranslator *Acquire();
|
|
||||||
// return actual object and increment the refcount
|
|
||||||
|
|
||||||
BTranslator *Release();
|
|
||||||
// Decrements the refcount and returns pointer to the object.
|
|
||||||
// When the refcount is zero, NULL is returned and the object is
|
|
||||||
// deleted
|
|
||||||
|
|
||||||
int32 ReferenceCount();
|
|
||||||
// returns the refcount, THIS IS NOT THREAD SAFE, ITS ONLY FOR "FUN"
|
|
||||||
|
|
||||||
virtual const char *TranslatorName() const = 0;
|
|
||||||
// returns the short name of the translator
|
|
||||||
|
|
||||||
virtual const char *TranslatorInfo() const = 0;
|
|
||||||
// returns a verbose name/description for the translator
|
|
||||||
|
|
||||||
virtual int32 TranslatorVersion() const = 0;
|
|
||||||
// returns the version of the translator
|
|
||||||
|
|
||||||
virtual const translation_format *InputFormats(int32 *out_count)
|
|
||||||
const = 0;
|
|
||||||
// returns the input formats and the count of input formats
|
|
||||||
// that this translator supports
|
|
||||||
|
|
||||||
virtual const translation_format *OutputFormats(int32 *out_count)
|
|
||||||
const = 0;
|
|
||||||
// returns the output formats and the count of output formats
|
|
||||||
// that this translator supports
|
|
||||||
|
|
||||||
virtual status_t Identify(BPositionIO *inSource,
|
|
||||||
const translation_format *inFormat, BMessage *ioExtension,
|
|
||||||
translator_info *outInfo, uint32 outType) = 0;
|
|
||||||
// determines whether or not this translator can convert the
|
|
||||||
// data in inSource to the type outType
|
|
||||||
|
|
||||||
virtual status_t Translate(BPositionIO *inSource,
|
|
||||||
const translator_info *inInfo, BMessage *ioExtension,
|
|
||||||
uint32 outType, BPositionIO *outDestination) = 0;
|
|
||||||
// this function is the whole point of the Translation Kit,
|
|
||||||
// it translates the data in inSource to outDestination
|
|
||||||
// using the format outType
|
|
||||||
|
|
||||||
virtual status_t MakeConfigurationView(BMessage *ioExtension,
|
|
||||||
BView **outView, BRect *outExtent);
|
|
||||||
// this function creates a view that allows the user to
|
|
||||||
// configure the translator, this function is not
|
|
||||||
// required for all translators
|
|
||||||
|
|
||||||
virtual status_t GetConfigurationMessage(BMessage *ioExtension);
|
|
||||||
// puts information about the current configuration of the
|
|
||||||
// translator into ioExtension so that it can be used with
|
|
||||||
// Identify or Translate or whatever, this function is
|
|
||||||
// not required for all translators
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual ~BTranslator();
|
|
||||||
// this is protected because the object is deleted by the
|
|
||||||
// Release() function instead of being deleted directly by
|
|
||||||
// the user
|
|
||||||
|
|
||||||
private:
|
|
||||||
int32 fRefCount;
|
|
||||||
// number of times this object has been referenced
|
|
||||||
// by the Acquire() function
|
|
||||||
|
|
||||||
sem_id fSem;
|
|
||||||
// used to lock object for Acquire() and Release()
|
|
||||||
|
|
||||||
// For binary compatibility with past and future
|
|
||||||
// version of this class
|
|
||||||
uint32 fUnused[8];
|
|
||||||
virtual status_t _Reserved_Translator_0(int32, void *);
|
|
||||||
virtual status_t _Reserved_Translator_1(int32, void *);
|
|
||||||
virtual status_t _Reserved_Translator_2(int32, void *);
|
|
||||||
virtual status_t _Reserved_Translator_3(int32, void *);
|
|
||||||
virtual status_t _Reserved_Translator_4(int32, void *);
|
|
||||||
virtual status_t _Reserved_Translator_5(int32, void *);
|
|
||||||
virtual status_t _Reserved_Translator_6(int32, void *);
|
|
||||||
virtual status_t _Reserved_Translator_7(int32, void *);
|
|
||||||
};
|
|
||||||
|
|
||||||
// The post-4.5 API suggests implementing this function in your translator
|
|
||||||
// add-on rather than the separate functions and variables of the previous
|
|
||||||
// API. You will be called for values of n starting at 0 and increasing;
|
|
||||||
// return 0 when you can't make another kind of translator (i.e. for n=1
|
|
||||||
// if you only implement one subclass of BTranslator). Ignore flags for now.
|
|
||||||
extern "C" _EXPORT BTranslator *make_nth_translator(int32 n, image_id you,
|
|
||||||
uint32 flags, ...);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* _TRANSLATOR_H */
|
|
||||||
@@ -1,92 +0,0 @@
|
|||||||
/********************************************************************************
|
|
||||||
/
|
|
||||||
/ File: TranslatorAddOn.h
|
|
||||||
/
|
|
||||||
/ Description: This header file defines the interface that should be
|
|
||||||
/ implemented and exported by a Tanslation Kit add-on.
|
|
||||||
/ You will only need to include this header when building
|
|
||||||
/ an actual add-on, not when just using the kit.
|
|
||||||
/
|
|
||||||
/ Copyright 1998, Be Incorporated, All Rights Reserved.
|
|
||||||
/ Copyright 1995-1997, Jon Watte
|
|
||||||
/
|
|
||||||
********************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _TRANSLATOR_ADD_ON_H
|
|
||||||
#define _TRANSLATOR_ADD_ON_H
|
|
||||||
|
|
||||||
#include <TranslationDefs.h>
|
|
||||||
|
|
||||||
|
|
||||||
class BView;
|
|
||||||
class BRect;
|
|
||||||
class BPositionIO;
|
|
||||||
|
|
||||||
|
|
||||||
/* This is the 4.0 and 4.5 compatible API. For later versions, use the */
|
|
||||||
/* BTranslator-based API (make_nth_translator) */
|
|
||||||
|
|
||||||
/* These variables and functions should be exported by a translator add-on */
|
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
|
|
||||||
_EXPORT extern char translatorName[]; /* required, C string, ex "Jon's Sound" */
|
|
||||||
_EXPORT extern char translatorInfo[]; /* required, descriptive C string, ex "Jon's Sound Translator (shareware $5: [email protected]) v1.00" */
|
|
||||||
_EXPORT extern int32 translatorVersion; /* required, integer, ex 100 */
|
|
||||||
|
|
||||||
_EXPORT extern translation_format inputFormats[]; /* optional (else Identify is always called) */
|
|
||||||
_EXPORT extern translation_format outputFormats[]; /* optional (else Translate is called anyway) */
|
|
||||||
/* Translators that don't export outputFormats */
|
|
||||||
/* will not be considered by files looking for */
|
|
||||||
/* specific output formats. */
|
|
||||||
|
|
||||||
/* Return B_NO_TRANSLATOR if not handling this data. */
|
|
||||||
/* Even if inputFormats exists, may be called for data without hints */
|
|
||||||
/* Ff outType is not 0, must be able to export in wanted format */
|
|
||||||
|
|
||||||
_EXPORT extern status_t Identify( /* required */
|
|
||||||
BPositionIO * inSource,
|
|
||||||
const translation_format * inFormat, /* can beNULL */
|
|
||||||
BMessage * ioExtension, /* can be NULL */
|
|
||||||
translator_info * outInfo,
|
|
||||||
uint32 outType);
|
|
||||||
|
|
||||||
/* Return B_NO_TRANSLATOR if not handling the output format */
|
|
||||||
/* If outputFormats exists, will only be called for those formats */
|
|
||||||
|
|
||||||
_EXPORT extern status_t Translate( /* required */
|
|
||||||
BPositionIO * inSource,
|
|
||||||
const translator_info * inInfo,
|
|
||||||
BMessage * ioExtension, /* can be NULL */
|
|
||||||
uint32 outType,
|
|
||||||
BPositionIO * outDestination);
|
|
||||||
|
|
||||||
/* The view will get resized to what the parent thinks is */
|
|
||||||
/* reasonable. However, it will still receive MouseDowns etc. */
|
|
||||||
/* Your view should change settings in the translator immediately, */
|
|
||||||
/* taking care not to change parameters for a translation that is */
|
|
||||||
/* currently running. Typically, you'll have a global struct for */
|
|
||||||
/* settings that is atomically copied into the translator function */
|
|
||||||
/* as a local when translation starts. */
|
|
||||||
/* Store your settings wherever you feel like it. */
|
|
||||||
|
|
||||||
_EXPORT extern status_t MakeConfig( /* optional */
|
|
||||||
BMessage * ioExtension, /* can be NULL */
|
|
||||||
BView * * outView,
|
|
||||||
BRect * outExtent);
|
|
||||||
|
|
||||||
/* Copy your current settings to a BMessage that may be passed */
|
|
||||||
/* to BTranslators::Translate at some later time when the user wants to */
|
|
||||||
/* use whatever settings you're using right now. */
|
|
||||||
|
|
||||||
_EXPORT extern status_t GetConfigMessage( /* optional */
|
|
||||||
BMessage * ioExtension);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* _TRANSLATOR_ADD_ON_H */
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,179 +0,0 @@
|
|||||||
/********************************************************************************
|
|
||||||
/
|
|
||||||
/ File: TranslatorFormats.h
|
|
||||||
/
|
|
||||||
/ Description: Defines for common "lowest common denominator" formats
|
|
||||||
/ used in the Translation Kit.
|
|
||||||
/
|
|
||||||
/ Copyright 1998, Be Incorporated, All Rights Reserved.
|
|
||||||
/ Copyright 1995-1997, Jon Watte
|
|
||||||
/
|
|
||||||
********************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef _TRANSLATOR_FORMATS_H
|
|
||||||
#define _TRANSLATOR_FORMATS_H
|
|
||||||
|
|
||||||
|
|
||||||
#include <GraphicsDefs.h>
|
|
||||||
#include <Rect.h>
|
|
||||||
|
|
||||||
/* extensions used in the extension BMessage. Use of these */
|
|
||||||
/* is described in the documentation. */
|
|
||||||
|
|
||||||
_IMPEXP_TRANSLATION extern char B_TRANSLATOR_EXT_HEADER_ONLY[];
|
|
||||||
_IMPEXP_TRANSLATION extern char B_TRANSLATOR_EXT_DATA_ONLY[];
|
|
||||||
_IMPEXP_TRANSLATION extern char B_TRANSLATOR_EXT_COMMENT[];
|
|
||||||
_IMPEXP_TRANSLATION extern char B_TRANSLATOR_EXT_TIME[];
|
|
||||||
_IMPEXP_TRANSLATION extern char B_TRANSLATOR_EXT_FRAME[];
|
|
||||||
_IMPEXP_TRANSLATION extern char B_TRANSLATOR_EXT_BITMAP_RECT[];
|
|
||||||
_IMPEXP_TRANSLATION extern char B_TRANSLATOR_EXT_BITMAP_COLOR_SPACE[];
|
|
||||||
_IMPEXP_TRANSLATION extern char B_TRANSLATOR_EXT_BITMAP_PALETTE[];
|
|
||||||
_IMPEXP_TRANSLATION extern char B_TRANSLATOR_EXT_SOUND_CHANNEL[];
|
|
||||||
_IMPEXP_TRANSLATION extern char B_TRANSLATOR_EXT_SOUND_MONO[];
|
|
||||||
_IMPEXP_TRANSLATION extern char B_TRANSLATOR_EXT_SOUND_MARKER[];
|
|
||||||
_IMPEXP_TRANSLATION extern char B_TRANSLATOR_EXT_SOUND_LOOP[];
|
|
||||||
|
|
||||||
#if defined(_DATATYPES_COMPATIBLE_)
|
|
||||||
#define kCommentExtension "/comment"
|
|
||||||
#define kTimeExtension "/time"
|
|
||||||
#define kFrameExtension "/frame"
|
|
||||||
#define kBitsRectExtension "bits/Rect"
|
|
||||||
#define kBitsSpaceExtension "bits/space"
|
|
||||||
#define kHeaderExtension "/headerOnly"
|
|
||||||
#define kDataExtension "/dataOnly"
|
|
||||||
#define kNoisChannelExtension "nois/channel"
|
|
||||||
#define kNoisMonoExtension "nois/mono"
|
|
||||||
#define kNoisMarkerExtension "nois/marker"
|
|
||||||
#define kNoisLoopExtension "nois/loop"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* For each data group, there is a "standard" format that */
|
|
||||||
/* all translators should support. */
|
|
||||||
/* These type codes are lower-case because they are already */
|
|
||||||
/* established standards in the Be developer community. */
|
|
||||||
enum TranslatorGroups {
|
|
||||||
B_TRANSLATOR_BITMAP = 'bits', /* TranslatorBitmap */
|
|
||||||
B_TRANSLATOR_PICTURE = 'pict', /* BPicture data */
|
|
||||||
B_TRANSLATOR_TEXT = 'TEXT', /* B_ASCII_TYPE */
|
|
||||||
B_TRANSLATOR_SOUND = 'nois', /* TranslatorSound */
|
|
||||||
B_TRANSLATOR_MIDI = 'midi', /* standard MIDI */
|
|
||||||
B_TRANSLATOR_MEDIA = 'mhi!', /* a stream of stuff */
|
|
||||||
B_TRANSLATOR_NONE = 'none',
|
|
||||||
B_TRANSLATOR_ANY_TYPE = 0
|
|
||||||
};
|
|
||||||
#if defined(_DATATYPES_COMPATIBLE_)
|
|
||||||
#define kAnyType 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* some pre-defined data format type codes */
|
|
||||||
|
|
||||||
enum {
|
|
||||||
/* bitmap formats (B_TRANSLATOR_BITMAP) */
|
|
||||||
B_GIF_FORMAT = 'GIF ',
|
|
||||||
B_JPEG_FORMAT = 'JPEG',
|
|
||||||
B_PNG_FORMAT = 'PNG ',
|
|
||||||
B_PPM_FORMAT = 'PPM ',
|
|
||||||
B_TGA_FORMAT = 'TGA ',
|
|
||||||
B_BMP_FORMAT = 'BMP ',
|
|
||||||
B_TIFF_FORMAT = 'TIFF',
|
|
||||||
|
|
||||||
/* line drawing formats (B_TRANSLATOR_PICTURE) */
|
|
||||||
B_DXF_FORMAT = 'DXF ',
|
|
||||||
B_EPS_FORMAT = 'EPS ',
|
|
||||||
B_PICT_FORMAT = 'PICT', /* MacOS PICT file */
|
|
||||||
|
|
||||||
/* sound file formats (B_TRANSLATOR_SOUND) */
|
|
||||||
B_WAV_FORMAT = 'WAV ',
|
|
||||||
B_AIFF_FORMAT = 'AIFF',
|
|
||||||
B_CD_FORMAT = 'CD ', /* 44 kHz, stereo, 16 bit, linear, big-endian */
|
|
||||||
B_AU_FORMAT = 'AU ', /* Sun ulaw */
|
|
||||||
|
|
||||||
/* text file formats (B_TRANSLATOR_TEXT) */
|
|
||||||
B_STYLED_TEXT_FORMAT = 'STXT'
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* This is the standard bitmap format */
|
|
||||||
/* Note that data is always in big-endian format in the stream! */
|
|
||||||
struct TranslatorBitmap {
|
|
||||||
uint32 magic; /* B_TRANSLATOR_BITMAP */
|
|
||||||
BRect bounds;
|
|
||||||
uint32 rowBytes;
|
|
||||||
color_space colors;
|
|
||||||
uint32 dataSize;
|
|
||||||
}; /* data follows, padded to rowBytes */
|
|
||||||
|
|
||||||
/* This is the standard sound format */
|
|
||||||
/* Note that data is always in big-endian format in the stream! */
|
|
||||||
struct TranslatorSound {
|
|
||||||
uint32 magic; /* B_TRANSLATOR_SOUND */
|
|
||||||
uint32 channels; /* Left should always be first */
|
|
||||||
float sampleFreq; /* 16 bit linear is assumed */
|
|
||||||
uint32 numFrames;
|
|
||||||
}; /* data follows */
|
|
||||||
|
|
||||||
/* This is the standard styled text format */
|
|
||||||
/* Note that it is of group type text! */
|
|
||||||
/* Skip any records types you don't know about. */
|
|
||||||
/* Always big-endian. */
|
|
||||||
struct TranslatorStyledTextRecordHeader {
|
|
||||||
uint32 magic;
|
|
||||||
uint32 header_size;
|
|
||||||
uint32 data_size;
|
|
||||||
}; /* any number of records */
|
|
||||||
struct TranslatorStyledTextStreamHeader {
|
|
||||||
#if defined(__cplusplus)
|
|
||||||
enum {
|
|
||||||
STREAM_HEADER_MAGIC = 'STXT'
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
TranslatorStyledTextRecordHeader header;
|
|
||||||
int32 version; /* 100 */
|
|
||||||
}; /* no data for this header */
|
|
||||||
struct TranslatorStyledTextTextHeader {
|
|
||||||
#if defined(__cplusplus)
|
|
||||||
enum {
|
|
||||||
TEXT_HEADER_MAGIC = 'TEXT'
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
TranslatorStyledTextRecordHeader header;
|
|
||||||
int32 charset; /* Always write B_UTF8 for now! */
|
|
||||||
}; /* text data follows */
|
|
||||||
struct TranslatorStyledTextStyleHeader {
|
|
||||||
#if defined(__cplusplus)
|
|
||||||
enum {
|
|
||||||
STYLE_HEADER_MAGIC = 'STYL'
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
TranslatorStyledTextRecordHeader header;
|
|
||||||
uint32 apply_offset;
|
|
||||||
uint32 apply_length;
|
|
||||||
}; /* flattened R3 BTextView style records for preceding text */
|
|
||||||
#if 0
|
|
||||||
/* format of the STYL record data (always big-endian) FYI: */
|
|
||||||
struct {
|
|
||||||
uchar magic[4]; /* 41 6c 69 21 */
|
|
||||||
uchar version[4]; /* 00 00 00 00 */
|
|
||||||
int32 count;
|
|
||||||
struct {
|
|
||||||
int32 offset;
|
|
||||||
char family[64];
|
|
||||||
char style[64];
|
|
||||||
float size;
|
|
||||||
float shear; /* typically 90.0 */
|
|
||||||
uint16 face; /* typically 0 */
|
|
||||||
uint8 red;
|
|
||||||
uint8 green;
|
|
||||||
uint8 blue;
|
|
||||||
uint8 alpha; /* 255 == opaque */
|
|
||||||
uint16 _reserved_; /* 0 */
|
|
||||||
} styles[];
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _TRANSLATOR_FORMATS_H */
|
|
||||||
|
|
||||||
@@ -1,240 +0,0 @@
|
|||||||
/*****************************************************************************/
|
|
||||||
// File: TranslatorRoster.h
|
|
||||||
// Class: BTranslatorRoster
|
|
||||||
// Reimplemented by: Michael Wilber, Translation Kit Team
|
|
||||||
// Reimplementation: 2002-06-11
|
|
||||||
//
|
|
||||||
// Description: This class is the guts of the translation kit, it makes the
|
|
||||||
// whole thing happen. It bridges the applications using this
|
|
||||||
// object with the translators that the apps need to access.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// Copyright (c) 2002 OpenBeOS Project
|
|
||||||
//
|
|
||||||
// Original Version: Copyright 1998, Be Incorporated, All Rights Reserved.
|
|
||||||
// Copyright 1995-1997, Jon Watte
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
|
||||||
// to deal in the Software without restriction, including without limitation
|
|
||||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
// and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included
|
|
||||||
// in all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
||||||
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
// DEALINGS IN THE SOFTWARE.
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _TRANSLATOR_ROSTER_H
|
|
||||||
#define _TRANSLATOR_ROSTER_H
|
|
||||||
|
|
||||||
#include <TranslationDefs.h>
|
|
||||||
#include <OS.h>
|
|
||||||
#include <StorageDefs.h>
|
|
||||||
#include <InterfaceDefs.h>
|
|
||||||
#include <Archivable.h>
|
|
||||||
#include <TranslatorFormats.h>
|
|
||||||
#include <TranslationDefs.h>
|
|
||||||
#include <TranslationErrors.h>
|
|
||||||
#include <Translator.h>
|
|
||||||
#include <String.h>
|
|
||||||
#include <image.h>
|
|
||||||
#include <File.h>
|
|
||||||
#include <Directory.h>
|
|
||||||
#include <Volume.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <OS.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <dirent.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <alloca.h>
|
|
||||||
|
|
||||||
struct translation_format;
|
|
||||||
|
|
||||||
class BBitmap;
|
|
||||||
class BView;
|
|
||||||
class BPositionIO;
|
|
||||||
class BQuery;
|
|
||||||
class BMessage;
|
|
||||||
|
|
||||||
const char kgDefaultTranslatorPath[] = "/boot/home/config/add-ons/Translators:/boot/home/config/add-ons/Datatypes:/system/add-ons/Translators";
|
|
||||||
|
|
||||||
// used by BTranslatorRoster to store the list of translators
|
|
||||||
struct translator_node {
|
|
||||||
BTranslator *translator;
|
|
||||||
char *path;
|
|
||||||
image_id image;
|
|
||||||
translator_id id;
|
|
||||||
translator_node *next;
|
|
||||||
};
|
|
||||||
|
|
||||||
class BTranslatorRoster : public BArchivable {
|
|
||||||
// private, unimplemented functions
|
|
||||||
// (I'm not sure if there is a need for them anyway)
|
|
||||||
BTranslatorRoster(const BTranslatorRoster &);
|
|
||||||
BTranslatorRoster & operator=(const BTranslatorRoster &);
|
|
||||||
|
|
||||||
public:
|
|
||||||
BTranslatorRoster();
|
|
||||||
// initializes the object with no translators
|
|
||||||
|
|
||||||
BTranslatorRoster(BMessage *model);
|
|
||||||
// initializes the object and loads all translators from the
|
|
||||||
// "be:translator_path" string array in model
|
|
||||||
|
|
||||||
~BTranslatorRoster();
|
|
||||||
// frees memory used by this object
|
|
||||||
|
|
||||||
virtual status_t Archive(BMessage *into, bool deep = true) const;
|
|
||||||
// store the BTranslatorRoster in into so it can later be
|
|
||||||
// used with Instantiate or the BMessage constructor
|
|
||||||
|
|
||||||
static BArchivable *Instantiate(BMessage *from);
|
|
||||||
// creates a BTranslatorRoster object from the from archive
|
|
||||||
|
|
||||||
static const char *Version(int32 *outCurVersion, int32 *outMinVersion,
|
|
||||||
int32 inAppVersion = B_TRANSLATION_CURRENT_VERSION);
|
|
||||||
// returns the version of BTranslator roster as a string
|
|
||||||
// and through the int32 pointers; inAppVersion appears
|
|
||||||
// to be ignored
|
|
||||||
|
|
||||||
static BTranslatorRoster *Default();
|
|
||||||
// returns the "default" set of translators, they are translators
|
|
||||||
// that are loaded from the default paths
|
|
||||||
// /boot/home/config/add-ons/Translators,
|
|
||||||
// /boot/home/config/add-ons/Datatypes,
|
|
||||||
// /system/add-ons/Translators or the paths in the
|
|
||||||
// TRANSLATORS environment variable, if it exists
|
|
||||||
|
|
||||||
status_t AddTranslators(const char *load_path = NULL);
|
|
||||||
// this adds a translator, all of the translators in a folder or
|
|
||||||
// the default translators if the path is NULL
|
|
||||||
|
|
||||||
status_t AddTranslator(BTranslator * translator);
|
|
||||||
// adds a translator that you've created yourself to the
|
|
||||||
// BTranslatorRoster; this is useful if you have translators
|
|
||||||
// that you don't want to make public or don't want loaded as
|
|
||||||
// an add-on
|
|
||||||
|
|
||||||
virtual status_t Identify(BPositionIO *inSource, BMessage *ioExtension,
|
|
||||||
translator_info *outInfo, uint32 inHintType = 0,
|
|
||||||
const char *inHintMIME = NULL, uint32 inWantType = 0);
|
|
||||||
// identifies the translator that can handle the data in inSource
|
|
||||||
|
|
||||||
virtual status_t GetTranslators(BPositionIO *inSource,
|
|
||||||
BMessage *ioExtension, translator_info **outInfo, int32 *outNumInfo,
|
|
||||||
uint32 inHintType = 0, const char *inHintMIME = NULL,
|
|
||||||
uint32 inWantType = 0);
|
|
||||||
// finds all translators for the given type
|
|
||||||
|
|
||||||
virtual status_t GetAllTranslators(translator_id **outList,
|
|
||||||
int32 *outCount);
|
|
||||||
// returns all translators that this object contains
|
|
||||||
|
|
||||||
virtual status_t GetTranslatorInfo(translator_id forTranslator,
|
|
||||||
const char **outName, const char **outInfo, int32 *outVersion);
|
|
||||||
// gets user visible info about a specific translator
|
|
||||||
|
|
||||||
virtual status_t GetInputFormats(translator_id forTranslator,
|
|
||||||
const translation_format **outFormats, int32 *outNumFormats);
|
|
||||||
// finds all input formats for a translator;
|
|
||||||
// note that translators don't always publish the formats
|
|
||||||
// that they support
|
|
||||||
|
|
||||||
virtual status_t GetOutputFormats(translator_id forTranslator,
|
|
||||||
const translation_format **outFormats, int32 *outNumFormats);
|
|
||||||
// finds all output formats for a translator;
|
|
||||||
// note that translators don't always publish the formats
|
|
||||||
// that they support
|
|
||||||
|
|
||||||
virtual status_t Translate(BPositionIO *inSource,
|
|
||||||
const translator_info *inInfo, BMessage *ioExtension,
|
|
||||||
BPositionIO *outDestination, uint32 inWantOutType,
|
|
||||||
uint32 inHintType = 0, const char *inHintMIME = NULL);
|
|
||||||
// the whole point of this entire kit boils down to this function;
|
|
||||||
// this translates the data in inSource into outDestination
|
|
||||||
// using the format inWantOutType
|
|
||||||
|
|
||||||
virtual status_t Translate(translator_id inTranslator,
|
|
||||||
BPositionIO *inSource, BMessage *ioExtension,
|
|
||||||
BPositionIO *outDestination, uint32 inWantOutType);
|
|
||||||
// the whole point of this entire kit boils down to this function;
|
|
||||||
// this translates the data in inSource into outDestination
|
|
||||||
// using the format inWantOutType and the translator inTranslator
|
|
||||||
|
|
||||||
virtual status_t MakeConfigurationView(translator_id forTranslator,
|
|
||||||
BMessage *ioExtension, BView **outView, BRect *outExtent);
|
|
||||||
// create the view for forTranslator that allows the user
|
|
||||||
// to configure it;
|
|
||||||
// NOTE: translators are not required to support this function
|
|
||||||
|
|
||||||
virtual status_t GetConfigurationMessage(translator_id forTranslator,
|
|
||||||
BMessage *ioExtension);
|
|
||||||
// this is used to save the settings for a translator so that
|
|
||||||
// they can be written to disk or used in an Indentify or
|
|
||||||
// Translate call
|
|
||||||
|
|
||||||
status_t GetRefFor(translator_id translator, entry_ref *out_ref);
|
|
||||||
// I'm guessing that this returns the entry_ref for the
|
|
||||||
// translator add-on file for the translator_id translator
|
|
||||||
|
|
||||||
private:
|
|
||||||
void Initialize();
|
|
||||||
// class initialization code used by all constructors
|
|
||||||
|
|
||||||
translator_node *FindTranslatorNode(translator_id id);
|
|
||||||
// used to find the translator_node for the translator_id id
|
|
||||||
// returns NULL if the id is not valid
|
|
||||||
|
|
||||||
status_t LoadTranslator(const char *path);
|
|
||||||
// loads the translator add-on specified by path
|
|
||||||
|
|
||||||
void LoadDir(const char *path, int32 &loadErr, int32 &nLoaded);
|
|
||||||
// loads all of the translator add-ons from path and
|
|
||||||
// returns error status in loadErr and the number of
|
|
||||||
// translators loaded in nLoaded
|
|
||||||
|
|
||||||
bool CheckFormats(const translation_format *inputFormats,
|
|
||||||
int32 inputFormatsCount, uint32 hintType, const char *hintMIME,
|
|
||||||
const translation_format **outFormat);
|
|
||||||
// determines how the Identify function is called
|
|
||||||
|
|
||||||
// adds the translator to the list of translators
|
|
||||||
// that this object maintains
|
|
||||||
status_t AddTranslatorToList(BTranslator *translator);
|
|
||||||
status_t AddTranslatorToList(BTranslator *translator,
|
|
||||||
const char *path, image_id image, bool acquire);
|
|
||||||
|
|
||||||
static BTranslatorRoster *fspDefaultTranslators;
|
|
||||||
// object that contains the default translators
|
|
||||||
|
|
||||||
// list of translators maintained by this object
|
|
||||||
translator_node *fpTranslators;
|
|
||||||
translator_node *fpLastTranslator;
|
|
||||||
|
|
||||||
sem_id fSem;
|
|
||||||
// semaphore used to lock this object
|
|
||||||
|
|
||||||
// used to maintain binary combatibility with
|
|
||||||
// past and future versions of this object
|
|
||||||
int32 fUnused[4];
|
|
||||||
virtual void ReservedTranslatorRoster1();
|
|
||||||
virtual void ReservedTranslatorRoster2();
|
|
||||||
virtual void ReservedTranslatorRoster3();
|
|
||||||
virtual void ReservedTranslatorRoster4();
|
|
||||||
virtual void ReservedTranslatorRoster5();
|
|
||||||
virtual void ReservedTranslatorRoster6();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* _TRANSLATOR_ROSTER_H */
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user